一、代码混淆的定义
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行
二、ADVobfuscator简介
ADVobfuscator演示如何使用C ++ 11/14语言在编译时生成混淆代码,而无需使用任何外部工具,也无需修改编译器。 所提出的技术仅仅依靠ISO标准化的C ++ 11/14。 它还展示了如何引入某种形式的随机性来生成多态代码,并给出了一些具体的例子,如字符串文字的加密和使用有限状态机的调用混淆。
三、ADVobfuscator实例分析
1. 字符串混淆
将要混淆的字符串作为定义的宏的参数。项目提供了两种方式来混淆字符串。
第一种,声明和使用在同一阶段:
OBFUSCATED宏先对该字符串的每个字符按照生成的随机数进行加密,对字符串进行了替代(保证每个字符串加密使用了不同的密钥,否则,一个简单地逆向工程解密就可以破解所有的字符串)