2010-05-29 120 views
0

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

回答

4

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

objdump -D a.out | less 

然而要注意的目标文件的最终链接到可执行文件中有很多符号和内部数据的被淘汰了,所以你将不能够理解的结构,你将与目标文件。

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

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

0

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