static void start_r2() { core = r_core_new (); r_core_loadlibs (core, R_CORE_LOADLIBS_ALL, NULL); RCoreFile *fd = r_core_file_open (core, "self://", R_PERM_RW, 0); r_core_prompt_loop (core); r_core_file_close (core, fd); }
static RCore* opencore(const char *f) { const ut64 baddr = UT64_MAX; RCore *c = r_core_new (); if (!c) return NULL; r_core_loadlibs (c, R_CORE_LOADLIBS_ALL, NULL); r_config_set_i (c->config, "io.va", useva); r_config_set_i (c->config, "anal.split", true); if (f) { if (!r_core_file_open (c, f, 0, 0)) { r_core_free (c); return NULL; } r_core_bin_load (c, NULL, baddr); } // TODO: must enable io.va here if wanted .. r_config_set_i (c->config, "io.va", va); if (f && anal_all) { const char *cmd = "aac"; switch (anal_all) { case 1: cmd = "aaa"; break; case 2: cmd = "aaaa"; break; } r_core_cmd0 (c, cmd); } return c; }
static RCore* opencore(const char *f) { const ut64 baddr = UT64_MAX; RCore *c = r_core_new (); r_core_loadlibs (c, R_CORE_LOADLIBS_ALL, NULL); r_config_set_i (c->config, "io.va", useva); r_config_set_i (c->config, "anal.split", R_TRUE); if (r_core_file_open (c, f, 0, 0) == NULL) { r_core_free (c); return NULL; } r_core_bin_load (c, NULL, baddr); // TODO: must enable io.va here if wanted .. r_config_set_i (c->config, "io.va", va); return c; }
static void _libwrap_init() { char *web; signal (SIGUSR1, sigusr1); signal (SIGUSR2, sigusr2); printf ("libr2 initialized. send SIGUSR1 to %d in order to reach the r2 prompt\n", getpid ()); printf ("kill -USR1 %d\n", getpid ()); fflush (stdout); web = r_sys_getenv ("RARUN2_WEB"); core = r_core_new (); r_core_loadlibs (core, R_CORE_LOADLIBS_ALL, NULL); if (web) { r_core_cmd0 (core, "=H&"); r_sys_setenv ("RARUN2_WEB", NULL); free (web); } // TODO: maybe reopen every time a signal is spawned to reload memory regions information // TODO: open io_self }