about summary refs log tree commit diff
path: root/qbdi_mode/demo-so.c
diff options
context:
space:
mode:
Diffstat (limited to 'qbdi_mode/demo-so.c')
-rwxr-xr-xqbdi_mode/demo-so.c39
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;

 }

-

-

-