int gb_set_reg_profile(emu *e) { int ret = r_anal_set_reg_profile (e->anal); e->reg = e->anal->reg; r_reg_set_value (e->reg, r_reg_get (e->reg,"mpc",-1), ((RBinAddr *) r_list_get_n (r_bin_get_entries (e->bin), 0))->offset); r_reg_set_value (e->reg, r_reg_get (e->reg,"sp",-1), 0xfffe); r_reg_set_value (e->reg, r_reg_get (e->reg,"af",-1), 0x01b0); r_reg_set_value (e->reg, r_reg_get (e->reg,"bc",-1), 0x0013); r_reg_set_value (e->reg, r_reg_get (e->reg,"de",-1), 0x00d8); r_reg_set_value (e->reg, r_reg_get (e->reg,"hl",-1), 0x014d); r_reg_set_value (e->reg, r_reg_get (e->reg,"ime",-1), R_TRUE); return ret; }
static int bin_entry(RCore *r, int mode, ut64 laddr, int va) { char str[R_FLAG_NAME_SIZE]; RList *entries = r_bin_get_entries (r->bin); RListIter *iter; RBinAddr *entry = NULL; int i = 0; ut64 baddr = r_bin_get_baddr (r->bin); if (IS_MODE_RAD (mode)) r_cons_printf ("fs symbols\n"); else if (IS_MODE_JSON (mode)) r_cons_printf ("["); else if (IS_MODE_NORMAL (mode)) r_cons_printf ("[Entrypoints]\n"); r_list_foreach (entries, iter, entry) { ut64 paddr = entry->paddr; ut64 at = rva (r->bin, paddr, entry->vaddr, va); if (IS_MODE_SET (mode)) { r_flag_space_set (r->flags, "symbols"); snprintf (str, R_FLAG_NAME_SIZE, "entry%i", i); r_flag_set (r->flags, str, at, 1, 0); } else if (IS_MODE_SIMPLE (mode)) { r_cons_printf ("0x%08"PFMT64x"\n", at); } else if (IS_MODE_JSON (mode)) { r_cons_printf ("%s{\"vaddr\":%" PFMT64d "," "\"paddr\":%" PFMT64d "," "\"baddr\":%" PFMT64d "," "\"laddr\":%" PFMT64d "}", iter->p ? "," : "", at, paddr, baddr, laddr); } else if (IS_MODE_RAD (mode)) { r_cons_printf ("f entry%i 1 @ 0x%08"PFMT64x"\n", i, at); r_cons_printf ("s entry%i\n", i); } else { r_cons_printf ( "vaddr=0x%08"PFMT64x " paddr=0x%08"PFMT64x " baddr=0x%08"PFMT64x " laddr=0x%08"PFMT64x"\n", at, paddr, baddr, laddr); } i++; }