摘要
针对控制流分析获取程序执行过程中的分支路径信息,引起路径信息泄露问题,提出能有效隐藏分支路径及其顺序的程序混淆算法。通过二态非透明谓词插入不相关分支路径和不相关结点,改变控制流中的单一结点形式,增加程序分支路径的控制流复杂度。将二态非透明谓词控制流平展化提高混淆强度,采用调度函数动态赋值算法对分支变量进行动态赋值,进一步隐藏分支路径顺序固定的控制流信息。实验结果表明,该算法能实现混淆程序的控制流逻辑关系,提高混淆强度,有效抵御程序的控制流分析。
Aiming at the problem of path information leakage incurred by control flow analysis that can collect the branch path information during program execution,the program obfuscation algorithm that concealed branch paths and their order was proposed.Irrelevant branch path and node were inserted through bi-state opaque predicate,which changed the homogeneous control flow node,and improved the control flow complexity of program branch path.The control flow of bi-state opaque predicate was flattened,which increased obfuscation potency,and the branch variable was assigned dynamically using the algorithm of dyna-mical allocation with dispatch function,which concealed control flow information of fixed branch path order further.Test results show that the proposed algorithm can not only obfuscate internal logic of program control flow,but improve the strength of obfuscation significantly,which combat the control flow analysis of program effectively.
作者
乐德广
赵杰
龚声蓉
LE De-guang;ZHAO Jie;GONG Sheng-rong(School of Computer Science and Engineering,Changshu Institute of Technology,Changshu 215500,China;Suzhou Tongcheng Tourism Network Technology Limited Company,Suzhou 215123,China)
出处
《计算机工程与设计》
北大核心
2020年第11期3255-3261,共7页
Computer Engineering and Design
基金
教育部新一代信息技术产学研创新基金项目(2018A01003)
教育部人文社会科学研究基金项目(18YJCZH068)
江苏省自然科学基金面上基金项目(BK20191475)
江苏省高校自然科学研究面上基金项目(18KJB520002)。
关键词
软件安全
程序混淆
控制流平展化
非透明谓词
分支路径
software security
program obfuscation
control flow flattening
opaque predicate
branch path