在Linux下,你可以使用多種工具來查看反匯編指令。以下是一些常用的工具和方法:
objdump
objdump
是一個非常強大的工具,可以用來顯示目標文件的各種信息,包括反匯編代碼。
objdump -d <binary_file>
例如:
objdump -d /bin/ls
-M intel
:使用Intel語法而不是AT&T語法。-b binary
:指定二進制文件。-D
:反匯編整個文件,包括所有段。-S
:將源代碼與反匯編代碼混合顯示。gdb
gdb
是GNU調試器,也可以用來查看反匯編指令。
gdb <binary_file>
然后在 gdb
提示符下輸入:
disassemble <function_name>
例如:
gdb /bin/ls
(gdb) disassemble main
radare2
radare2
是一個開源的逆向工程框架,提供了強大的反匯編和調試功能。
radare2 <binary_file>
然后在 radare2
提示符下輸入:
pdf @ main
例如:
radare2 /bin/ls
[0x00007ffff7dd8000]> pdf @ main
ndisasm
ndisasm
是一個簡單的反匯編器,通常用于查看二進制文件的指令。
ndisasm -b 64 <binary_file>
例如:
ndisasm -b 64 /bin/ls
capstone
capstone
是一個多平臺的反匯編框架,支持多種架構。
pip install capstone
from capstone import *
md = Cs(CS_ARCH_X86, CS_MODE_64)
code = b"\x55\x48\x8b\x05\xb8\x13\x00\x00"
md.disasm(code, 0x1000)
objdump
是最常用的工具,適合大多數情況。gdb
適合調試時查看反匯編指令。radare2
提供了更高級的反匯編和逆向工程功能。ndisasm
簡單直接,適合快速查看指令。capstone
是一個編程接口,適合集成到其他應用中。選擇合適的工具取決于你的具體需求和使用場景。