简介
OLLVM(Obfuscator-LLVM)是基于LLVM(Low Level Virtual Machine)框架的一种代码混淆器。它主要用于对C/C++和汇编语言程序进行混淆,以增加代码的复杂性,提高代码的安全性和抵抗逆向工程的能力。
IR(Intermediate Representation)是指中间表示,是编译器在将源代码转化为目标代码的过程中使用的一种中间形式。它作为源代码和目标机器代码之间的一个抽象层,方便进行代码优化、分析和生成。
Module、Function、BasicBlock和Instruction是IR的四个主要部分,它们有不同的作用和层次。
- Module(模块)
Module是IR的最高层次,表示整个程序或库。它可以包含全局变量、函数定义和其他相关信息,并且提供了一个组织单元,用于表示源代码的不同模块或文件。Module可以包含多个Function。 - Function(函数)
Function是IR的第二层,表示程序中的函数。每个Function对应一个具体的源代码函数或方法。Function包含了函数的参数、局部变量、控制流信息以及函数体中的指令。一个Function通常由多个BasicBlock组成。 - BasicBlock(基本块)
BasicBlock是IR中的一个基本块,表示一段连续的中间代码指