摘要
随着软件功能的日趋复杂和网络攻击技术的不断演进,软件盗版、软件破解、数据泄露、软件恶意修改等恶意行为呈上升趋势,软件安全问题逐渐成为行业领域普遍关注的焦点和研究方向。代码混淆是一种典型的对抗逆向工程的软件保护技术,它能够在保持程序原有功能不变的条件下加大攻击者对程序进行分析和理解的难度,被广泛应用和深入研究。现有的代码混淆技术大多由于追求混淆效果而普遍存在性能损耗偏高、隐蔽性差等问题。控制结构混淆是代码混淆技术中应用较广泛的一种,它通过扰乱程序的控制流从而提高代码逆向工程难度,不透明谓词混淆是其一大分支。为了弥补现有代码混淆技术的缺陷,提出了基于浮点数类型转换和运算的不透明谓词构造方法,利用计算机浮点数类型转换和运算过程中伴随的精度损失现象使特定条件下产生与常理相悖的运算结果,通过选择若干个小数进行强制类型转换、加法运算和乘法运算,基于其运算结果统计可以构造一系列不透明谓词,实现代码混淆功能。相较于传统的不透明谓词,该构造方法具有隐蔽性高、通用性好、可逆性、开销低等优点。实验验证表明,该方法在大幅降低攻击者对软件进行逆向工程等工作速度的同时,对于符号执行等动态分析技术具有良好的抵御性能。
With the increasing complexity of software functions and the evolving technologies of network attacks,malicious behaviors such as software piracy,software cracking,data leakage,and malicious software modification are on the rise.As a result,software security has become a focal point in industry research.Code obfuscation is a common software protection technique used to hinder reverse engineering.It aims to make program analyzing and understanding more difficult for attackers while preserving the original program functionality.However,many ex-isting code obfuscation techniques suffer from performance loss and poor concealment in pursuit of obfuscation ef-fectiveness.Control flow obfuscation,particularly opaque predicate obfuscation,is widely used to increase the dif-ficulty of code reverse engineering by disrupting the program’s control flow.A method was proposed to address the limitations of existing code obfuscation techniques.It utilized the phenomenon of precision loss that occurred during type conversion and floating-point number operations in computers.Under certain conditions,this method produced operation results that contradict common sense.By performing forced type conversion,addition,and multiplication with selected decimal numbers,a series of opaque predicates can be constructed based on the statistical analysis of their operation results.This approach achieved code obfuscation with high concealment,good generality,reversibil-ity,and low overhead compared to traditional opaque predicates.Experimental verification demonstrates that this method significantly slows down attackers’reverse engineering efforts and exhibits good resistance to dynamic analysis techniques such as symbolic execution.
作者
王庆丰
梁浩
王亚文
谢根琳
何本伟
WANG Qingfeng;LIANG Hao;WANG Yawen;XIE Genlin;HE Benwei(Information Technology Research Institute,Information Engineering University,Zhengzhou 450001,China)
出处
《网络与信息安全学报》
2023年第5期48-58,共11页
Chinese Journal of Network and Information Security
基金
国家自然科学基金(62002383)。
关键词
代码混淆
虚假控制流
不透明谓词
浮点数运算
code obfuscation
bogus control flow
opaque predicates
floating point operations