【问题标题】:how to see the assembly of libc functions in an elf如何在精灵中查看 libc 函数的程序集
【发布时间】:2020-12-29 20:31:09
【问题描述】:

如何在精灵中查看标准 c 库函数的汇编?例如,我有一个二进制文件,我有这个二进制文件的源代码,并且我知道在 main 函数中调用了 printf。我想看看这个精灵中 printf 函数的组装。请注意,我想在精灵本身中查看程序集。 我搜索了很多,但我什么也没找到

【问题讨论】:

    标签: binary system-calls elf objdump readelf


    【解决方案1】:

    你可以编译

    ~$ 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
    

    【讨论】:

    • 谢谢。如果我不做静态链接到库,我不能吗?我想知道这些函数(printf 和 scanf 和 ...)的代码是否存在二进制文件中?
    • 我不太明白。如果你想组装它,你可以objdump libc.so.6 本身,正如我在编辑中添加的那样。想要源码可以在internt里找,是开源的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多