Windows环境下编译与集成ollvm-tti到ndk-r17b
需积分: 50 100 浏览量
更新于2024-09-07
2
收藏 1KB TXT 举报
"该资源提供了关于如何在Windows环境下编译和使用OLLVM(Obfuscated LLVM)的详细步骤,特别是针对NDK-r17b版本。OLLVM是一个LLVM的分支,专注于代码混淆技术,包括字符串混淆等。"
本文档主要介绍了OLLVM(Obfuscated LLVM)的编译和在Android NDK环境中的集成使用方法,特别适用于NDK-r17b版本。OLLVM是LLVM项目的一个扩展,旨在提供代码混淆功能,以增强程序的反逆向工程能力。其中,字符串混淆是一种常见的混淆技术,可以使得程序中的字符串难以被直接识别。
一、编译OLLVM-TTI
1. 首先,通过`git clone`命令从指定的GitHub仓库克隆OLLVM-TTI的源代码。
2. 创建一个名为`build`的目录,并进入该目录。
3. 在`CMakeLists.txt`文件中,为了使OLLVM-TTI支持Windows系统,需要添加`add_definitions(-D_WINDOWS)`这一行,以解决"Cannot open /dev/random"的问题。
4. 使用`cmake`命令配置构建环境,这里指定了生成Release版本,设置LLVM库路径后缀为64,并禁用了测试套件。
5. 使用`make -j3`命令进行编译, `-j3`表示使用3个线程加速编译过程。
二、链接NDK
1. 对NDK的`toolchains/llvm`目录进行备份,以防万一需要恢复原状。
2. 删除`NDK_PATH/toolchains/llvm/prebuilt/windows-x86_64/`目录下的所有文件。
3. 将编译好的`build`目录中的`bin`、`lib`以及`lib64`文件夹复制到上述路径,完成OLLVM的集成。
三、使用混淆功能
在Android项目的`Android.mk`文件中,需要添加以下编译选项来启用OLLVM的混淆功能:
```makefile
LOCAL_CFLAGS := -mllvm -sub -mllvm -bcf -mllvm -fla -mllvm -sobf
```
这些标志分别代表不同的混淆技术,如substring substitution(-sub)、bitcode flow(-bcf)、function-level abstraction(-fla)和structured object byte flow(-sobf)。
四、获取编译后的文件
如果不想自行编译,可以从提供的网盘链接下载编译好的文件,同样需要按照上述步骤替换NDK中的相应文件。
请注意,由于原始内容中提到了百度网盘的链接,但实际操作时,用户需自行访问并下载相关文件。在使用这些编译后的文件时,确保它们与你的NDK版本兼容,并且遵循任何相关的开源许可协议。
总结,这篇文章为开发者提供了在Windows环境下编译OLLVM并将其与NDK-r17b集成的详细步骤,以实现对Android原生代码的混淆保护。通过编译和配置,开发者可以在自己的项目中利用这些混淆技术,提高代码的安全性。
2018-01-30 上传
2019-05-21 上传
2020-04-01 上传
2021-01-25 上传
2020-07-19 上传
2013-11-13 上传
2022-05-26 上传
点击了解资源详情
fanhui1022
- 粉丝: 4
- 资源: 9
最新资源
- 基于java的手势识别系统概述
- Windows常用消息大全
- Java面试题宝典经典中的经典啊
- Learn Matlab 7.0.PDF
- iptables不错脚本
- 网络安全相关:入侵容忍系统安全
- JavaScript 之Ajax详解
- java环境的JDK配置相关
- Thinking in Java(第四版 ).pdf
- EMC SRDF 入门资料
- sql导入导出命令大全
- DEV C编译器的简单介绍
- DriverWorks开发PCI驱动流程 DriverWorks开发PCI驱动流程
- 刘伟_Hibernate与Struts2和Spring组合开发
- linux与unix shell编程指南
- 新一代视频压缩编码标准—H.264AVC