int main() { char str[200]; gets(str); printf("%i\n", func_strlen(str)); return 0; }
size_t strlen(const char* s) { static size_t (*func_strlen) (const char *) = NULL; int retval = 0; if(! func_strlen) func_strlen = (size_t (*) (const char*)) dlsym (RTLD_NEXT, "strlen"); if(strcmp(s, "/system/bin/qemud") == 0) { LOGD("[] Caught apkprotect checking for the qemu"); return 1; } return func_strlen(s); }
int main () { int x = 17; int *xP, **xPP; char buf[200]; char *s; int *ai; float *af; func_intptr(&x); func_intptr_ret(&x); func_string("zero\0xxxxxxxxxxxxxx"); func_strlen(buf); extern int func_arg0(char *); func_arg0(buf); printf("%s\n", buf); func_strfixed(buf); printf("%s\n", buf); x = 80; xP = &x; xPP = &xP; func_ppp(&xPP); s = (char*) malloc(100); strcpy(s, "Dude"); func_stringp(&s); func_enum(BLUE); func_short(-8, -9); func_ushort(33, 34); float f = func_float(3.4, -3.4); double d = func_double(3.4, -3.4); func_typedef(BLUE); ai = (int*) calloc(sizeof(int), 8); for (x = 0; x < 8; x++) ai[x] = 10 + x; func_arrayi(ai, 8); func_arrayi(ai, 2); af = (float*) calloc(sizeof(float), 8); for (x = 0; x < 8; x++) af[x] = 10.1 + x; func_arrayf(af, 8); func_arrayf(af, 2); { struct { int simple; int alen; int slen; struct { int a; int b; }* array; struct { int a; int b; } seq[3]; char* str; } x; x.simple = 89; x.alen = 2; x.array = malloc(800); x.array[0].a = 1; x.array[0].b = 10; x.array[1].a = 3; x.array[1].b = 30; x.seq[0].a = 4; x.seq[0].b = 40; x.seq[1].a = 5; x.seq[1].b = 50; x.seq[2].a = 6; x.seq[2].b = 60; x.slen = 3; x.str = "123junk"; func_struct(&x); } { char x[10] = {}; char y[10] = {}; func_call(x, y, call_func_work); } struct S2 { float f; char a; char b; }; struct S3 { char a[6]; float f; }; struct S2 func_struct_2(int, struct S3 s3, double d); func_struct_2(17, (struct S3){ "ABCDE", 0.25 }, 0.5);