/* 4f/mod/example/example.c 09.09.2009 4f Krakow Labs Development -> 4f File Format Fuzzing Framework jbrown@KL Example Fuzzing Module -> 4f.tar.gz Associated Files & Information: http://www.krakowlabs.com/dev/fuz/4f/4f http://www.krakowlabs.com/dev/fuz/4f/4f.c.txt http://www.krakowlabs.com/dev/fuz/4f/core.c.txt http://www.krakowlabs.com/dev/fuz/4f/include/core.h.txt http://www.krakowlabs.com/dev/fuz/4f/debug_linux.c.txt http://www.krakowlabs.com/dev/fuz/4f/oracle.c.txt http://www.krakowlabs.com/dev/fuz/4f/include/oracle.h.txt http://www.krakowlabs.com/dev/fuz/4f/mod/dev/bas.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/dev/ccc.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/dev/per.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/mul/m3u.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/mul/pls.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/mul/pul.c.txt http://www.krakowlabs.com/dev/fuz/4f/mod/net/tor.c.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/dev/bas.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/dev/ccc.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/dev/per.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/mul/m3u.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/mul/pls.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/mul/pul.h.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/net/tor.h.txt http://www.krakowlabs.com/dev/fuz/4f/mod/example/exa.c.txt http://www.krakowlabs.com/dev/fuz/4f/include/mod/example/exa.h.txt http://www.krakowlabs.com/dev/fuz/4f/Makefile.txt http://www.krakowlabs.com/dev/fuz/4f/doc/4f_doc.txt http://www.krakowlabs.com/dev/fuz/4f/media/4f.jpeg http://www.krakowlabs.com/dev/fuz/4f/media/4f.avi http://www.krakowlabs.com/dev/fuz/4f/4f.tar.gz 4f/mod/example/example.c */ #include "../include/core.h" #include "../include/oracle.h" #include "../include/mod/example/exa.h" void exa_prepare(char *tar, char *arg, int kb, char *lgf, char *dir) { char *ext = "exa"; // extension int c = 0, i; fzof_gen(); // generate fuzzing oracle overflow data for(i = 0; i <= FZTL; i++) { counter(&c); process(c, &fp, ext, dir); fprintf(fp, "#%s\n", fuzz[i].data); // fuzzing format descriptor fprintf(fp, "%s = data\n%s = data", EXA_FF2, EXA_FF3); // make file complete fclose(fp); execute(tar, arg, NULL, cb, tm, lgf, ffn, fuzz[i].desc); } for(i = 0; i <= FZTL; i++) { counter(&c); process(c, &fp, ext, dir); fprintf(fp, "%s\n", EXA_FF1); // format descriptor fprintf(fp, "%s = %s\n%s = data", EXA_FF2, fuzz[i].data, EXA_FF3); // fuzzing "username" fclose(fp); execute(tar, arg, NULL, cb, tm, lgf, ffn, fuzz[i].desc); } for(i = 0; i <= FZTL; i++) { counter(&c); process(c, &fp, ext, dir); fprintf(fp, "%s\n", EXA_FF1); // format descriptor fprintf(fp, "%s = data\n%s = %s", EXA_FF2, EXA_FF3, fuzz[i].data); // fuzzing "password" fclose(fp); execute(tar, arg, NULL, cb, tm, lgf, ffn, fuzz[i].desc); } for(i = 0; i <= FZTL; i++) { counter(&c); process(c, &fp, ext, dir); fprintf(fp, "%s\n", EXA_FF1); // format descriptor fprintf(fp, "%s = data\n%s = data", fuzz[i].data, EXA_FF3); // fuzzing variable position fclose(fp); execute(tar, arg, NULL, cb, tm, lgf, ffn, fuzz[i].desc); } }