diff --git a/doubly-dangerous/doubly_dangerous.c b/doubly-dangerous/doubly_dangerous.c new file mode 100644 index 0000000..fdf733d --- /dev/null +++ b/doubly-dangerous/doubly_dangerous.c @@ -0,0 +1,39 @@ +//compile with: +//gcc -m32 -std=c99 -Wall -fno-stack-protector doubly_dangerous.c -o doubly_dangerous + +#include +#include +#include +#include + +void give_flag() { + FILE *f = fopen("flag.txt", "r"); + if (f != NULL) { + char c; + + while ((c = fgetc(f)) != EOF) { + putchar(c); + } + fclose(f); + } + else { + printf("Failed to open flag file!\n"); + } +} + +int main(int argc, char **argv){ + volatile float modified; + char buffer[64]; + + modified = 0; + printf("Give me a string: \n"); + gets(buffer); + + if (modified == 11.28125) { + printf("Success! Here is your flag:\n"); + give_flag(); + } + else { + printf("nope!\n"); + } +}