diff options
author | hac425 <hac425xxx@gmail.com> | 2019-11-14 14:30:29 +0000 |
---|---|---|
committer | hac425 <hac425xxx@gmail.com> | 2019-11-14 14:30:29 +0000 |
commit | c8c004d568f639b09a70deecce6c634ac45d4842 (patch) | |
tree | fe154ed2206f9f9ce0bf8af922cb084b869ed663 /qbdi_mode/demo-so.c | |
parent | ab8fb271f71c50f46fac86fb7ac09593542726b3 (diff) | |
download | afl++-c8c004d568f639b09a70deecce6c634ac45d4842.tar.gz |
modify build.sh and add document
Diffstat (limited to 'qbdi_mode/demo-so.c')
-rwxr-xr-x | qbdi_mode/demo-so.c | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/qbdi_mode/demo-so.c b/qbdi_mode/demo-so.c index 3ba7c449..5e74f268 100755 --- a/qbdi_mode/demo-so.c +++ b/qbdi_mode/demo-so.c @@ -1,46 +1,33 @@ #include <stdio.h> - - // gcc -shared -o libdemo.so demo-so.c -w - - -int target_func(char* buf, int size){ - +int target_func(char *buf, int size) +{ printf("buffer:%p, size:%p\n", buf, size); - switch (buf[0]) { case 1: puts("222"); - if(buf[1]=='\x44'){ - puts("aaaaaaaaaaaaaaaaaaaaa"); - *(char*)(0) = 1; - } - break; - case '\xfe': - // assert(0); - if(buf[4]=='\xf0'){ - puts("xxxiiii"); + if (buf[1] == '\x44') + { + puts("null ptr deference"); + *(char *)(0) = 1; } break; case 0xff: - if(buf[2]=='\xff'){ - if(buf[1]=='\x44'){ - *(char*)(0xdeadbeef) = 1; - }else{ - puts("kkkkkk"); + if (buf[2] == '\xff') + { + if (buf[1] == '\x44') + { + puts("crash...."); + *(char *)(0xdeadbeef) = 1; } } - puts("xxxx"); break; default: - puts("xxxxxxx"); + puts("default action"); break; } return 1; } - - - |