如何查看a.out文件的内容?

时间:2010-05-29 10:45:52

标签: c++ linux executable

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

2 个答案:

答案 0 :(得分:5)

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

objdump -D a.out | less

但请注意,在最终将目标文件链接到可执行文件中时,会消除许多符号和内部数据,因此您将无法像使用目标文件那样理解结构。

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

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

答案 1 :(得分:0)

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