* r_bin
- Fill RBinImport->size within bin plugins - Add field size to RBinImport * r_bin_elf - Correct value of r_bin_elf_symbol_t->size for imports * rabin2 - Output af+ command in radare mode * Update TODO
This commit is contained in:
parent
2251f089fa
commit
d094f42d2f
4
TODO
4
TODO
|
@ -24,7 +24,7 @@ TODO edu
|
|||
|
||||
TODO nibble
|
||||
-----------
|
||||
* rabin2 doesnt works for fat mach-o
|
||||
* Fix PLT bounds detection
|
||||
* Cx/CX are not displayed in disasm as they should.. (C! must die)
|
||||
|
||||
TODO pancake
|
||||
|
@ -80,6 +80,8 @@ Questions:
|
|||
- RAnalAopArg { int size; int delta; int type; }
|
||||
- r_anal_aop_arg_set (); r_anal_aop_arg_get (); r_anal_aop_arg_binmask ();
|
||||
* rasign2 : must be done, write manpage (isn't r2 enought?)
|
||||
* rabin2 can now extract fat mach-o with rabin -x, is it worth native support for fat bins? nibble: NO pancake: ??
|
||||
* Deprecate CF and use af+ instead?
|
||||
|
||||
Bindings
|
||||
========
|
||||
|
|
|
@ -164,6 +164,9 @@ static int rabin_show_imports(ut64 at) {
|
|||
} else {
|
||||
if (rad) {
|
||||
r_flag_name_filter (import->name);
|
||||
if (import->size)
|
||||
printf ("af+ 0x%08"PFMT64x" %"PFMT64d" fcn.imp.%s\n",
|
||||
va?baddr+import->rva:import->offset, import->size, import->name);
|
||||
printf ("fs imports\n");
|
||||
printf ("f imp.%s @ 0x%08"PFMT64x"\n",
|
||||
import->name, va?baddr+import->rva:import->offset);
|
||||
|
@ -213,8 +216,8 @@ static int rabin_show_symbols(ut64 at) {
|
|||
r_flag_name_filter (symbol->name);
|
||||
if (!strncmp (symbol->type,"FUNC", 4)) {
|
||||
if (symbol->size)
|
||||
printf ("CF %"PFMT64d" @ 0x%08"PFMT64x"\n",
|
||||
symbol->size, va?baddr+symbol->rva:symbol->offset);
|
||||
printf ("af+ 0x%08"PFMT64x" %"PFMT64d" fcn.sym.%s\n",
|
||||
va?baddr+symbol->rva:symbol->offset, symbol->size, symbol->name);
|
||||
printf ("fs functions\n");
|
||||
printf ("f fcn.sym.%s %"PFMT64d" 0x%08"PFMT64x"\n",
|
||||
symbol->name, symbol->size,
|
||||
|
|
|
@ -623,7 +623,7 @@ struct r_bin_elf_symbol_t* Elf_(r_bin_elf_get_symbols)(struct Elf_(r_bin_elf_obj
|
|||
toffset = sym[k].st_value;
|
||||
else if ((toffset = Elf_(get_import_addr) (bin, k)) == -1)
|
||||
toffset = 0;
|
||||
tsize = 0;
|
||||
tsize = 16;
|
||||
} else if (type == R_BIN_ELF_SYMBOLS && sym[k].st_shndx != STN_UNDEF &&
|
||||
ELF_ST_TYPE(sym[k].st_info) != STT_SECTION && ELF_ST_TYPE(sym[k].st_info) != STT_FILE) {
|
||||
toffset = (ut64)sym[k].st_value +
|
||||
|
|
|
@ -127,6 +127,7 @@ static RList* imports(RBin *bin) {
|
|||
strncpy (ptr->type, import[i].type, R_BIN_SIZEOF_STRINGS);
|
||||
ptr->rva = import[i].offset;
|
||||
ptr->offset = import[i].offset;
|
||||
ptr->size = import[i].size;
|
||||
ptr->ordinal = 0;
|
||||
ptr->hint = 0;
|
||||
r_list_append (ret, ptr);
|
||||
|
|
|
@ -116,6 +116,7 @@ static RList* imports(RBin *bin) {
|
|||
strncpy (ptr->type, "FUNC", R_BIN_SIZEOF_STRINGS);
|
||||
ptr->rva = imports[i].addr;
|
||||
ptr->offset = imports[i].offset;
|
||||
ptr->size = 0;
|
||||
ptr->ordinal = 0;
|
||||
ptr->hint = 0;
|
||||
r_list_append (ret, ptr);
|
||||
|
|
|
@ -133,6 +133,7 @@ static RList* imports(RBin *bin) {
|
|||
strncpy (ptr->type, "FUNC", R_BIN_SIZEOF_STRINGS);
|
||||
ptr->rva = imports[i].rva;
|
||||
ptr->offset = imports[i].offset;
|
||||
ptr->size = 0;
|
||||
ptr->ordinal = imports[i].ordinal;
|
||||
ptr->hint = imports[i].hint;
|
||||
r_list_append (ret, ptr);
|
||||
|
|
|
@ -1674,7 +1674,7 @@ static int cmd_anal(void *data, const char *input) {
|
|||
size = r_num_math (core->num, r_str_word_get0 (ptr, 1));
|
||||
addr = r_num_math (core->num, r_str_word_get0 (ptr, 0));
|
||||
if (!r_anal_fcn_add (core->anal, addr, size, name, diff))
|
||||
eprintf ("Cannot add function (duplicated or overlaped)\n");
|
||||
eprintf ("Cannot add function (duplicated)\n");
|
||||
}
|
||||
free (ptr);
|
||||
}
|
||||
|
@ -2534,7 +2534,7 @@ static int cmd_meta(void *data, const char *input) {
|
|||
case '!':
|
||||
r_meta_sync (core->meta);
|
||||
break;
|
||||
case 'F': /* add function */
|
||||
case 'F': /* add function */ /* XXX use af+ ? */
|
||||
eprintf ("TODO\n");
|
||||
break;
|
||||
case 'S':
|
||||
|
|
|
@ -96,6 +96,7 @@ typedef struct r_bin_import_t {
|
|||
char type[R_BIN_SIZEOF_STRINGS];
|
||||
ut64 rva;
|
||||
ut64 offset;
|
||||
ut64 size;
|
||||
ut64 ordinal;
|
||||
ut64 hint;
|
||||
} RBinImport;
|
||||
|
|
Loading…
Reference in New Issue