objdump是GNU Binutils工具集的一部分,适用于ELF格式的二进制文件(如可执行文件、共享库),支持反汇编特定段、地址范围及显示符号信息。
sudo apt update && sudo apt install binutils
objdump -d /path/to/binary_file
objdump -d -j .text /path/to/binary_file
objdump -d --start-address=0x401000 --stop-address=0x401100 /path/to/binary_file
objdump -t /path/to/binary_file
-M intel选项,如objdump -d -M intel /path/to/binary_file。GDB是调试工具,也可用于动态反汇编(需加载程序并运行至特定位置)。
gdb /path/to/binary_file
(gdb) disassemble
main):(gdb) disassemble main
(gdb) disassemble 0x401000, 0x401100
break main)、运行程序(run),再反汇编当前执行的代码。radare2是开源逆向工具,支持静态/动态分析,功能强大(如反汇编、控制流图、字符串搜索)。
sudo apt update && sudo apt install radare2
r2 /path/to/binary_file
pdfpd @ 0x401000pd 10(r2) aaa # 分析所有函数
(r2) s main # 跳转至main函数
(r2) pdf # 反汇编main函数
q。Ghidra由NSA开发,提供图形化界面,支持自动分析、反汇编、伪代码生成(适合新手)。
ghidraRun启动。File→New Project创建项目。Import File,选择二进制文件导入。Analyze Program(自动分析代码结构)。Disassembly视图中查看反汇编代码(可展开函数、查看交叉引用)。Show Pseudocode生成伪代码(简化复杂逻辑理解)。Search→For Strings查找字符串(快速定位关键代码)。ndisasm是NASM工具集的一部分,仅适用于x86/x64架构的二进制文件(如编译后的.bin文件)。
sudo apt install nasm
ndisasm -b 32 /path/to/binary_file
ndisasm -b 32 -o 0x100 /path/to/binary_file
-b 32改为-b 64即可。