一、逆向工程基础工具

DIE(Detect It Easy) — 文件类型与加壳检测工具,支持PE/ELF/Mach-O格式,可识别大量常见加壳/加密/混淆工具。

Ghidra — 美国NSA开源的逆向工程平台,支持多架构反汇编与反编译。

IDA Pro — 行业标准的交互式反汇编器,支持丰富插件生态。

GDB + pwndbg — GDB是Linux下标准调试器,pwndbg为其PWN场景增强插件。

二、安卓逆向

APK结构:classes.dex、lib/、AndroidManifest.xml、resources.arsc。jadx-gui可将APK反编译为Java源码。

三、常见二进制架构

架构

pwntools context

说明

x86/i386

context.arch = 'i386'

32位,4字节指针

x86_64/amd64

context.arch = 'amd64'

64位,8字节指针

ARM

context.arch = 'arm'

常见于IoT/嵌入式

ARM64

context.arch = 'aarch64'

64位ARM,现代移动设备

四、PWN工具链

readelf — 查看ELF文件结构。-h文件头/-l段头/-S节头/-s符号表。

checksec — 检查Canary、NX、PIE、RELRO保护机制。

pwntools — Python CTF PWN框架:p64()/u64()打包、ELF()加载、remote()连接、ROP()链、shellcraft生成shellcode。

五、PWN实战基础

栈帧结构:高→低:[局部变量][old rbp][返回地址][参数]。

from pwn import *
p = process('./vuln')
payload = b'A'*offset + p64(win_addr)
p.sendline(payload)
p.interactive()

偏移量:cyclic(100)→gdb→cyclic -l [地址]。