百趣云
百趣云的博客
🔖OLLVM
先看懂平坦化长什么样正常函数的 CFG(控制流图)是树状的:入口 → 分支 → 汇合 → 返回,层次分明。被 OLLVM 控制流平坦化(Control Flow Flattening)处理过的函数,CFG 变成一个大循环套 switch:入口
↓
state = 初始值
↓
┌─────────────┐
│ while(1) │ ←──┐
│ switch(state) │ │
└─────────────┘ │
↑___________┘所有真实代码块被拍平到同一层级,执行顺序由 state 变量驱动。读这种代码就像看被洗牌的电影——每