windows64位平台下编译 OLLVM6.0, 用于Android JNI开发的so混淆(包括字符串混淆)

windows64位平台下编译ollvm6.0(集成了字符串混淆功能)生成的lib和bin文件,放在android-ndk-r18b-windows-x86_64\android-ndk-r18b\toolchains\llvm\prebuilt\windows-x86_64目录下面即可使用。(因为lib和bin文件压缩后有400多M,上传资源的大小有限制,所以分两次上传, windows_ollvm6.0_ndk_r18b.7z.001和windows_ollvm6.0_ndk_r18b.7z.002都下载之后,放在同级目录下面解压)。

操作步骤:

第一步:先备份 android-ndk-r18b-windows-x86_64\android-ndk-r18b\toolchains\llvm
第二步:删掉android-ndk-r18b-windows-x86_64\android-ndk-r18b\toolchains\llvm\prebuilt\windows-x86_64目录下所有的文件
第三步:将解压后的lib文件夹和bin文件夹复制到android-ndk-r18b-windows-x86_64\android-ndk-r18b\toolchains\llvm\prebuilt\windows-x86_64文件夹下面

Android.mk文件中配置混淆

LOCAL_CFLAGS += -mllvm -sub -mllvm -fla -mllvm -bcf
#字符串混淆
LOCAL_CFLAGS += -mllvm -sobf

ndk下载地址可参考https://developer.android.google.cn/ndk/downloads/
或者
https://dl.google.com/android/repository/android-ndk-r18b-windows-x86_64.zip

ollvm6.0经过测试,最高支持ndk-r18b,

在ndk-r19b上编译jni会报这样的错误:clang++.exe: error: unknown argument: '-fno-addrsig'

 

windows_ollvm6.0_ndk_r18b.7z.001 下载链接 https://download.csdn.net/download/u012442804/11194759

windows_ollvm6.0_ndk_r18b.7z.002 下载链接 https://download.csdn.net/download/u012442804/11194795

 

ollvm6.0编译参考资料 

https://github.com/yazhiwang/ollvm-tll

编译 ollvm-tll 之后,集成到ndkr18b之后,生成的so文件,用IDA Pro7.0打开,发现有部分字符串没有混淆,做了一点调整。

调整了如下两个文件

include/llvm/Transforms/Obfuscation/StringObfuscation.h
lib/Transforms/Obfuscation/StringObfuscation.cpp

参考资料 https://zhuanlan.zhihu.com/p/39322683

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值