mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-05 21:13:27 +00:00
* r_bin
- Add r_bin_get_section_at * rabin2 - Include section name in strings list
This commit is contained in:
parent
179bd0e8eb
commit
69f29d82bd
@ -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;
|
||||
|
@ -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++;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user