OLLVM全称Obfuscator-LLVM,即基于LLVM框架的源码级别混淆工具,相比机器指令混淆,源码级别混淆无需关心底层指令差异(由编译器生成),因而更具兼容性和拓展性,对程序流程的控制更为全面,同时也易于理论研究的展开。
本文编译的OLLVM来自Github上的开源项目https://github.com/Qrilee/Obfuscator-LLVM,作者博文https://qtfreet.com/?p=313,该框架基于LLVM 6.0,结合 Ollvm 和 上海交通大学密码与计算机安全实验室维护的Armariris,支持指令替换、控制流伪造、平展以及字符串混淆等;本文编译环境Windows 10 x64 + VS2017 + CMake。
首先使用CMake生成VS的项目文件,基本没什么问题,但是需要注意的是llvmbuild需要Python 2.x,如果你只有或CMake优先选择了Python 3.x,则会导致以下错误: