之前我写过一篇文章是关于在 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. Tesseract-OCR-02-Tesseract-OCR 的安装与 环境变量配置

    Windows 下 Tesseract-OCR 的安装与 环境变量配置 本篇介绍Windows下Tesseract-OCR的安装与环境配置,然后做一个图片的文字识别测试 Windows下 Tesser ...

  2. GPRS网络条件下TCP、UDP的比较

    使用场景:使用GPRS的场合. 名词解释:NAT(Network Address Translation,网络地址转换) 中国移动的GPRS网络是使用的虚拟IP地址,需要通过移动的虚拟地址转换路由器进 ...

  3. js下拉框去掉重复的

    想用jquery代码实现这样的一个功能:有一个下拉框,当选择下拉框的时候,判断选择的值有没有被选择过,如果有则提示:代码如下: $(function(){ var authTypes=new Arra ...

  4. Linux ->> UBuntu 14.04 LTE下安装Hadoop 1.2.1(集群分布式模式)

    安装步骤: 1) JDK -- Hadoop是用Java写的,不安装Java虚拟机怎么运行Hadoop的程序: 2)创建专门用于运行和执行hadoop任务(比如map和reduce任务)的linux用 ...

  5. 使用GDI技术创建ASP.NET验证码

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  6. DOS 保存系统日志

    1.导出系统日志,以当前日期命名 @echo offset nowDate=%date%set tmp=%nowDate:~0,-3%set file=%tmp:/=-%系统日志.evtx echo ...

  7. 文本处理三剑客之 grep

    grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...

  8. My SQL 和SQL Server区别

    MySQL 与SQL Server区别 今天了解了二者区别,整理网上查阅资料,总结列举如下: MSSQL == SQL server 是sybase与微软合作时期的产物. 对于程序开发人员而言,目前使 ...

  9. maven仓库使用HTTP代理,maven仓库使用本地jar

    setting.xml <proxies> <proxy> <id>proxy</id> <active>true</active&g ...

  10. (转)C++ 自由存储区是否等价于堆?

      “free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全局/静态存储区.常量存储区”. 如果我接着问你 ...