⚡ 符号执行·逆向实战
30章 · 从入门到精通
🎯 友好色系
01
符号执行入门
什么是符号执行?对比动态分析 · 核心思想:符号化输入、路径约束求解 · 解决混淆、算法还原难题
02
符号执行引擎选型
Angr / Triton / S2E / KLEE 对比 · Angr架构:Project、State、SimEngine · 场景选型
03
Angr环境搭建
Python虚拟环境 · 安装验证 · z3依赖/版本兼容 · 第一个脚本:加载二进制
04
Angr核心概念 (上)
Project详解(加载器/架构) · State(寄存器/内存/符号变量) · SimEngine执行模式
05
Angr核心概念 (下)
Path & PathGroup · claripy.BVS/BVV · 约束求解器solver基本使用
06
符号执行基础实战
从main开始执行 · 探索到指定地址 · 获取目标路径输入 · 破解简单密码验证
07
路径爆炸问题
成因(循环/分支) · 缓解策略:剪枝、符号化合并、状态合并 · 实战控制路径数量
08
符号执行与约束求解
Z3原理 · add约束 · satisfiable · eval/eval_upto · 求解复杂数学约束
09
符号执行与内存模型
符号化内存访问 · 地址符号化 · 符号指针 · 分析指针混淆代码
10
符号执行与系统调用
系统调用符号化 · SimProcedures · 自定义SimProcedure · 模拟文件系统
11
符号执行与库函数调用
静态/动态链接处理 · LibcSim · 外部函数调用 · 分析依赖标准库的程序
12
符号执行与反调试
ptrace/时间/断点检测 · 符号执行绕过 · Angr反调试策略 · 分析带反调试样本
13
符号执行与代码混淆
控制流平坦化(OLLVM) · 恢复原始控制流 · 数据混淆还原 · 还原OLLVM算法
14
符号执行与漏洞挖掘 (上)
生成高覆盖率用例 · 探索策略DFS/BFS/覆盖导向 · 自动触发隐藏分支
15
符号执行与漏洞挖掘 (下)
检测缓冲区溢出 · Use-After-Free · 整数溢出 · 发现CrackMe漏洞
16
符号执行与漏洞利用 (上)
自动生成ROP链 · ROPgadget集成 · 约束与gadget匹配 · 简单ROP链
17
符号执行与漏洞利用 (下)
绕过ASLR · 符号化栈地址 · 计算偏移与基址 · 编写exploit框架
18
符号执行与固件分析
固件加载特殊性 · SVD文件支持 · 外设寄存器符号化 · IoT加密算法分析
19
符号执行与恶意代码分析
加壳/反分析 · 符号执行脱壳原理 · 分析加壳恶意行为 · 简单加壳样本
20
符号执行与代码覆盖率
覆盖率概念 · Angr统计 · 覆盖率指导探索 · 最大化目标函数覆盖率
21
符号执行与污点分析
污点分析基础 · 符号执行+污点传播 · Angr污点追踪 · 追踪用户输入到system
22
符号执行与混合执行 (Concolic)
Concolic原理 · Angr Concolic模式 · 具体/符号切换 · 分析大型程序
23
符号执行与多路径分析
同时探索多路径 · 路径合并 · 符号化合并Veritesting · 加速分析
24
符号执行与循环处理
循环符号化挑战 · 展开与归纳 · Angr循环策略 · 分析复杂循环算法
25
符号执行与浮点数运算
浮点符号化表示 · 约束求解挑战 · Angr浮点支持 · 分析浮点加密算法
26
符号执行与多线程程序
多线程路径爆炸 · 线程交错符号化 · SimOS支持 · 分析竞态条件
27
符号执行性能优化
并行执行 · 状态合并优化 · Hook减少路径 · 优化慢速脚本
28
符号执行与自动化逆向工具
自动化分析流水线 · IDA Pro/Ghidra集成 · 自动提取函数参数
29
实战案例 (一) CTF逆向
Google CTF / DefCon Quals · 题目分析→脚本编写 · 获取Flag完整流程
30
实战案例 (二) 真实恶意软件
勒索软件核心算法还原 · 提取解密密钥 · 真实世界样本分析