如何使用radare2在二进制文件中找到一个符号?

逆向工程 雷达2
2021-07-06 04:16:52

我想strcpy使用radare2 在二进制文件中找到一个符号(例如的地址我尝试使用该f命令列出 r2 识别的所有标志,但该列表非常庞大,以这种方式查找特定符号的地址并不方便。

如果有的话,最好的方法是什么。

1个回答

f命令用于列出所选标志空间中的所有标志。默认情况下,所有可用的标志空间都被选中。为了选择“符号”标志空间并仅列出其中的标志,请使用:

[0x004049a0]> fs symbols
[0x004049a0]> f
0x00402a00 261 main
0x004049a0 41 entry0
0x0061e600 8 obj.__bss_start
0x00413c8c 9 sym._fini
0x0061e610 4 obj.optind
0x004022b8 26 sym._init
0x0061e620 8 obj.program_invocation_name
0x0061e600 0 loc.__bss_start
0x0061f368 0 loc._end
0x00412960 38 sym._obstack_memory_used
0x0061e5f8 8 obj.obstack_alloc_failed_handler
0x00412780 17 sym._obstack_begin
0x0061e640 8 obj.stderr
0x004128f0 106 sym._obstack_free
0x004128c0 48 sym._obstack_allocated_p
0x0061e618 8 obj.optarg
0x004127a0 21 sym._obstack_begin_1
0x004127c0 245 sym._obstack_newchunk
0x0061e608 8 obj.stdout

但是,我列出所有符号的首选方法是使用i实际使用 'rabin2' ( man rabin2)命令来检索有关二进制文件的信息。使用i?以获取有关命令的帮助。

为了列出所有符号运行is. 如果你想为特定符号“grep”使用radare的内部grep ~

[0x004049a0]> is~strcpy
vaddr=0x004023c0 paddr=0x000023c0 ord=013 fwd=NONE sz=16 bind=GLOBAL type=FUNC name=imp.strcpy

如果您只想要地址,请使用:

[0x004049a0]> is~strcpy[1]
0x004023c0

可以在此处找到有关标志和标志空间的
更多信息有关符号的更多信息可以在此处找到