🔬 angr 批量挖洞实战
30章 · 从符号执行到自动化漏洞挖掘
⚡ 风格 · 轻松入门
01
angr初探安装验证
angr是什么?为什么选择angr做漏洞挖掘?安装与验证。
02
angr核心概念符号执行
符号执行、约束求解、路径爆炸、状态与插件。
03
Project、State、SimulationManager、SolverEngine。
04
angr.Project()参数详解,加载ELF/PE文件。
05
创建初始状态状态工厂
blank_state()、entry_state()、full_init_state()的区别。
06
状态选项与模式symbolic/concrete
add_options、remove_options、mode参数。
07
BVS、BVV、添加约束、求解变量。
08
模拟执行基础SimulationManager
explore、step、run方法。
09
DFS、BFS、启发式搜索、路径剪枝。
10
钩子与模拟库SimProcedures
hook_symbol、SimProcedures、替换库函数。
11
state.mem、state.regs、读取/写入符号值。
12
SimFile、SimFilesystem、符号化文件内容。
13
模拟argc/argv,符号化输入参数。
14
符号化环境变量,处理rand()等随机函数。
15
漏洞模型溢出/格式化
缓冲区溢出、格式化字符串、整数溢出、释放后使用。
16
符号化输入,约束目标地址,检测越界写。
17
符号化format参数,检测可控格式化串。
18
检测整数溢出溢出条件
符号化运算结果,检测溢出条件。
19
跟踪堆块状态,检测use-after-free。
20
CFG与控制流图函数调用
angr.analyses.CFG,获取函数调用关系。
21
angr.analyses.VSA,值集分析,检测未初始化变量。
22
污点分析TaintEngine
angr的TaintEngine,跟踪用户输入传播路径。
23
符号执行优化状态合并
路径选择策略、状态合并、抽象解释。
24
自动化脚本结构,批量处理二进制文件。
25
利用concrete execution验证漏洞,去重相同漏洞。
26
自动生成PoC、漏洞描述、风险等级。
27
CTF题目自动化漏洞挖掘(如:简单栈溢出)。
28
真实世界二进制漏洞挖掘(如:小型网络服务)。
29
多进程并行、angr-server、自定义插件。
30
angr的局限性、未来方向、推荐学习资源。