From 3da5857996f61c31d10b65af4003c60003c0e6d7 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sat, 23 Jul 2016 15:09:52 -0400 Subject: Initial commit --- JPGDestroyer | Bin 0 -> 9952 bytes JPGDestroyer.exe | Bin 0 -> 130905 bytes Makefile | 9 ++++++++ example.jpg | Bin 0 -> 156942 bytes main.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ original.jpg | Bin 0 -> 156942 bytes 6 files changed, 77 insertions(+) create mode 100755 JPGDestroyer create mode 100755 JPGDestroyer.exe create mode 100644 Makefile create mode 100644 example.jpg create mode 100644 main.c create mode 100644 original.jpg diff --git a/JPGDestroyer b/JPGDestroyer new file mode 100755 index 0000000..d117075 Binary files /dev/null and b/JPGDestroyer differ diff --git a/JPGDestroyer.exe b/JPGDestroyer.exe new file mode 100755 index 0000000..24faa78 Binary files /dev/null and b/JPGDestroyer.exe differ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..133d8cb --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +CC=gcc + +default: JPGDestroyer + +JPGDestroyer: main.c + $(CC) main.c -o JPGDestroyer + +clean: + rm JPGDestroyer diff --git a/example.jpg b/example.jpg new file mode 100644 index 0000000..73eca2d Binary files /dev/null and b/example.jpg differ diff --git a/main.c b/main.c new file mode 100644 index 0000000..8cc0099 --- /dev/null +++ b/main.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include + +#define TOO_SMALL_ERROR 1 + +int main() +{ + char* filename; + int file_name_size; + + FILE* fp; + int file_size; + int i; + + int pos; + int amount; + + char* fileContents; + + srand(time(NULL)); + + filename = malloc(1024); + printf("File to destroy (it will be overwritten): "); + + fgets(filename, 1024, stdin); + filename = strtok(filename, "\n"); + + file_name_size = strlen(filename); + + fp = fopen(filename, "rb"); + + fseek(fp, 0L, SEEK_END); + file_size = ftell(fp); + fseek(fp, 0L, SEEK_SET); + + + if (file_size < 2100) + { + fprintf(stderr, "Error: File too small: %s.", filename); + return TOO_SMALL_ERROR; + } + + fileContents = malloc(file_size); + fread(fileContents, 1, file_size, fp); + fclose(fp); + + pos = file_size/4 + (int)(file_size/4 * ((double)rand()/RAND_MAX)); + + printf("Destruction amount (~50 is recommended): "); + scanf("%d", &amount); + + for (i = pos; i < pos+amount; i++) + { + fileContents[i] = '0'; + } + + fp = fopen(filename, "wb"); + fwrite(fileContents, 1, file_size, fp); + + fclose(fp); + printf("Done! Your image might be corrupt.\n"); + + + return 0; + +} diff --git a/original.jpg b/original.jpg new file mode 100644 index 0000000..3b42e17 Binary files /dev/null and b/original.jpg differ -- cgit v1.2.3