1. objdump(GNU Binutils套件)
objdump是Debian下最基础的反汇编工具,常用于查看二进制文件的汇编代码、符号表等信息。常用指令包括:
objdump -d <binary_file>(反汇编整个文件的代码段);objdump -d -j .text <binary_file>(仅反汇编.text段,即代码段);objdump -d --start-address=0x<start> --stop-address=0x<stop> <binary_file>(反汇编指定内存范围的代码);objdump -t <binary_file>(查看文件中的符号信息,如函数、变量名)。2. ndisasm(NASM工具包)
ndisasm是NASM(Netwide Assembler)附带的反汇编器,专注于x86/x64架构的机器码反汇编。常用指令包括:
ndisasm -b 32 <binary_file>(以32位模式反汇编);ndisasm -b 64 -o 0x<offset> <binary_file>(从指定偏移量开始反汇编,适用于分析二进制文件的特定部分)。3. radare2(逆向工程框架)
radare2是功能强大的开源逆向工程框架,支持多种架构(x86、ARM、MIPS等)和文件格式(ELF、PE、Mach-O等)。常用指令包括:
r2 <binary_file>(进入radare2的交互界面);pdf(显示当前光标所在函数的反汇编代码);pdf @ 0x<address>(反汇编指定地址开始的代码);s sym.main(跳转到main函数)、i(显示导入/导出表)。4. gdb(GNU调试器)
gdb主要用于调试程序,但也支持反汇编功能,适合动态分析程序执行流程。常用指令包括:
gdb <binary_file>(进入gdb调试界面);disassemble(或简写disas);disassemble <function_name>(如disassemble main);disassemble 0x<start>, 0x<stop>(反汇编指定内存范围的代码)。5. capstone(轻量级反汇编框架)
capstone是一个跨平台的反汇编框架,支持C/C++、Python等多种语言,适合集成到自定义工具中。常用用法示例:
sudo apt-get install libcapstone-dev(Debian默认仓库提供);cs_open初始化反汇编器,cs_disasm反汇编机器码,cs_free释放资源(参考搜索结果中的代码示例)。6. Ghidra(NSA开源逆向工具)
Ghidra是美国国家安全局(NSA)开发的免费开源逆向工程工具,提供图形化界面和强大的分析功能。常用操作包括: