c ++的可执行文件将包含链接器,模块和其他文件,我想查看其内容, 我正在使用linux,如何查看a.out的内容? 哪个命令应该用来浏览a.out,文本编辑器不会显示内容......
答案 0 :(得分:5)
您可以使用nm
查看内部符号,使用objdump
进行反汇编。例如:
objdump -D a.out | less
但请注意,在最终将目标文件链接到可执行文件中时,会消除许多符号和内部数据,因此您将无法像使用目标文件那样理解结构。
如果你想编辑和修改可执行文件,我建议你使用hte
编辑器,它可以作为x86可执行文件的反汇编程序。如果您是debian / ubuntu用户,则包名称为“ht”(不是“hte”)。
我还写了一篇little elf disassembly library,但仍然不完整,但非常有趣。您可以找到其他(更完整,可能更好)的实现!
答案 1 :(得分:0)
使用nm
命令可以检查二进制文件并查看定义的符号。如果你想看到用于创建二进制文件的实际代码,你需要一个反编译器,它只能部分重建原始代码,因为在编译过程中部分内容会丢失。