在 Linux 下进行二进制逆向分析,通常分为静态分析和动态分析两大类。下面给你一个比较系统、实用的入门到进阶指南。
sudo apt update
sudo apt install -y gdb radare2 objdump file strings binutils
常见工具:
file:判断文件类型strings:提取字符串objdump:反汇编gdb:动态调试radare2 / rizin:强大逆向框架IDA Free / Ghidra:图形化逆向(可选)file ./target
确认是:
strings ./target | less
常用于:
objdump -d ./target | less
常用选项:
objdump -d -M intel ./target # Intel 语法
重点看:
mainprintf / scanfstrcmp / memcpyr2 ./target
# 或
rizin ./target
常用命令:
aa # 自动分析
aaa # 深度分析
afl # 列出函数
s main # 跳到 main
pdf # 反汇编当前函数
izz # 字符串
图形视图:
V # 文本图形
VV # 流程图
如果是 stripped:
rabin2 -i ./target # 导入函数
rabin2 -z ./target # 字符串
gdb ./target
常用:
break main
run
disassemble
stepi
info registers
x/10x $rsp
插件推荐:
pwndbgpedagef安装 pwndbg:
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
strace ./target
看:
openreadwriteexecveltrace ./target
观察:
strcmpmallocprintf步骤:
stringsstrcmpfilestringsstraceltrace⚠️ 不要直接运行未知二进制
memcpy / xor / aes# 下载后运行
./ghidraRun
优点:
gdb + pwndbgradare2如果你愿意,可以告诉我:
我可以给你更针对性的分析步骤。