1. objdump
objdump是CentOS系統中最常用的反匯編工具之一,屬于GNU Binutils工具集,主要用于顯示二進制文件的詳細信息(包括反匯編代碼)。其核心功能是通過命令行快速反匯編可執行文件、目標文件或共享庫。常用命令包括:objdump -d <binary_file>
(反匯編可執行文件)、objdump -d -j .text <binary_file>
(僅反匯編.text段,即代碼段)、objdump -d -S <binary_file>
(混合顯示源代碼與反匯編代碼,需編譯時添加-g
調試信息)。安裝方式為通過yum包管理器執行sudo yum install binutils
。
2. gdb(GNU調試器)
gdb不僅是調試工具,也可用于動態反匯編程序。它允許用戶在程序運行時查看反匯編代碼、設置斷點、單步執行及檢查寄存器/內存狀態。常用命令有:gdb <binary_file>
(啟動gdb并加載二進制文件)、disassemble /m <function_name>
(反匯編指定函數,/m
選項顯示源代碼與匯編代碼混合)、break <function_name>
(在指定函數處設置斷點)、run
(啟動程序)、nexti
(單步執行下一條機器指令)。安裝方式為sudo yum install gdb
。
3. radare2
radare2是一個開源的逆向工程框架,支持反匯編、調試、二進制分析等多種功能,適合復雜場景(如惡意軟件分析、漏洞挖掘)。其特點是命令行交互式操作,功能強大但需要一定學習成本。常用命令包括:r2 <binary_file>
(啟動radare2并打開二進制文件)、aaa
(分析所有符號與函數)、pdf @ main
(反匯編main
函數,@
符號指定地址)、s main
(跳轉到main
函數)、q
(退出radare2)。安裝方式為sudo yum install radare2
(CentOS 7及以下)或sudo dnf install radare2
(CentOS 8及以上)。
4. IDA Pro
IDA Pro是業界領先的商業反匯編工具,提供圖形化界面與高級分析功能(如自動識別函數、數據結構、控制流圖),適合專業逆向工程師處理復雜二進制文件(如固件、加密程序)。其優勢在于交互性強、分析深度高,但需要付費購買許可證。使用方式:下載并安裝IDA Pro(支持Linux版本),啟動后打開二進制文件,通過圖形界面導航至目標位置,點擊右鍵選擇“Disassemble”即可查看反匯編代碼。
5. Ghidra
Ghidra是由美國國家安全局(NSA)開發的開源逆向工程工具,功能媲美商業工具(如IDA Pro),支持多架構(x86、ARM、MIPS等)、多平臺(Linux、Windows、macOS)。其特點是開源免費、社區活躍,適合個人用戶與團隊使用。常用操作:從官方網站下載Linux版本安裝包,解壓后運行./ghidraRun
啟動,創建新項目并導入二進制文件,通過“CodeBrowser”視圖查看反匯編代碼(自動分析函數與控制流)。
6. capstone
capstone是一個輕量級的多平臺反匯編框架,支持C/C++、Python等多種編程語言,適合編寫自定義反匯編腳本(如提取特定指令、自動化分析)。其優勢在于靈活性高、易于集成,常用于安全工具開發(如漏洞掃描器、惡意軟件檢測工具)。常用Python示例:from capstone import *; md = Cs(CS_ARCH_X86, CS_MODE_32); code = open("binary", "rb").read(); for insn in md.disasm(code, 0x1000): print(f"0x{insn.address:x}: {insn.mnemonic} {insn.op_str}")
(反匯編32位二進制文件,從地址0x1000開始)。安裝方式為sudo yum install capstone
。
7. ndisasm
ndisasm是NASM(Netwide Assembler)的一部分,專門用于反匯編16位/32位/64位x86架構的二進制文件(如引導扇區、COM文件、PE文件)。其特點是專注于x86架構,適合處理簡單的二進制文件。常用命令包括:ndisasm -b 32 <binary_file>
(以32位模式反匯編)、ndisasm bootloader.bin
(默認16位模式反匯編引導扇區)。安裝方式為sudo yum install nasm
(包含ndisasm)。