| #include <stdio.h> | |
| int target_func(unsigned char *buf, int size) { | |
| printf("buffer:%p, size:%d\n", buf, size); | |
| switch (buf[0]) { | |
| case 1: | |
| if (buf[1] == '\x44') { puts("a"); } | |
| break; | |
| case 0xff: | |
| if (buf[2] == '\xff') { | |
| if (buf[1] == '\x44') { puts("b"); } | |
| } | |
| break; | |
| default: | |
| break; | |
| } | |
| return 1; | |
| } | |
| char data[1024]; | |
| int main() { | |
| target_func(data, 1024); | |
| } | |