Windows环境下编译与集成ollvm-tti到ndk-r17b
需积分: 50 74 浏览量
更新于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
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜