void *get_builtin_lib_handle(const char *libname) { size_t i; if (libname == NULL) return NULL; if (strcmp(libname, "libGLESv1_CM.so") == 0) { #ifdef APKENV_GLES if (!global.loader_seen_glesv1) register_hooks(hooks_gles1, HOOKS_GLES1_COUNT); #endif global.loader_seen_glesv1 = 1; } else if (strcmp(libname, "libGLESv2.so") == 0) { #ifdef APKENV_GLES2 if (!global.loader_seen_glesv2) register_hooks(hooks_gles2, HOOKS_GLES2_COUNT); #endif global.loader_seen_glesv2 = 1; } for (i = 0; i < sizeof(builtin_libs) / sizeof(builtin_libs[0]); i++) if (strcmp(libname, builtin_libs[i]) == 0) return &builtin_libs[i]; return NULL; }
static void createproc_callback(VMI_Callback_Params* params) { if(targetcr3 != 0) //if we have found the process, return immediately return; if (strcasecmp(targetname, params->cp.name) == 0) { targetpid = params->cp.pid; targetcr3 = params->cp.cr3; register_hooks(); DECAF_printf("Process found: pid=%d, cr3=%08x\n", targetpid, targetcr3); } }
/** * The function that initialize the module. */ static int __init start_module(void) { printk(KERN_INFO "Amir's firewall is being loaded!\n"); if (register_hooks() < 0) { printk(KERN_INFO "ERROR: Failed to register hooks\n"); return -1; } if (register_drivers() < 0) { dismiss_hooks(); printk(KERN_INFO "ERROR: Failed to register drivers\n"); return -1; } return 0; // if non-0 return, then init_module have failed. }
/* initializes all hooks & input handlers */ void init_input_handler() { register_hooks(); register_raw_input_handler(); }