Research Based on LLVM Code Obfuscation Technology
Di Lv, Liang Zhao, Bin Chen · 2022
Computer programs are executed continuously in a certain relatively fixed order of instructions. Replacing these instructions with another more complex order or with different instructions with the same meaning without changing the result of the program will change the logic of the original instructions without affecting the result of the operation, which is the core principle of code obfuscation. In the compilation process, before the compiler compiles the code into the target machine code, it will transform the code into a kind of intermediate code, and then generate the target code after Control Flow Flattening and string encryption obfuscation of the intermediate code, which will make the decompilation work more difficult, thus realizing a code obfuscation system, and through some test cases, the effectiveness and feasibility of the system is demonstrated.