俗话说,了解敌人才能击败敌人,最近和oLLVM对抗搞得我心很累,所以周末编译一下oLLVM,用的是国内大佬移植来的oLLVM9.0,并简单混淆一下代码,做个小实验~
先编译oLLVM,先去git拉代码:
https://github.com/heroims/obfuscator/tree/llvm-9.0
我这代理有点小问题,直接下载的zip包:
安装cmake和g++:
安装完了,测一下:
好像可以用了,接下来:
mkdir buildcd build/cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF ../
完毕:
开始make:
编译到后面出错了,这段是我编oLLVM4.0版本(2017年的代码)出的错:
问题不大,先不要慌,搜索引擎找找解决方案,但是我看着这中文的UBUNTU属实难受,先给他切换成英文再说,经过一顿查找,中英页面都看了好多,搞了半天还没摸到头脑,貌似没啥人研究过这东西,没招了,我怀疑和机器的字长或者clang啥的有点关系,没事,那就用国人移植的高版本的oLLVM重试一次:
no news is good news~
看起来成功了,我在makefile文件里看了一眼,确实成功了,没有报ERROR,接下来在UBUNTU下配置NDK,下载Linux版本的NDK,配进环境变量:
NDK配好了之后,把我们编译好的oLLVM配进去,简单混淆一个HelloWorld.c文件:
出错了,解决完以后发现,又有新错误,跟我说permission denied,但是我已经chmod 777了,经过一顿操作之后,又是一个又一个的新错,这一下午我一直在解决各种编译的错误,头皮发麻,做着做着我忽然发现一个很严重的问题,我操作系统是64位ubuntu,严重怀疑是工具链哪里和64位操作系统不兼容导致一次又一次的翻车~这方面文章属实太少了,找参考都很费劲,我今晚继续搞,争取明天能用上oLLVM混淆代码~
又是拉胯的一天...
我觉得明天可以尝试在win下编译并使用win下的as混淆代码试试了...
觉得好看的铁铁们可以关注一哈: