2010-05-29 119 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命令可以檢查一個二進制文件並查看定義了哪些符號。如果您想查看用於創建二進制文件的實際代碼,您需要一個反編譯器,它只能部分重構原始代碼,因爲在編譯過程中零件本質上會丟失。