Design and Implementation of Code Obfuscation Based on Floating-Point Operations
Qingfeng Wang, Hao Liang, Yawen Wang, Genlin Xie, Benwei He · 2022
This paper proposes a method of code obfuscation, which is based on the phenomenon that computers performing floating-point operations are often accompanied by loss of precision. The loss of precision will lead to the operation results that are contrary to common sense under certain conditions. Based on this phenomenon, a series of opaque predicates can be constructed by selecting a number of decimals to perform type conversion, addition and multiplication operations through the computer and collect of the operation results. Based on this phenomenon, a series of opaque predicates can be constructed by selecting a number of fractional numbers for which the computer performs type conversions, additions and multiplications, and collect the results of these operations. Compared to traditional opaque predicates, the opaque predicates constructed by this method have the advantages of high stealth, generality, reversibility and low overhead, and can even resist dynamic analysis techniques such as symbolic execution to a certain extent, making it more difficult for attackers to reverse software when used in conjunction with other opaque predicates of the same type.