公司让我找一个可以对android,嵌入式和Linux x86平台的so库进行加密的工具,我看搞了两天这个工具,反正也没用上,就把教程发出来了
下载地址:http://www.safengine.com/mobile/download.html
使用方法:
我使用的ndk版本为r13b,以r13b举例
.将se-llvm\prebuilt内含有的文件覆盖至NDK安装目录toolchains\llvm\prebuilt中,不要直接替换,那样会出错
1.在JNI项目的Application.mk中增加NDK_TOOLCHAIN_VERSION := clang
2.(其中clang后的数字为ndk目录下toolchains文件夹中llvm文件夹所跟数值,如果文件夹名为llvm-3.6,则需增加NDK_TOOLCHAIN_VERSION := clang36)
2.根据需要在代码中增加SDK标记:
(我用的是免费版)
批量标记:
#pragma obfuscate on/off 加密编译该区域中的所有函数(保留以上单独设定)
3.执行ndk-build编译(使用-B重新编译项目)
如出现cpu编译目标错误,则为ndk中没有对应cpu版本的工具链,在Application.mk的APP_ABI选项中去掉对应cpu版本即可,
可能是因为是免费版的缘故,还是可以看到关键指令,但是看起来还是很费劲的,插花是随机的,每次编译后都是不一样的,接下来公司让我开发一个so的壳,如果开发出来,公司用不上的话,我就发出来,用上了,我就不发了,因为我害怕被逆向。