01
FPGA逆向工程导论
什么是FPGA网表逆向、应用场景(IP保护、硬件安全、竞品分析)、逆向工程的法律与道德边界。
导论法律
02
FPGA基础与网表结构
FPGA内部架构(LUT、FF、BRAM、DSP、IO)、网表文件格式(EDIF、Verilog网表、XDL)、层次化结构。
架构EDIF
03
环境搭建与工具链
Vivado/ISE基础操作、第三方工具(Netlist2Graph、Yosys、SymbiFlow)、Python解析库(pyverilog、lxml)。
工具Vivado
04
网表解析入门
使用Python解析EDIF网表、提取基本单元(Cells)与连接(Nets)、构建内存中的图结构。
PythonEDIF
05
网表可视化基础
使用Graphviz绘制网表图、布局算法选择(dot、neato、fdp)、从混乱的连线中寻找规律。
Graphviz可视化
06
逻辑单元识别(一)
LUT(查找表)的输入输出识别、LUT真值表提取与简化、从LUT还原组合逻辑。
LUT组合逻辑
07
逻辑单元识别(二)
触发器(FF)的类型识别(D-FF、T-FF、JK-FF)、时钟与复位信号的追踪、提取时序逻辑。
触发器时序
08
宏单元识别
BRAM(块RAM)的端口映射、DSP48(数字信号处理单元)的配置识别、IOB(输入输出块)的电气特性分析。
BRAMDSP48
09
网表化简与优化
冗余逻辑消除、常量传播、扇入扇出分析、网表同构化简。
优化化简
10
功能模块聚类
基于连通性的模块划分、层次化聚类算法、从网表中提取子电路。
聚类子电路
11
有限状态机(FSM)提取
状态寄存器的识别、状态转移逻辑推导、状态图生成。
FSM状态机
12
数据通路分析
数据流追踪、寄存器传输级(RTL)重构、多比特信号的合并与总线识别。
数据流RTL
13
控制通路分析
控制信号提取、握手协议识别、状态机与数据通路的交互。
控制握手
14
时钟域分析
时钟网络的提取与追踪、跨时钟域(CDC)路径识别、异步逻辑的处理。
时钟CDC
15
复位网络分析
全局复位与局部复位、异步复位与同步复位、复位树的提取。
复位树
16
网表同构比较
图同构算法基础(VF2、Nauty)、网表签名生成、快速匹配与差异分析。
同构VF2
17
IP核识别
已知IP核的库构建、模板匹配技术、参数化IP的识别。
IP核模板
18
网表逆向中的反混淆
网表混淆技术概述、逻辑加密破解、网表重写与去混淆。
反混淆加密
19
从网表到RTL(一)
组合逻辑的RTL重构、从LUT网表生成Verilog表达式。
RTLVerilog
20
从网表到RTL(二)
时序逻辑的RTL重构、状态机与寄存器的Verilog生成。
时序寄存器
21
从网表到RTL(三)
层次化RTL生成、模块接口提取、完整的RTL代码合成。
层次化接口
22
功能图生成基础
功能图的概念与表示方法、从网表到数据流图(DFG)、从网表到控制流图(CFG)。
DFGCFG
23
数据流图(DFG)生成
操作符识别、数据依赖分析、DFG的优化与简化。
DFG依赖
24
控制流图(CFG)生成
基本块划分、控制依赖分析、CFG的环路检测。
CFG环路
25
混合图生成
结合DFG与CFG的混合图、层次化功能图、带时序信息的功能图。
混合图时序
26
功能图可视化
交互式功能图展示、节点与边的语义标注、高亮关键路径。
可视化交互
27
实战案例一:简单计数器
从网表到功能图的全流程,计数器逆向实战。
实战计数器
28
实战案例二:UART通信模块
协议识别与功能重构,UART网表逆向。
UART协议
29
实战案例三:AES加密核
算法识别与关键路径分析,AES逆向。
AES加密
30
总结与展望
FPGA网表逆向的挑战、自动化工具的发展趋势、硬件安全与逆向的未来。
展望趋势