比特流解析与芯片逆向全流程实战

📚 共计 30 章节
01
逆向工程导论
什么是FPGA逆向、比特流解析的意义、法律与道德边界、课程全景图。
导论全景
02
FPGA架构基础
查找表(LUT)、触发器(FF)、块RAM(BRAM)、DSP切片、可编程互连资源。
LUTBRAMDSP
03
开发工具链入门
Vivado/Vitis安装、创建第一个LED工程、综合与实现、生成比特流。
VivadoLED
04
比特流格式初探
Xilinx .bit文件结构解析、文件头与同步字、设备ID与时间戳。
.bit同步字
05
比特流内部结构
配置包(Packet)类型、类型1与类型2包、帧地址(FAR)寄存器详解。
PacketFAR
06
配置帧(Frame)概念
帧的定义、帧长度计算、帧与CLB的映射关系、列类型(CLB/IOB/BRAM)。
FrameCLB
07
比特流逆向工具链
Project X-ray (prjxray) 框架介绍、安装与配置、数据库结构。
prjxray工具链
08
数据库挖掘
Tile类型与Site类型、BEL与WIRE、PIP(可编程互连点)概念。
TilePIP
09
位流数据库生成
运行prjxray的fuzzers、生成LL(逻辑位置)数据库、理解segbits文件。
fuzzersegbits
10
LUT配置逆向
LUT的6输入结构、INIT参数与真值表、从比特流中提取LUT逻辑。
LUTINIT
11
FF与寄存器配置
FDRE/FDCE等原语、控制集(CE/SR)的配置位、提取寄存器行为。
FFFDRE
12
BRAM配置逆向
BRAM的18K/36K模式、读写模式配置、初始值(INIT)提取。
BRAMINIT
13
DSP48E2配置
DSP切片架构、操作模式(乘法/累加/ALU)、配置位解析。
DSP48ALU
14
IOB与引脚配置
IOBANK、电压标准(LVCMOS/LVDS)、上下拉与延迟配置。
IOBLVCMOS
15
时钟资源逆向
BUFG/MMCM/PLL配置、时钟区域与时钟树、全局时钟网络。
BUFGMMCM
16
互连资源解析
单线(单线)、双线(双线)、六线(六线)、长线(长线)资源。
互连单线
17
PIP配置详解
PIP的Tile位置、PIP的源与目标、PIP的使能位。
PIP使能位
18
路由逆向方法
从网表到路由、追踪信号路径、提取互连拓扑。
路由拓扑
19
Python比特流解析库
使用python解析.bit文件、解析配置包、提取帧数据。
Python解析
20
帧数据解码
将帧数据映射到Tile、提取Tile配置位、构建位图。
帧数据位图
21
网表重建基础
从配置位到逻辑单元、提取LUT方程、提取FF连接。
网表LUT方程
22
网表重建进阶
提取BRAM内容、提取DSP配置、提取IO标准。
BRAMDSP
23
路由重建
从PIP配置提取连接、构建图结构、生成路由拓扑。
图结构拓扑
24
完整逆向流程实战
以简单计数器为例、从比特流到网表、验证逆向结果。
实战计数器
25
复杂设计逆向
状态机逆向、FSM提取、状态转移图重建。
FSM状态机
26
存储类逆向
ROM/RAM/FIFO的识别与内容提取、分布式RAM与BRAM区分。
ROMFIFO
27
时序分析逆向
提取时钟约束、分析关键路径、识别时序违规。
时序关键路径
28
安全与防护
比特流加密(Bitstream Encryption)、认证机制、防逆向技术。
加密防护
29
商业工具与开源工具对比
ISE Impact vs prjxray、商业反汇编器、社区资源。
对比开源
30
综合项目:逆向真实设计
逆向PicoRV32、完整报告生成、成果展示与总结。
PicoRV32综合项目