控制流平坦化¶
简介¶
控制流平坦化(control flow flattening)是作用于控制流图的代码混淆技术,其基本思想是重新组织函数的控制流图中的基本块关系,通过插入一个“主分发器”来控制基本块的执行流程,例如下图是正常的执行流程:
经过控制流平坦化处理之后便变成了这个样子,由一个“主分发器”负责控制程序执行流:
通过控制流平坦化,基本块间的前后关系将被混淆,从而加大了程序逆向分析的难度。更多关于控制流平坦化的实现细节可以参考这篇论文.
利用符号执行去除控制流平坦化¶
待施工。