摘要
恶意软件、漏洞利用程序等层出不穷,这些程序通常会利用代码混淆来增加其分析难度,以此来延长生存周期。不透明谓词混淆是代码混淆中的主要方法之一。目前通过数据流分析消除程序中的不可达路径是不透明谓词的主要反混淆方法。文章提出一种基于动态符号执行的路径不可达分析的不透明谓词反混淆算法,通过控制流图分析得到每个函数的基本块,然后对含有分支的基本块进行路径可达性分析,去除不可达路径。原型系统实验结果表明,该算法的平均反混淆率在80%左右。
Malicious software and vulnerability exploitprograms emerge endlessly. They usually extend the life cycle by using obfuscated code and hence increase the difficulty to beanalyzed. The opaque predicate obfuscation is one of the main ways for code obfuscation. At present,the main de-obfuscating method for opaque predicates is to eliminate the unreachable path in the program through data flow analysis. This paper presents a scheme of path unreachability analysis on opaque predicate de-obfuscationbased on dynamic symbolic execution. Each function is obtained by control flow graph analysis of basic block. As for the path containing branches of basic block,the accessibility is analyzed and the inaccessiblepaths are eliminated. By analyzing the path reachability of branches,we can determine the true branches that will be executed. Our experiment result shows that the average de-obfuscation rate is at around 80%.
作者
宋雪勦
张俊
何明星
SONG Xuechao,ZHANG Jun, HE Mingxing(School of Computer and Software Engineering, Xihua University, Chengdu 610039 Chin)
出处
《西华大学学报(自然科学版)》
CAS
2018年第3期73-77,共5页
Journal of Xihua University:Natural Science Edition
基金
国家自然科学基金车载自组织网络保护隐私的认证协议研究(U1433130)
关键词
混淆
不透明谓词
反混淆
动态符号执行
路径可达性
: obfuscation
opaque predicate
de-obfuscation
dynamic symbolic execution
path reachability