🛡️ avatar2 + angr
固件漏洞实战
📘 30章 · 从入门到实战
1
固件安全概述
IoT与嵌入式固件安全现状、常见漏洞类型、分析流程概览
2
环境搭建
Ubuntu 22.04虚拟机配置、Python 3.10虚拟环境、avatar2与angr安装
3
avatar2核心概念
QEMU系统仿真、架构、编写第一个avatar2脚本
4
angr核心概念
VEX中间表示、符号执行引擎、CFG与DFG生成
5
联合调试原理
avatar2硬件仿真层 + angr分析引擎,共享内存/文件系统交互
6
固件提取与识别
binwalk提取、CPU架构识别、入口点与加载地址
7
加载固件到avatar2
配置QEMU系统模式、内存映射、加载二进制启动仿真
8
angr加载固件二进制
Project加载ELF/原始二进制、基地址、Thumb/ARM切换
9
符号执行基础
符号化输入BVS、约束求解Solver、路径探索与爆炸
10
联合调试第一步
avatar2断点、触发angr符号执行、读取内存状态
11
漏洞模式分析
栈/堆溢出、格式化字符串漏洞的固件特征
12
实战案例1:栈溢出
CFG分析危险函数,avatar2动态验证
13
实战案例2:命令注入
符号化用户输入,约束求解生成payload
14
实战案例3:硬编码后门
探索隐藏路径,逆向后门密码比较逻辑
15
内存访问监控
hook特定地址读写,传递事件给angr
16
外设仿真与MMIO
注册MMIO处理函数,模拟UART/GPIO外设
17
多架构支持
ARM/MIPS联合调试差异、大小端、指令对齐
18
路径约束与利用
SimulationManager管理路径,生成利用条件
19
自动化漏洞发现
循环执行联合分析,自动记录崩溃点与输入
20
性能优化
Z3超时、QEMU快照恢复、并行化分析
21
调试技巧
claripy Debugger、GDB stub集成、日志控制
22
常见问题与排错
QEMU启动失败、路径爆炸、内存映射冲突
23
案例复盘:路由器CVE
某路由器固件漏洞完整联合调试 (CVE-2023-XXXX)
24
案例复盘:摄像头CVE
智能摄像头固件漏洞,MMIO外设仿真 (CVE-2024-XXXX)
25
与Firmadyne集成
自动构建镜像,avatar2加载,angr分析网络服务
26
与Ghidra集成
angr符号执行结果导入Ghidra可视化
27
自定义angr插件
编写Analysis插件,自动检测漏洞触发断点
28
固件补丁分析
对比补丁前后,识别修补路径,验证修复效果
29
课程总结
联合调试工作流、最佳实践、未来方向
30
综合实战项目
未知固件独立完成提取、加载、漏洞发现与利用