objdump命令的使用

objdump命令的使用


objdump命令是Linux下的反彙編目標文件或者可執行文件的命令,它還有其他作用,下面以ELF格式可執行文件test爲例詳細介紹:


objdump -f test

顯示test的文件頭信息


objdump -d test

反彙編test中的需要執行指令的那些section



objdump -D test

與-d類似,但反彙編test中的所有section



objdump -h test

顯示test的Section Header信息



objdump -x test

顯示test的全部Header信息




objdump -s test

除了顯示test的全部Header信息,還顯示他們對應的十六進制文件代碼




舉例:

將C源代碼和反匯編出來的指令對照:

1.

編譯成目標文件(要加-g選項)

gcc -g -o test.c


2.

輸出C源代碼和反匯編出來的指令對照的格式

objdump -S test.o

如下:






如何對任意一個二進制文件進行反彙編?

我們可以這樣做:

objdump -D -b binary -m i386 a.bin

-D表示對全部文件進行反彙編,-b表示二進制,-m表示指令集架構,a.bin就是我們要反彙編的二進制文件


objdump -m可以查看更多支持的指令集架構,如i386:x86-64,i8086等


另外上面的所有objdump命令的參數同樣適用於arm-linux-objdump。


同時我們也可以指定big-endian或little-endian(-EB或-EL),我們可以指定從某一個位置開始反彙編等。所以objdump命令是非常強大的!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章