【发布时间】:2020-12-29 20:31:09
【问题描述】:
如何在精灵中查看标准 c 库函数的汇编?例如,我有一个二进制文件,我有这个二进制文件的源代码,并且我知道在 main 函数中调用了 printf。我想看看这个精灵中 printf 函数的组装。请注意,我想在精灵本身中查看程序集。 我搜索了很多,但我什么也没找到
【问题讨论】:
标签: binary system-calls elf objdump readelf
如何在精灵中查看标准 c 库函数的汇编?例如,我有一个二进制文件,我有这个二进制文件的源代码,并且我知道在 main 函数中调用了 printf。我想看看这个精灵中 printf 函数的组装。请注意,我想在精灵本身中查看程序集。 我搜索了很多,但我什么也没找到
【问题讨论】:
标签: binary system-calls elf objdump readelf
你可以编译
~$ gcc -static prog.c
而prog.c 使用您组装的功能。
这会将使用的库静态链接到二进制文件。
那么你可以:
~$ objdump --disassemble a.out
您甚至可以采取更简单的方法:
只是objdump libc 库:
~$ objdump --disassemble /usr/lib/libc.so.6 // or whatever the path of libc is
【讨论】:
objdump libc.so.6 本身,正如我在编辑中添加的那样。想要源码可以在internt里找,是开源的。