【问题标题】:how to see contents of a.out file?如何查看 a.out 文件的内容?
【发布时间】:2010-05-29 10:45:52
【问题描述】:

c++ 的可执行文件将包含链接器、模块和其他内容,我想看看它的内容, 我正在使用 linux,如何查看 a.out 的内容? 浏览a.out应该使用哪个命令,文本编辑器不会显示内容......

【问题讨论】:

    标签: c++ linux executable


    【解决方案1】:

    您可以使用nm查看内部符号,使用objdump进行反汇编。举例:

    objdump -D a.out | less
    

    但是请注意,在将目标文件最终链接到可执行文件的过程中,许多符号和内部数据都会被删除,因此您将无法像处理目标文件那样理解结构。

    如果你想编辑和修改可执行文件,我建议你使用hte 编辑器,它可以作为x86 可执行文件的反汇编程序。如果您是 debian/ubuntu 用户,则软件包名称为“ht”(不是“hte”)。

    我还写了一个little elf disassembly library,它仍然不完整但很有趣。但是,您可以找到其他(更完整且可能更好)的实现!

    【讨论】:

      【解决方案2】:

      使用nm 命令,您可以检查二进制文件并查看定义了哪些符号。如果您想查看用于创建二进制文件的实际代码,您将需要一个反编译器,它只能部分重建原始代码,因为在编译过程中部分会固有地丢失。

      【讨论】:

        猜你喜欢
        • 2011-04-05
        • 1970-01-01
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 2019-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多