- Add r_bin_get_section_at
* rabin2
  - Include section name in strings list
This commit is contained in:
Nibble 2010-02-23 18:26:02 +01:00
parent 179bd0e8eb
commit 69f29d82bd
3 changed files with 18 additions and 12 deletions

View File

@ -1,7 +1,6 @@
/* radare - LGPL - Copyright 2009 nibble<.ds@gmail.com> */
/* TODO:
* Linked libraries
* dlopen library and show address
*/
@ -196,11 +195,19 @@ R_API RFList r_bin_get_sections(RBin *bin) {
return bin->sections;
}
#if 0
R_API RBinSection* r_bin_get_section_at(RBin *bin, ut64 off) {
/* TODO */
R_API RBinSection* r_bin_get_section_at(RBin *bin, ut64 off, int va) {
RBinSection *section;
ut64 from, to;
r_flist_foreach (bin->sections, section) {
from = va ? bin->baddr+section->rva : section->offset;
to = va ? bin->baddr+section->rva+section->vsize :
section->offset + section->size;
if (off >= from && off < to)
return section;
}
return NULL;
}
#endif
R_API RFList r_bin_get_strings(RBin *bin) {
return bin->strings;

View File

@ -1,9 +1,7 @@
/* radare - LGPL - Copyright 2009 nibble<.ds@gmail.com> */
/* TODO:
* -l Linked libraries
* -L [lib] dlopen library and show address
* -x XRefs (-s/-i/-z required)
*/
#include <stdio.h>
@ -200,6 +198,7 @@ static int rabin_show_symbols(ut64 at) {
static int rabin_show_strings() {
RFList strings;
RBinString *string;
RBinSection *section;
ut64 baddr;
int i = 0;
@ -212,6 +211,7 @@ static int rabin_show_strings() {
else printf ("[strings]\n");
r_flist_foreach (strings, string) {
section = r_bin_get_section_at (bin, string->offset, 0);
if (rad) {
r_flag_name_filter (string->string);
printf ("f str.%s %lli @ 0x%08llx\n"
@ -219,9 +219,10 @@ static int rabin_show_strings() {
string->string, string->size, va?baddr+string->rva:string->offset,
string->size, va?baddr+string->rva:string->offset);
} else printf ("address=0x%08llx offset=0x%08llx ordinal=%03lli "
"size=%08lli string=%s\n",
"size=%08lli section=%s string=%s\n",
baddr+string->rva, string->offset,
string->ordinal, string->size, string->string);
string->ordinal, string->size,
section?section->name:"unknown", string->string);
i++;
}

View File

@ -144,9 +144,7 @@ R_API RFList r_bin_get_imports(RBin *bin);
R_API RBinInfo* r_bin_get_info(RBin *bin);
R_API RFList r_bin_get_libs(RBin *bin);
R_API RFList r_bin_get_sections(RBin *bin);
#if 0
R_API RBinSection* r_bin_get_section_at(RBin *bin, ut64 off);
#endif
R_API RBinSection* r_bin_get_section_at(RBin *bin, ut64 off, int va);
R_API RFList r_bin_get_strings(RBin *bin);
R_API RFList r_bin_get_symbols(RBin *bin);
R_API RBin* r_bin_new();