about summary refs log tree commit diff
path: root/qbdi_mode/demo-so.c
diff options
context:
space:
mode:
authorhac425 <hac425xxx@gmail.com>2019-11-09 14:21:39 +0000
committerhac425 <hac425xxx@gmail.com>2019-11-09 14:21:39 +0000
commit574de9ff4cb2fdf2c28c32a3c2d7c5c773adb6ab (patch)
tree536b579afa17be7b98e385a1c0c22e5d8a1078cb /qbdi_mode/demo-so.c
parent99e623ef0bcbebcdd6b102020e04d65f123ff7c3 (diff)
downloadafl++-574de9ff4cb2fdf2c28c32a3c2d7c5c773adb6ab.tar.gz
add basic supprt for qbdi_mode, test x86_64 Linux
Diffstat (limited to 'qbdi_mode/demo-so.c')
-rwxr-xr-xqbdi_mode/demo-so.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/qbdi_mode/demo-so.c b/qbdi_mode/demo-so.c
new file mode 100755
index 00000000..1820ea2f
--- /dev/null
+++ b/qbdi_mode/demo-so.c
@@ -0,0 +1,46 @@
+#include <stdio.h>

+

+

+

+// gcc -shared -o libdemo.so demo-so.c -w

+

+

+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("xxxiiii");

+        }

+        break;

+    case '\xfe':

+        // assert(0);

+        if(buf[4]=='\xf0'){

+            puts("xxxiiii");

+        }

+        break;

+    case 0xff:

+        if(buf[2]=='\xff'){

+            if(buf[1]=='\x44'){

+                puts("xxxiiii");

+                assert(0);

+            }else{

+                puts("xxxiiii");

+            }

+        }

+        puts("xxxx");

+        break;

+    default:

+        puts("xxxxxxx");

+        break;

+    }

+

+    return 1;

+}

+

+

+