当前位置: 首页 > news >正文

ANDROID OLLVM 混淆配置

安装环境

  • MacOS
  • GIT
  • CMAKE
  • NDK - 21.1.6352462

步骤

1. 编译项目

此项目版本较低 https://github.com/obfuscator-llvm/obfuscator ,我们使用
https://github.com/heroims/obfuscator 进行编译

git clone https://github.com/heroims/obfuscator.gitcd obfuscator
git checkout llvm-9.0.1mkdir build
cd buildcmake -DCMAKE_BUILD_TYPE=Release -DLLVM_CREATE_XCODE_TOOLCHAIN=ON ../obfuscator/
make -j7

2. 编译完成,复制编译文件到NDK

将OLLVM的build/bin 下的文件

clang
clang-9
clang-format
clang++

复制到 ndk目录/toolchains/llvm/prebuilt/darwin-x86_64/bin
这里要注意,如果有相同名称文件而没选择替换文件,就会出现两个文件其中一个后面带了2 3,这时要把旧文件删掉,新文件改名

进入到 lib/clang/9.0.0/include/ 将对应的头文件

stdarg.h
stddef.h
__stddef_max_align_t.h
float.h

复制到 ndk目录/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include 文件夹下。

配置CMakeLists.txt

#-mllvm -fla 控制流扁平化
#-mllvm -sub 指令替换
#-mllvm -bcf 虚假控制流程
#-mllvm -sobf 字符串加密
set(CMAKE_CXX_FLAGS "-mllvm -fla -mllvm -sub -mllvm -sobf ${CMAKE_CXX_FLAGS}")

这时就可以进行打包测试了,

其他问题

编译过程中我的报了错误

Library/Android/sdk/ndk/21.1.6352462/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/stdbool.h:28:15: fatal error: 'stdbool.h' file not found#include_next <stdbool.h>^~~~~~~~~~~1 error generated.

当我打开对应的文件夹,发现 stdbool.h 其实是存在的,为了解决只好打开 stdbool.h 文件注释掉 #include_next <stdbool.h> ,然后再编译就好了。

相关文章:

  • 【OpenCV】像素信息统计
  • redis数据类型之string,list
  • zabbix配置自动发现规则模版-snmp
  • 谢宁DOE培训适合哪些人?
  • Java面试八股之自旋是什么意思
  • 聚酯输送带的原材料
  • 在winnas中使用docker desktop遇到的问题及解决方法记录
  • 【C++】构造函数、析构函数、拷贝构造与运算符重载
  • 乡村振兴的乡村旅游新模式:挖掘乡村旅游资源,创新旅游开发方式,打造乡村旅游新品牌,助力美丽乡村建设
  • 迅睿 CMS 中开启【ionCube 扩展】的方法
  • LVM、磁盘配额
  • 免费分享一套SpringBoot+Vue企业客户关系CRM管理系统【论文+源码+SQL脚本+PPT】,帅呆了~~
  • 现在AI发展迅猛的情况下,应届生选择Java还是C++?
  • 13、设计模式之观察者模式
  • 视频汇聚平台LntonCVS视频监控系统前端错误日志记录及Debug模式详细讲解
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 78. Subsets
  • ES6--对象的扩展
  • Intervention/image 图片处理扩展包的安装和使用
  • JS笔记四:作用域、变量(函数)提升
  • linux学习笔记
  • MySQL-事务管理(基础)
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Selenium实战教程系列(二)---元素定位
  • SQLServer之索引简介
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 分享一份非常强势的Android面试题
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于web的全景—— Pannellum小试
  • 聊聊flink的TableFactory
  • 前端自动化解决方案
  • 移动端解决方案学习记录
  • 原生Ajax
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #1014 : Trie树
  • $forceUpdate()函数
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (ros//EnvironmentVariables)ros环境变量
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)UDP基本编程步骤
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)重识new
  • **CI中自动类加载的用法总结
  • ../depcomp: line 571: exec: g++: not found
  • .mysql secret在哪_MySQL如何使用索引