网上都是讲怎么样编译Ollvm给Android的二进制文件混淆,我有一个需求是需要在Windows上面使用混淆工具,所以在编译和使用Ollvm的过程中遇到不少坑,,这里记录一下。

首先从以下地址checkout出来代码编译不过去,在win上面提示 /dev/random 无法读取
https://github.com/obfuscator-llvm/obfuscator

后面换了在github上找到一个基于LLVM8.0的,不错就用下面这个可以直接在Win上面编译过去

https://github.com/joenchen/obfuscator

或者这个也行。

https://github.com/qtfreet00/llvm-obfuscator

直接用这个项目的编译命令,在vs2017 x32下面没有遇到任何问题。 编译完成之后,使用clang编译一直没有效果,后面发现应该使用clang-cl命令。

另外,支持4种模式,详见下图

参考链接

https://zhuanlan.zhihu.com/p/39077222

自定义Ollvm,如果不定制还是比较容易被人反编译。可以参考以下文章。

http://www.leadroyal.cn/?cat=20

https://www.jianshu.com/p/e0637f3169a3

https://bbs.pediy.com/thread-217727.htm