diff options
-rw-r--r-- | frida_mode/src/main.c | 25 | ||||
-rw-r--r-- | frida_mode/src/prefetch.c | 3 | ||||
-rw-r--r-- | frida_mode/src/seccomp/seccomp.c | 2 |
3 files changed, 17 insertions, 13 deletions
diff --git a/frida_mode/src/main.c b/frida_mode/src/main.c index 1bbcec28..c8c50b37 100644 --- a/frida_mode/src/main.c +++ b/frida_mode/src/main.c @@ -38,15 +38,16 @@ extern mach_port_t mach_task_self(); extern GumAddress gum_darwin_find_entrypoint(mach_port_t task); #elif defined(__ANDROID__) typedef struct { - void (**preinit_array)(void); - void (**init_array)(void); - void (**fini_array)(void); + + void (**preinit_array)(void); + void (**init_array)(void); + void (**fini_array)(void); + } structors_array_t; -extern void __libc_init(void* raw_args, - void (*onexit)(void) __unused, - int (*slingshot)(int, char **, char **), - structors_array_t const * const structors); +extern void __libc_init(void *raw_args, void (*onexit)(void) __unused, + int (*slingshot)(int, char **, char **), + structors_array_t const *const structors); #else extern int __libc_start_main(int (*main)(int, char **, char **), int argc, char **ubp_av, void (*init)(void), @@ -291,17 +292,19 @@ static void intercept_main(void) { intercept_hook(main, on_main, NULL); } + #elif defined(__ANDROID__) -static void on_libc_init(void* raw_args, - void (*onexit)(void) __unused, - int (*slingshot)(int, char**, char**), - structors_array_t const * const structors){ +static void on_libc_init(void *raw_args, void (*onexit)(void) __unused, + int (*slingshot)(int, char **, char **), + structors_array_t const *const structors) { + main_fn = slingshot; intercept_unhook_self(); intercept_hook(slingshot, on_main, NULL); return __libc_init(raw_args, onexit, slingshot, structors); } + static void intercept_main(void) { intercept_hook(__libc_init, on_libc_init, NULL); diff --git a/frida_mode/src/prefetch.c b/frida_mode/src/prefetch.c index b2c516f5..e20923c4 100644 --- a/frida_mode/src/prefetch.c +++ b/frida_mode/src/prefetch.c @@ -301,12 +301,13 @@ void prefetch_init(void) { * This doesn't work on Android, so we skip it. Would could end up leaking * shared memory regions though. */ - #ifndef __ANDROID__ +#ifndef __ANDROID__ if (shmctl(prefetch_shm_id, IPC_RMID, NULL) < 0) { FFATAL("shmctl (IPC_RMID) < 0 - errno: %d\n", errno); } + #endif /* Clear it, not sure it's necessary, just seems like good practice */ diff --git a/frida_mode/src/seccomp/seccomp.c b/frida_mode/src/seccomp/seccomp.c index 72443831..12b58f4e 100644 --- a/frida_mode/src/seccomp/seccomp.c +++ b/frida_mode/src/seccomp/seccomp.c @@ -13,7 +13,7 @@ void seccomp_on_fork(void) { FFATAL("Seccomp not supported on OSX"); #elif defined(__ANDROID__) FFATAL("Seccomp not supported on Android"); -#else +#else seccomp_callback_parent(); #endif |