摘要:经过多年的技术发展和攻防对抗, Android平台应用加固技术已经相当成熟,防护粒度从DEX代码抽取逐步发展成为将核心功能代码写入共享链接文件,再对此Native层文件加入OLLVM混淆等技术,将防护面从Java层下沉到Native层,由通用的DEX动态修改进化为高度定制化的Native层混淆机制,以求不断增加逆向分析的难度和工作量来增强保护客户端的代码. 针对近期崛起的OLLVM混淆加固技术,本文提出基于Capstone和流敏感混合执行的自动化反混淆决方案(CiANa). 采用Capstone引擎分析基本块及其指令结构实现游离在程序反汇编控制流程图中各处的真实块的识别,然后基于流敏感的混合执行确定各真实块间的执行顺序,最后对真实块汇编指令进行指令修复得到反混淆后的可执行二进制文件. 对比实验结果表明, CiANa可恢复ARM/ARM64架构下OLLVM混淆过后的Android Native文件. CiANa是目前为止第一个在ARM/ARM64架构中能对全版本(Debug/Realse版本)的OLLVM进行有效反混淆的框架,为逆向分析提供了必要的辅助支撑功能.