├── SECURITY.md
├── .github
└── ISSUE_TEMPLATE
│ └── bug_report.md
├── LICENSE
├── README.md
├── CODE_OF_CONDUCT.md
└── decrypter.c
/SECURITY.md:
--------------------------------------------------------------------------------
1 | There is no security here 😂😂
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 gilfoyle97
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # fileDecrypter :lock:
2 | **0010101010101001010 ---- Simple C file decrypter ---- 1010100101010101010001**
3 |
4 | **Disclaimer**: This was a part of a University project (Operating System course), not a serious decrypter.
5 |
6 | Description :mega:
7 | --------
8 |
9 | fileDecrypter is able to read and edit binary files with a certain format.
10 |
11 | More in detail, the program takes as input 3 arguments: the name of a file *fin*, the name of a file *fout* and a string *s*.
12 | The file *fin* is a binary file of an obfuscated text, in which, for each memorized character, a 16 bit number is used, composed as follows: 0xy016, where xy16 is the ASCII code of the character.
13 | The program must execute the command `/bin/sed -e s`, making sure that the standard input of this command is the content of the defluxed file (that is, removing the 4 bits to zero before and after each character).
14 |
15 | The program then takes the result of the above command (on standard output), replaces (adding 4 bits to zero before and after each character) and write the result of this re-obfuscation on fout. Any written sed on standard error is ignored.
16 |
17 | Only the following errors can occur:
18 |
19 | - The program does not start with the required topics.
20 | The program then ends with exit status 10 (without performing any action), and writing on standard error:
21 |
22 | Usage: p file sed script, where p is the name of the program itself.
23 |
24 | - The file does not exist or is not accessible.
25 | The program then ends with exit status 20 (without performing any action), and writing on standard error:
26 |
27 | Unable to r file f because of e, where e is the system string
28 |
29 | which explains the error and r is read from if f is not accessible for reading, or write to if it is not accessible for writing.
30 |
31 | - The file read is not well formatted: bits at 0 are missing in some positions where they should be.
32 | In this case, it ends with an exit status 30, generating the output up to the wrong byte excluded and writing on standard error:
33 |
34 | Wrong format for input binary file f at byte d
35 |
36 | where d is the byte number (starting from 0) where the error occurs.
37 |
38 | - Any other system call fails. The program ends with exit status 100 (without performing any other action), and writing on standard error:
39 |
40 | System call s failed because of e
41 |
42 | where e is the system string that explains the error and s is the system call that failed.
43 |
44 | Usage 🔧
45 | -------
46 |
47 | - `gcc decrypter.c -o decrypter`
48 | - `./decrypter`
49 |
50 | Download 📡
51 | -------
52 |
53 | `git clone https://github.com/edoardottt/fileDecrypter.git`
54 |
55 |
56 | If you liked it drop a :star:
57 | --------
58 |
59 | [edoardottt.com](https://edoardottt.com/) to contact me.
60 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at edoardott@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/decrypter.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | bool r;
10 | bool w;
11 | bool directory;
12 | main(int argc, char *argv[])
13 | {
14 | int i;
15 | if (argc != 4) /* Bad Input */
16 | {
17 | fprintf(stderr,"Usage %s file sed_script\n",argv[0]);exit(10);
18 | }
19 | struct stat fileStat;
20 | stat(argv[1],&fileStat);
21 | int len=fileStat.st_size;
22 | if ((S_ISDIR(fileStat.st_mode))) {directory=true;} else {directory=false;} //check if it's a folder
23 | if ((fileStat.st_mode & S_IRUSR)>0) {r=true;} else {r=false;} //check if it's accessible on reading
24 | if ((fileStat.st_mode & S_IWUSR)>0) {w=true;} else {w=false;} //check if it's accessible on writing
25 | /* File1 not accessible */
26 | if (!((!(directory))&& r && w))
27 | { char *re;
28 | if (r==false) {re="read from"; }
29 | else {if (w==false) {re="write to";}}
30 | fprintf(stderr,"Unable to %s file %s because of ",re,argv[1]);
31 | perror("Error");
32 | exit(20);
33 | }
34 | int ii;
35 | int appoggio[70000];
36 | FILE *file = fopen(argv[1],"rb"); //pointer to file.bin_in on reading
37 | int c;
38 | int contatore=0;
39 | int flag=1;
40 | int index1=0;
41 | while(contatore