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> ,然后再编译就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

曼城四连冠,剑南春与万千球迷共同见证“荣耀时刻”

执笔 | 洪大大 编辑 | 扬 灵 5月19日&#xff0c;英超2023-2024赛季第38轮比赛全面开打&#xff0c;凭借队员的出色发挥&#xff0c;曼城最终以3-1战胜西汉姆联&#xff0c;成功捧起了英超联赛的奖杯&#xff0c;成为英格兰足球顶级联赛100多年历史上第一支成就四连冠的豪门…

事务报错没有显示回滚导致DDL阻塞引发的问题

在业务开发过程中&#xff0c;显示的开启事务并且在事务处理过程中对不同的情况进行显示的COMMIT或ROLLBACK&#xff0c;这是一个完整数据库事务处理的闭环过程。 这种在应用开发逻辑层面去handle的事务执行的结果&#xff0c;既确保了事务操作的数据完整性&#xff0c;又遵循了…

简单句语法

简单句是指包含一个主语和一个谓语的句子&#xff0c;它表达一个完整的思想。简单句是构成更复杂句子的基础。 简单句的两种基本结构 简单句可以分为两种基本结构&#xff1a; 主谓结构: 描述主语所做的动作或行为&#xff0c;也就是 “做什么”。 主系结构: 描述主语的状态…

Python2和Python3对utf8的实现方式有什么区别?

# -*- coding: utf8 -*- 是一个特殊的文件头部注释&#xff0c;通常出现在Python 2的源代码文件的开头。这个注释告诉Python解释器&#xff0c;该源文件使用的是UTF-8编码。这对于包含非ASCII字符&#xff08;例如中文字符、特殊符号等&#xff09;的Python源代码文件来说非常重…

探索未来设计新境界,PSAI插件 艺术创作神器来袭!

想象一下&#xff0c;如果有一个工具&#xff0c;能够让你的设计工作变得既简单又高效&#xff0c;那会是怎样的体验&#xff1f;现在&#xff0c;梦想成真了&#xff01; 这是一款革命性的PSAI设计插件&#xff0c;专为创意人士打造。它将彻底改变你的设计流程&#xff0c;让你…

【OpenCV】像素信息统计

介绍了计算像素均值、方差的API&#xff0c;以及统计像素信息的方法。相关API&#xff1a; minMaxLoc()mean()meanStdDev() 代码&#xff1a; #include "iostream" #include "opencv2/opencv.hpp"using namespace std; using namespace cv;int main(int…

谈谈如何建立可落地的数字化转型战略

数字化转型战略是指将数字技术集成到企业或组织的所有领域&#xff0c;从根本上改变其运营方式以及为客户提供价值的方式。它涉及采用新技术并重新思考现有业务流程&#xff0c;以提高效率、生产力和客户满意度。 成功的数字化转型战略需要采用涉及人员、流程和技术的整体方法。…

【全开源】JAVA同城搬家系统源码小程序APP源码

JAVA同城搬家系统源码 特色功能&#xff1a; 强大的数据处理能力&#xff1a;JAVA提供了丰富的数据结构和算法&#xff0c;以及强大的并发处理能力&#xff0c;使得系统能够快速地处理大量的货物信息、司机信息、订单信息等&#xff0c;满足大规模物流的需求。智能路径规划&a…

香橙派 AIPro开发板上手测评

前言 最近拿到了一个新玩具&#xff1a;香橙派 AIPro。一个只比银行卡大一点点的开发板能带给我们多少惊喜呢&#xff1f;接下来就跟我一起来体验下这块开发板的魅力。 一、硬件配置 CPU&#xff1a;配备了4核64位ARM处理器&#xff0c;其中默认预留1个给AI处理器使用 NPU&am…

SpringBoot和Apache Doris实现实时广告推荐系统

本专题旨在向读者深度解读Apache Doris技术,探讨其与SpringBoot框架结合在各类实际应用场景中的角色与作用。本专题包括十篇文章,每篇文章都概述了一个特定应用领域,如大数据分析、实时报告系统、电商数据分析等,并通过对需求的解析、解决方案的设计、实际应用示例的展示以…

【Python实战】你还在冲会员看电影电视剧吗?Python带你实现各大资源免费看!

前言 halo&#xff0c;包子们下午好 今天给大家实现一个视频播放器&#xff0c;可以看任何电影&#xff0c;电视剧&#xff0c;不要再为以后看电视看电影而烦恼&#xff0c;今天是福利文章&#xff0c;相信我绝对有用&#xff01; 开发工具 Python版本&#xff1a;3.7.8 相…

Java Lambda 会影响性能吗?

# 测试代码LamdaTest.java import java.util.*;class LamdaTest {static volatile List<Integer> integers new ArrayList<Integer>();// 普通 for 循环测试public static int forLoopInteger() {int total 0;for (int i 0; i < integers.size(); i) {total…

驱动未来:IT行业的现状与发展趋势

前言 随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。本文将探讨IT行业的现状和未来发展趋势&#xff0c;并邀请行业领袖、技术专家和…

Follow Your Pose: Pose-Guided Text-to-Video Generation using Pose-Free Videos

清华深&港科&深先进&Tencent AAAI24https://github.com/mayuelala/FollowYourPose 问题引入 本文的任务是根据文本来生成高质量的角色视频&#xff0c;并且可以通过pose来控制任务的姿势&#xff1b;当前缺少video-pose caption数据集&#xff0c;所以提出一个两…

Java的上下转型与多态

上下转型 首先&#xff0c;定义一个父类Person // 父类 class Person {public void run(){System.out.println("person 中的 run");}public void eat(){System.out.println("Person 中的 eat");}}接着定义一个继承自父类的子类Student: // 子类 class S…

拿捏数据结构- 链式二叉树

链式二叉树的概念&#xff1a; 链式二叉树解决的是非完全二叉树解决不了的问题 什么意思呢&#xff0c;简单的说就是&#xff0c;链式二叉树 可以是下面三种二叉树 但是非链式二叉树只能是前两种 链式二叉树的存储 节点结构&#xff1a;首先定义一个结构体或类来表示二叉树的节…

机器学习-7-机器学习中常用的可视化方式总结

参考通透!!监督学习和无监督学习全总结! 参考机器学习中的可视化 1 监督学习和无监督学习 监督学习和无监督学习,它们之间的主要区别在于训练数据的标签信息是否提供。 1.1 概述 一、监督学习(Supervised Learning): (1)标签信息: 监督学习使用带有标签的训练数据。这…

单元测试的实现方式

单元测试的实现方式包括&#xff1a;人工静态检查、动态执行跟踪 人工静态检查 人工静态检查是一种单元测试实现方式&#xff0c;它主要依赖开发人员的人工代码审查和静态分析工具来识别潜在的代码问题。 代码审查&#xff1a;开发人员通过仔细检查代码来发现潜在的问题。他…

不怕YOLOv10高歌猛进,我有YOLOv8稳扎稳打

YOLOv10 出来有几天时间了&#xff0c;这次我没有选择第一时间出文章解析&#xff0c;如此频繁的发布数字版本的 YOLO 着实让人头疼&#xff0c;虽然数字的更新并非旧版技术的过时&#xff0c; 但是这肯定会让很多在校同学增加很多焦虑情绪。这里还是请大家辩证看待。 v10 这次…

解密消息队列的复制魔法:RocketMQ vs Kafka

解密消息队列的复制魔法&#xff1a;RocketMQ vs Kafka 今天我们来聊聊一个在消息队列世界中至关重要的主题&#xff1a;消息复制。消息复制不仅能防止消息丢失&#xff0c;还能确保系统的高可用性。即使某个节点宕机了&#xff0c;其他节点依然可以继续工作。那么&#xff0c…