反汇编 ARM Linux 程序通常用于分析二进制文件、调试、逆向工程或漏洞研究。下面从工具选择、基本流程和常见示例三个方面说明。
objdump(最常用)GNU binutils 自带,适合 ELF 文件。
arm-linux-gnueabihf-objdump -d program
-d:反汇编可执行代码段-D:反汇编所有段-S:源码+汇编(需带调试信息)gdb(动态分析)适合运行时反汇编。
gdb ./program
(gdb) disassemble main
或:
(gdb) layout asm
IDA Pro / Ghidra(高级逆向)支持 ARM32 / ARM64,自动识别函数、控制流。
radare2 / rizin命令行逆向框架。
r2 ./program
[0x00000000]> aaa
[0x00000000]> pdf @ main
llvm-objdump如果你使用 LLVM 工具链:
llvm-objdump -d program
file program
示例输出:
ELF 32-bit LSB executable, ARM, EABI5
arm-linux-gnueabihf-objdump -d program > disasm.txt
如果是 aarch64:
aarch64-linux-gnu-objdump -d program
arm-linux-gnueabihf-nm program
arm-linux-gnueabihf-objdump -S program
arm-linux-gnueabihf-objdump -d program | grep -A 30 "<main>:"
arm-linux-gnueabihf-objdump -d --start-address=0x8000 --stop-address=0x8100 program
gdb ./program
(gdb) break main
(gdb) run
(gdb) disassemble
ARM / Thumb 模式
objdump -d -M reg-names-std program
ARM64(AArch64)
aarch64 工具链PIE / 地址随机化
objdump + gdbGhidra / IDAradare2 / rizin如果你有具体目标(比如某个 ARM Linux 二进制、固件、Android so),可以告诉我,我可以给你更针对性的命令。