diff --git a/TODO b/TODO index 97968d9ec4..280d10bd19 100644 --- a/TODO +++ b/TODO @@ -7,33 +7,35 @@ ====[[ 0.9 ]]==== -* list functions. +* Add !load in r2 (oo args) +* implement 'ax' to get/set xrefs (better than afl ) .. or afx? +* shell encoder - get x86-64 one from twitter + - http://funoverip.net/2011/09/simple-shellcode-obfuscation/ + - shellforge.. and review current shellcodes :? * show analized functions in 'aa' -* Optimizations: - - RAnalValue must be static, not ref - - save memory and accelerate code analysis - - basicblock signatures must be just pointers to a big buf - -* Refactor get_sym() and so on... - * Tracing support for the debugger - "e cmd.trace=dr=;.dr*;pd 2@eip" - dca sym.main imp.printf - dbc -* Add !load in r2 + * Add support for classes (useful for c++, dex, objc, ...) - command to add new classes * rasm2 must support binary creation help message or so.. rabin2 integration must be easier * Add support for 'expect' like foo in rarun2 -* TODO: make elf/pe get_os() and others return const and not strdup + - make rarun live in a lib.. or at least be usable from r2 * 'ao' must be for bytes count, not bytes * asm.pseudo for brainfuck -* implement 'ax' to get/set xrefs (better than afl ) -* shell encoder - get x86-64 one from twitter - - http://funoverip.net/2011/09/simple-shellcode-obfuscation/ -* use centralized pubsub or memcached to sync data // redis? * rabin2 -z /dev/sda1 TAKES TOO LONG. opening r2 /tmp/fs is SLOW as shit. + +===[[ 0.9.1 ]]=== +* Optimizations: + - Refactor get_sym() and so on... + - TODO: make elf/pe get_os() and others return const and not strdup + - RAnalValue must be static, not ref + - save memory and accelerate code analysis + - basicblock signatures must be just pointers to a big buf + OSX === * Proper support for MACH-O binaries @@ -323,6 +325,7 @@ Refactoring Future ====== +* use centralized pubsub or memcached to sync data // redis? * r_file_slurp should work fine for big files (not prio) r_file_slurp_buf? - mmap if supported - add r_file_mmap ? - read file in blocks instead of the whole file in a single syscall * Realign flags when using project in debug mode diff --git a/libr/core/cmd.c b/libr/core/cmd.c index c4c50763a1..cc0bafb61d 100644 --- a/libr/core/cmd.c +++ b/libr/core/cmd.c @@ -1907,7 +1907,7 @@ static int cmd_print(void *data, const char *input) { ret = r_asm_disassemble (core->assembler, &asmop, buf+i, core->blocksize-i); if (ret<1) { ret = err = 1; - r_cons_printf ("0x%08"PFMT64x" ???\n", core->offset+i); + r_cons_printf ("0x%08"PFMT64x" %14s%02x %s\n", core->offset+i, "", buf[i], "???"); } else r_cons_printf ("0x%08"PFMT64x" %16s %s\n", core->offset+i, asmop.buf_hex, asmop.buf_asm); } diff --git a/libr/core/vmenus.c b/libr/core/vmenus.c index a72a6ba95e..7b88369460 100644 --- a/libr/core/vmenus.c +++ b/libr/core/vmenus.c @@ -234,11 +234,12 @@ R_API int r_core_visual_trackflags(RCore *core) { } R_API int r_core_visual_comments (RCore *core) { - char *str, cmd[1024], *p = NULL; + char *str, cmd[512], *p = NULL; int mode = 0; int delta = 7; int i, ch, option = 0; int format = 0; + int found = 0; ut64 from, size; RListIter *iter; RAnalFcn *fcn; @@ -247,8 +248,11 @@ R_API int r_core_visual_comments (RCore *core) { for (;;) { r_cons_gotoxy (0, 0); r_cons_clear (); + r_cons_printf ("Comments:\n"); i = 0; + found = 0; + mode = 0; r_list_foreach (core->anal->meta->data, iter, d) { str = r_str_unscape (d->str); if (str) { @@ -258,6 +262,7 @@ R_API int r_core_visual_comments (RCore *core) { r_str_sanitize (str); if (option==i) { mode = 0; + found = 1; from = d->from; size = d->size; p = str; @@ -270,6 +275,10 @@ R_API int r_core_visual_comments (RCore *core) { i++; } } + if (!found) { + option--; + continue; + } r_list_foreach (core->anal->fcns, iter, fcn) { if ((i>=option-delta) && ((i