之前我写过一篇文章是关于在 Xcode 里怎么集成配置 obfuscator-llvm
obfuscator-llvm Xcode集成配置

有些情况下我们使用 Theos 开发 tweak,需要将 obfuscator-llvm 集成到 Theos 里,这样编译出来的 dylib 也是混淆的。通过 官方的使用说明 了解,使用 obfuscator-llvm 的 clang 去编译程序,后面添加 -mllv -fla 参数就可以混淆,那这样只要在 Makefile 将 clang 的路径修改成 obfuscator-llvm 的,然后再添加参数不就行了吗?

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include $(THEOS)/makefiles/common.mk
 
THEOS_DEVICE_IP = 192.168.4.26
 
ARCHS = armv7 arm64
TARGET = iphone:latest:8.0
 
TWEAK_NAME = test_dylib
test_dylib_FILES = $(wildcard eXProtect/*.m) Tweak.xm
test_FRAMEWORKS = UIKIT
 
include $(THEOS_MAKE_PATH)/tweak.mk
 
TARGET_CC = /Users/exchen/dev/src/obfuscator4.0-build/bin/clang
TARGET_CXX = /Users/exchen/dev/src/obfuscator4.0-build/bin/clang++
TARGET_LD = /Users/exchen/dev/src/obfuscator4.0-build/bin/clang++
_THEOS_TARGET_CFLAGS += -mllvm -fla

——————————————————–
来对比看看混淆和不混淆的效果,写一个最简单的代码

 
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
void main(){
int i = 0;
if(i == 0)
{
i = 8;
}
printf("%d\n",i);
}

使用命令行编译,clang 得用 obfuscator 版

 
1
clang test.c -o test -mllvm -fla

如果提示没找到 stdio.h,使用大写的 I 添加 include 路径

 
1
clang test.c -I yourinclude -o test -mllvm -fla

或者也可以写一个 Makefile,使用 make 命令编译。

 
1
2
3
4
5
6
7
CC = /Users/exchen/dev/src/obfuscator4.0-build/bin/clang
CCFLAGS = -mllvm -fla
EXEC     = test
SRC     = test.c
 
all:
        $(CC) $(SRC) -I yourinclude -o $(EXEC) $(CCFLAGS)

用 IDA 的 F5 功能看看混淆之后效果:

原文地址:https://www.exchen.net/obfuscator-llvm-theos.html

obfuscator-llvm Theos 集成配置的更多相关文章

  1. GitLab CI持续集成配置方案(补)

    上篇文章介绍了GitLab CI的持续集成配置方法,本篇文章将主要介绍NUnit的持续集成和遇到的一些坑 1.NUnit单元测试持续集成 下载NUnit.3.4.1.msi,https://githu ...

  2. maven2 + tomcat6 + eclipse集成配置

    转载:http://wenku.baidu.com/view/d64147c676eeaeaad1f330d4.html?re=view /*maven2 + tomcat6 + eclipse集成配 ...

  3. eclipse怎么集成配置JDK和Tomcat

    eclipse怎么集成配置JDK和Tomcat_电脑软件_百度经验http://jingyan.baidu.com/album/db55b609ab6a1f4ba30a2f2c.html?picind ...

  4. 持续集成配置之Nuget

    持续集成配置之Nuget Intro 本文是基于微软的 VSTS(Visual Studio Team Service) 做实现公众类库的自动打包及发布. 之前自己的项目有通过 Github 上的 T ...

  5. 泛微云桥e-birdge之金蝶云之家集成配置手册

    最近在配置金蝶云之家与泛微ecology的打通,没有看官方文档,直接配置,一直配置不通,看了官方文档后知道了少配置参数了,转载一下,省得四处去找了. 泛微云桥e-birdge之金蝶云之家集成配置手册 ...

  6. vue与TypeScript集成配置最简教程

    https://blog.csdn.net/u014633852/article/details/73706459 https://segmentfault.com/a/119000001187808 ...

  7. Spring Boot 集成配置 HTTPS

    这是泥瓦匠的第108篇原创 文章工程: * JDK 1.8 * Maven 3.5.2 * Spring Boot 1.5.9.RELEASE ## 一.HTTPS 是什么 问:什么是HTTP? 答: ...

  8. Spring Boot Redis 集成配置(转)

    Spring Boot Redis 集成配置 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ede ...

  9. Myeclipse 2017 下载+安装+激活+集成配置【JRE 8+Tomcat 9+MySQL 5.7.29】

    Myeclipse 2017 的下载 Myeclipse 2017 下载地址:https://www.jianguoyun.com/p/DTEBo1cQ6LnsBxj9984C Myeclipse 2 ...

随机推荐

  1. JS高级程序设计第三版——变量、作用域和内存问题

    JavaScript变量: 由于JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可 ...

  2. TreeMap----的实现原理(红黑树)

    TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致 ...

  3. SQL Server ->> Natively Compiled Stored Procedures(本地编译存储过程)

    Comming soon! 参考: Natively Compiled Stored Procedures

  4. java Date中方法toLocaleString过时的替代方案

    DateFormat ddf = DateFormat.getDateInstance(); DateFormat dtf = DateFormat.getTimeInstance(); DateFo ...

  5. 证书制作 z

    一.WCF中的安全方式 说到安全就会涉及到认证,消息一致性和机密性,WCF的安全方式分为两种,即传输安全和消息安全. 传输安全和消息安全的区别:传输安全提供点对点的安全: 比如 A 提供服务,B和C直 ...

  6. ARC中用代码检测一个对象有没有释放掉

    ARC中用代码检测一个对象有没有释放掉 你试过在ARC中用代码检测对象有没有释放掉这种事情呢?即使你想过肯定也不知道怎么去实现,因为,这里会用到一个你基本上没怎么接触过的类:NSHashTable. ...

  7. windows线程时间打印

    https://blog.csdn.net/xingcen/article/details/70084029

  8. 取多个name值相同的input里面的值

    html 中是允许多个具有相同name属性的元素的,例如服务器端读取的常规做法是: string name = Request.Params["txtName"]; 得到的将是一串 ...

  9. Android MVP 简析

    原地址:https://segmentfault.com/a/1190000003927200 在Android中应用MVP模式的原因与方法的简析,写的简单易懂.

  10. oracle 函数 WMSYS.WM_CONCAT 与对应 mysql 函数GROUP_CONCAT的用法

    1.oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可. 查询语句需要配合使用group by select aa ...