鉴于我从 GDB 获得的以下程序集,有什么方法可以确定正在导入什么函数? GDB 注释告诉我们,我们正在导入 puts
,但我如何静态地弄清楚这一点?
Dump of assembler code for function puts@plt:
0x00000000004003b8 <+0>: jmpq *0x2004a2(%rip) # 0x600860 <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b4b4e4f487b5c544f154b574f" rel="noreferrer noopener nofollow">[email protected]</a>>
0x00000000004003be <+6>: pushq $0x0
0x00000000004003c3 <+11>: jmpq 0x4003a8
最佳答案
您可以使用objump
:
objdump -d foo
您可以通过管道将 objdump
输出传输到 grep
。
objdump -d foo | grep -A 3 'puts@plt>:'
-A
后面的数字控制匹配后打印的行数(指令)。
关于linux - 识别汇编中的库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20251838/