一、题目背景
经典的代码混淆技术:控制流平坦化(OLLVM/VMP 常用)。原本清晰的 if-else 或顺序执行逻辑,被切碎并扔进一个巨大的 switch-case 状态机中。执行顺序由一个状态变量(State Variable)控制。
-
难度: ⭐⭐⭐⭐(高级)
-
适合人群: 需要提升逆向逻辑重组能力,对抗代码乱序的学员。
-
训练重点:
-
识别状态机调度器(Dispatcher)。
-
追踪状态变量(State/Block ID)的变化轨迹。
-
使用动态调试(打条件断点)记录真实的执行流。
-
二、程序说明
-
平台: Win32 x86
-
类型: 控制台程序
-
是否加壳: 无壳(逻辑平坦化)
-
目标: 画出程序的真实流程图,解出正确密码(
4位长度)。正确提示为:Flattening completely recovered!
三、解题提示
-
IDA F5 出来是一个巨大的
while(true) { switch(state) }。 -
不要顺着代码的物理顺序看,要盯着
state变量下一步被赋值成了什么。 -
密码校验被拆分成了 4 个完全没有顺序的块。
下载
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









暂无评论内容