之前我写过一篇文章是关于在 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. 第6课 仿Siri机器人-语音朗读和语音识别

    一.功能设计 输入文本,单击“朗读”按钮,由手机读出该文本(如果没有输入文本,则弹出消息框警告“请输入文本):单击“识别”按钮,读入语音,从文本框中输出文字.(另,增加识别的视觉效果,如果读入的文本含 ...

  2. unity3d代码优化标准

    转载自:https://blog.csdn.net/m0_37283423/article/details/84378384 代码优化 ● 尽可能使用for来代替foreach:每次foreach会产 ...

  3. dctcp-ns2-patch

    diff -crbB ns-allinone-2.35/ns-2.35/queue/red.cc ns-2.35/queue/red.cc *** ns-allinone--- :: --- ns-- ...

  4. 图的存储结构(邻接矩阵与邻接表)及其C++实现

    一.图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合. 注: 在线性表中,元素个数可以为零, ...

  5. 玩转Windows/Linux tftp命令

    tftp很好理解, 主要用来传文件, 下面以我的操作来谈谈tftp中最重要的几个命令. 一. Windows上的sftp命令(据说Linux上也是这样, 当然此处是指非嵌入式的Linux) 步骤: a ...

  6. linux和aix内核参数检查

    安装oracle软件时需要设置操作系统级别的用户限制,后期检查可以使用如下命令,方便问题的排查工作 linux: tail -15 /etc/security/limits.conf tail -30 ...

  7. mongoDB学习之旅(一)

    首先自己去https://www.mongodb.org/官网下载哦~ 我的是64位的 安装就简单讲下吧...下载个安装包, 随便安装, 只要你找到的... cmd进去你的安装目录下/bin文件夹.. ...

  8. 移动端 html基值(转载)

    (function () { document.addEventListener('DOMContentLoaded', function () { var html = document.docum ...

  9. Cocos2d-x移植Android 常见问题处理办法

    1.函数.变量出现"could not be resolved "问题 出现此问题通常是没有找到cocos2d-x声明的头文件.在eclipse将cocos2d的头文件文件夹引入. ...

  10. UVa 1636 - Headshot(概率)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...