FPGA比特流逆向与固件分析实战

📚 共计 30 章节
01
逆向工程导论
FPGA安全现状 · 比特流逆向的意义 · 课程目标与学习路径
导论安全
02
FPGA架构基础
查找表(LUT) · 触发器(FF) · 块RAM(BRAM) · DSP · 可编程互连
LUTBRAMDSP
03
开发工具链入门
Vivado/Vitis流程 · 综合 · 实现 · 比特流生成
Vivado工具链
04
比特流文件格式解析
Xilinx头部 · 同步字 · 设备ID · 帧结构 · CRC校验
格式
05
比特流安全机制
3DES/AES-256 · HMAC · BBRAM · eFUSE密钥存储
加密AESeFUSE
06
逆向环境搭建
Linux虚拟机 · Python3 · bitparse · prjxray · openFPGA
环境prjxray
07
Python比特流解析实战
读取二进制 · 解析帧地址 · 提取配置数据
Python解析
08
帧(Frame)结构深入
帧长度 · 地址编码 · 列类型(CLB/BRAM/DSP/IO) · 行列概念
列类型
09
配置寄存器详解
CRC · FAR · FDRI · CMD 寄存器
寄存器FAR
10
比特流命令集
WCFG · LFRM · RCRC · START 启动序列
命令WCFG
11
设备ID与兼容性
7系列/UltraScale IDCODE · 比特流兼容性检查
IDCODE兼容
12
时序分析基础
建立/保持时间 · CDC · 静态时序分析(STA)逆向应用
时序STA
13
逻辑单元逆向
LUT配置提取 · FF初始值 · MUX选择信号
LUTFF
14
BRAM内容提取
BRAM初始化数据位置 · 读取与校验方法
BRAM提取
15
DSP单元逆向
DSP48E1/E2配置位 · 操作模式识别(乘法/累加/ALU)
DSPALU
16
互连资源逆向
可编程开关矩阵(PSM) · 连接盒(CB) · 开关盒(SB)配置位
互连PSM
17
布线资源图构建
从比特流重建互连拓扑 · prjxray数据库映射
布线prjxray
18
网表重建技术
配置位→逻辑门→网表 · 层次化重建策略
网表重建
19
时序约束逆向
提取时钟约束 · I/O延迟 · 虚假路径约束
时序约束逆向
20
固件分析基础
固件vs比特流 · BIN/MCS/HEX格式 · 加载流程
固件格式
21
固件提取技术
SPI Flash读取 · JTAG边界扫描 · ICAP/PCAP
提取JTAG
22
固件加密与解密
AES密钥提取攻击 · DPA/SPA功耗分析
解密DPA
23
固件完整性验证
CRC校验 · 数字签名 · 哈希比对
完整性签名
24
固件漏洞分析
缓冲区溢出 · 硬编码密钥 · 后门 · 逻辑炸弹
漏洞后门
25
硬件木马检测
数字/模拟/射频木马 · 侧信道 · 逻辑测试
木马侧信道
26
案例研究1:Xilinx 7系列
破解Xilinx 7系列比特流加密保护
案例7系列
27
案例研究2:Altera Cyclone V
逆向Altera/Intel Cyclone V固件
案例Cyclone V
28
案例研究3:Lattice iCE40
分析Lattice iCE40比特流结构
案例iCE40
29
工具开发实战
自动化分析工具链 · GUI界面 · 报告生成
工具GUI
30
总结与展望
FPGA安全趋势 · 量子计算影响 · 未来研究方向
趋势量子