Skip to content

iOS工程混淆器是围绕混淆iOS代码过审上架为目标构建出来的 Mac 软件。为应对苹果『4.3-代码重复条款』和『2.1条款』,混淆器通过内置苹果应用分类相关的百万词库修改工程中的文件/目录名、变量属性名和方法名、修改资源的hash、注入强关系强调用的方法代码,注入有调用关系的混淆类文件等手段达到大幅提高马甲包过审率的目的。除此之外,软件内置了一键提交审核、实时查看app的审核状态并嵌入了几个开发效率工具如本地化工具、提取Assets资源、替换AppIcon等。(另外:我们提供马甲包开发、tf签名等服务,有意请🤙 联系QQ:2480619280)

License

Notifications You must be signed in to change notification settings

lee-617/Obfuscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

lee_con_logo

iOSObfuscator - 代码混淆加固大幅提高AppStore过审率

platformversion

混淆器 iOSObfuscator 是集合了『代码混淆』、『一键打包提审』、『审核状态监控』、『内跳SDK』、『常用开发工具集(icon一键替换、ipa重签名、本地化工具、json转model、色值小工具、文本和文档翻译、Assets.car/.app/.ipa资源提取工具等)』 和 『快速开发』 六个模块构建出来的 Mac 软件。

注:

1.现在最新版本尚未开放一键提审、审核状态监控;

2.软件并非开源,如有混淆需求、马甲包开发、TF签名等需求,请联系在线详谈QQ:2480619280

联系方式和相关链接:

Mac 软件下载地址:https://github.com/lee-617/Obfuscator/releases/tag/v1.2.9

官方文档-使用说明:http://118.31.36.105/docs/index.html

因为软件并非免费开源,如有需求, 请联系我们!

你可以通过以下联系方式直接添加联系购买:

QQ: 2480619280
Telegram: Aaron617
Potato: Aaron617

🙏 项目点星进QQ社群,请添加:782314620

qq_group.jpg


软件概览:

group.png

功能组合

outline_funs.png

围绕提审 AppStore 应用市场,本软件专门针对以下需求:

  • 因为工程代码重复问题,提交 AppStore 被驳回4.3,无论如何修改再过审很困难;
  • 希望一个工程能够经混淆之后多次提交 AppStore,重复利用,节省开发时间和成本;
  • 工程写完之后,证书签名打包编辑元数据进行提审步骤繁琐耗时,希望能一键打包快速提审;
  • app 提交审核之后,希望随时能够快速查看到 app 的审核状态;
  • 马甲包开发中内置跳转功能部分审核严格,加跳转之后一般会导致会被2.3驳回或账号被调查等;

软件功能概览:

  • 项目工程翻新:工程项目文件及文件夹名修改、代码混淆、资源翻新、注入具有强调用关系的代码、删除注释和log、三十九种分类词库选择等;
  • 一键打包提审:iOS 自动化部署发布,处理所有繁琐的提审流程,做到让你的工作实现并发;
  • app 审核状态监控:一次登录,快速查看提交 app 的审核状态,并生成提交记录和汇总统计;
  • 内跳 SDK:满足马甲包跳转这一核心需求,经过加密稳定可靠的SDK。内跳 SDK已经过内部超过 300+ 个马甲包的测试,除账号问题外,安全率极高;
  • 常用开发工具集:如:icon一键替换、ipa重签名、本地化工具、json转model、色值小工具、文本和文档翻译、Assets.car/.app/.ipa资源提取工具等;
  • 助力快速开发的代码库:内置了大量分类的功能代码,一点就能直接插入。(由于功能方法需要测试,将继续扩充代码库);

混淆界面细节展示:

config_obfus.png

混淆前后展示:

sz_add_m szMCLD.png

混淆日志:

log_ins


 

更多混淆使用请参考:详细文档说明

 


开发工具部分

除了混淆功能之外为了提升开发效率,我们在混淆软件中预置了十一种常用的开发工具以供使用:

功能列表 功能描述
1.AppIcon 快速替换 一键替换工程中的AppIcon,支持本地替换和从iconfont下载替换
注:iconfont 是阿里提供的一个icon资源下载的站点,登录之后即可免费下载使用
2.工程 icon 快速替换 一键替换工程中icon,支持本地替换和从iconfont下载替换
3.更改 icon 背景颜色和尺寸 为选中的icon,一键生成背景颜色并改变其尺寸
4.ipa重签名工具 对ipa包进行重签名
5.描述文件管理器 管理你所有的描述文件:查看、删除和导出 provisioning profile
6.项目本地化工具 读取所有语言的.strings,直接添加条目进行本地化,或一键完成本地化
7.Json转Model类 复制或导入json,一键转为 OC 的 Model 类代码,支持json校验和json的格式化
8.xib文件转oc代码 一键将xib文件解析为oc纯代码视图创建的方式
9.色值小工具 RGB和Hex十六进制互转
10.字符串和文档翻译工具 为方便开发查询和本地化处理,随时进行字符串的翻译
11.一键提取Assets中的资源图片 导入任意的后缀的.car、.app、.ipa即可导出其中所有的资源文件

这些开发工具还正在维护持续开发中,若使用过程中有任何意见或发现bug请通过issue反馈给我们,我们会及时修复定时更新。
issue提交地址:https://github.com/obfuscator/issue/

以下是各个功能的详细介绍:

1. App logo 快速替换

appicon_op_1.png

现在你可以直接使用该工具一键替换 app 中的 AppIcon 图标了。

支持两种替换:

1.1 本地导入新 AppIcon 图片进行替换

选择 “本地图片快速替换”,直接导入新logo,并选择要支持生成的设备,即可一键生成满足要求的各个设备(iPhone iPad)尺寸的 AppIcon。

如果 icon 的背景透明,你还可以最后更改 AppIcon 的背景颜色。

注:因提交到 ITC 上的 logo 必须关闭 Alpha 通道,工具已自动为你选择的 icon 做了此操作。

appicon_op_2.png

1.2 从iconfont网站下载图片进行替换

如果您希望从网上找一张图片作为 AppIcon 的话,此方式则内置了 iconfont(一个免费下载各种图标资源的网站),你只需要在打开的网站列表中选择一张 icon,然后点击 appicon_op_4.png 下载按钮,在如下 icon 的详情卡片中,选择颜色和尺寸,点击 PNG 下载 即可一键下载并替换工程中的 AppIcon 了。

注:iconfont 网站是需要登录之后才能免费下载资源,请使用推荐的登录方式登录此网站

appicon_op_3.png


2. 工程 icon 快速替换

icon_op_1.png

该工具提供对整体工程中 Assets 目录下的某些或全部 icon 资源进行一键替换的便利操作。

导入工程的根目录 之后,软件将会自动导入工程目录下所有 icon 资源,如上图你将看到所有图片资源的列表。 点击你希望替换的icon,即进入 iconfont 网站(一个免费下载各种图标资源的网站),只需要在打开的网站列表中点击下载按钮即可实现 icon 的替换操作。

提示: icon 替换也是从 iconfont 网站下载,需要登录

1.若您的一个icon中含有@1x或@2x或@3x等多个尺寸的,下载替换的时候会默认生成对应的文件;

2.新 icon 资源名不会改变;

3.旧 icon 资源将会被覆盖;


3. 更改 icon 背景色和尺寸

icon2_op_1.png

该功能允许你直接对工程中某些或所有 icon 资源进行调整,主要包括 更改图片背景颜色调整尺寸

使用说明:

  1. 点击右上角进行配置,可直接设置背景色和尺寸大小,然后保存配置即可。
  2. 在 icon 的列表中点击某个图片即会对该图片按照配置的进行更改到本地。

同时,在配置的时候,支持 一键调整所有资源的背景色一键调整所有资源的尺寸

注: 调整 icon 的背景颜色,目前仅支持初始无背景色的 icon,所以若一键更改的话,部分已有背景色的 icon 不会被更改。


4. ipa 重签名工具

iOS 通常打包时,需要证书和配置文件进行签名,对于逆向的朋友有可能需要对一个 ipa 进行重签名操作,这个工具提供了界面化操作,只要将需要换签的 ipa 文件导入,选择新的证书和配置文件即可一键替换 ipa 包中的签名文件。

resign_op_1.png


5. profile 描述文件管理

这里罗列了本机 Mac 中所有由你创建和Xcode自动生成的配置文件,目前仅支持查看、删除等基本操作,后续我们会根据需求逐步完善对描述文件的管理。

profile_op_1.png


6. 翻译工具

在开发学习中,翻译工具是必备的,为了不脱离开发环境,我们内置了翻译工具支持30多国家的语言,方便多语言开发或文档一键翻译。

文本的翻译如下:

trans_op_1.png

除此之外,在右上角功能按键中,我们支持一键对导入的文档进行翻译并导出,支持导入的文件类型有:.doc.docx.txt.plist(其中plist文件已经过解析,会忽略key而只翻译其key对应的值),文档翻译区域如下:

trans_op_2.png

使用步骤:

  1. 导入已支持类型的源文件:.doc或.docx或.txt或.plist;
  2. ☑️勾选需要翻译的目标语言,可多选国家语言;
  3. 设置导出的目标路径,并开启一键翻译;

根据源文件内容量大小和勾选目标语言的数量,翻译可能需要一定的时间等待,请耐心等待完成。


7. JSON 转 Model 代码

Json 是开发中最常见到的数据结构,在 iOS 开发中,无论是MVC、MVVM、MVCS架构的工程,获取到 Json 之后都需要将其转为我们便于访问和操作的模型类 Model,为了方便校验、格式化 Json、快速的生成与 Json 一一对应的属性键和准确嵌套模型类的层级,工具箱中加入了可视化的 Json 转 OC 模型类代码的小工功能,希望能节省你的开发时间。

你现在可以:

  1. 拷贝一段 Json 数据(或从本地导入 json 文件),自动生成对应的 OC 模型类代码;

jm_local_1.png

  1. 支持 get 和 post 配置请求参数,发起请求后,直接在右边生成 Model 类代码;

jm_requ_1.png jm_requ_2.png


8. xib 文件一键生成 oc 纯代码

iOS 开发中,一般有两种编写代码的方式:通过xib布局 或 纯代码,前者本质是使用 xml 标记了视图对象的各个属性和彼此间的层级关系。对于马甲包开发中,为了应对代码重复,使用xib和纯代码布局导致的是两份不重复的代码。

xibtocode_op_1.png

如图,这个工具能够罗列工程中所有的 xib 视图布局文件,通过解析其中的对象和层级关系,准确地将可视化的 xib 转为纯代码文本,目前支持输出 frame 的布局,尚不支持输出 Autolayout 约束代码。


9. 色值小工具

这是一个简单的可视化色值转换工具:

  1. 支持 RGBHex十六进制 色值的相互转换;
  2. 支持颜色板取色获取 RGB、Hex、CMYK值。

colorT_op_1.png


10. 本地化

在提交马甲包的过程中,经常要设置多语言,为了更稳当地通过审核,开发者应该尽可能做好工程中本地化部分的处理,通过添加支持的语言选项、对每个语言文件.strings添加翻译之后的key-value,若有xib布局的界面也需要处理各个语言文件中的字符串。

现在我们尝试将工程中涉及本地化的文件:Localizable.strings InfoPlist.strings xxxxib.strings 等摘出来,集中处理这几个文件对应的多语言的本地化,如下图,导入工程根目录之后,会罗列对应工程中所有需要本地化的系统文件(其中添加语言、添加各个语言的.strings你应该首先都创建好),然后你可以选择在工作区新增、删除、修改某个条目,亦可以单独管理某个条目中某些语言下的值。

只需要点击某条目最右边的本地化按钮,即可完成所有已勾选的语言的翻译工作,你也可以直接点击一键本地化处理,这将会直接根据主语言的key-value,自动翻译为所有目标语言的key-value对。

localize_op_1.png

添加一个新的key:

localize_op_2.png

对一个条目进行所有语言的翻译处理:

localize_op_3.png


11. 一键提取Assets.car/.app/.ipa中的资源图片

assets_op_1.png

独立开发者在开发过程中经常需要各种素材资源,为此我们加入了提取 Assets.car/.app/.ipa 中资源的功能,从中可以提取出优秀的icon设计用以作为设计参考之用。

只需要下载一个格式为 .car .app .ipa 的包即可拖入左边的区域,再设置目标导出的路径,点击转换按钮即可实现资源提取。

工具箱中其余开发工具正在开发补充中,即将更新上线...

代码库:助你快速开发

9_2_insert.png

简单介绍:

为了快速开发节省编码时间,我们在软件中放置了一个编辑器(目前只包含了工程的目录树和内容区进行展示),在右侧栏中,你可以在中间内容区一键插入/预览/拷贝一些我们预置的代码,分类目前有以下几种:

  • UIKit控件:UIView、UILabel、UIImageView、UIButton、UITextView、UITableView、UICollectionView、UIScrollView、UIPickerView、UIDataPicker、UISwitch、UIPageControl、UISearchBar、UIControl、UIProgressView、UISegmentedControl、UISlider、UIImage

  • 常用的iOS开发的工具函数:

    • 数组常用操作;
    • 字符串常用操作;
    • 字典的常用操作;
    • image常用的操作;
    • 获取各种设备信息的函数;
    • 适配相关的操作;
    • 文件操作、小算法等等...

实际使用:

首先需要导入你的工程根目录,你可以在内容区和目录区看到你的工程,在右侧的功能区,可以浏览或搜索你希望获得的代码。 比如你现在需要一个字符串完全翻转的函数,可以从右侧分类树中找到字符串操作集查找列表,也可以直接搜索关键词:“翻转”或者“字符串”,也能快速定位到,然后预览方法的实现过程、拷贝代码、或直接插入在光标处。

注:

  1. 因为在工作区操作的文件和 Xcode 中对应的文件实质是同一个,所以所有工作区中的代码变更都做了和 Xcode 同步;

  2. 搜索暂没有优化模糊匹配,所以如有需要请尽量输入准确少量的关键字进行搜索;

  3. 函数已经过测试,但还是建议你实际测试结果是否准确无误;


更新日志

软件正在努力维护测试中,当前版本已修复之前版本的各种问题。

当前线上版本 - v1.2.9/b> 正式版

此版本存在以下『已知问题』,请注意:

『已知问题』出现了 ld: framework not found XXX.framework framework路径改变的问题;
『已知问题』pch文件位于工程根目录下,导致import的文件名未被修改的问题;
『已知问题』若对象创建时指向的是子类对象,在注入的时候可能导致调用到子类注入的方法而抛出异常的问题;
『已知问题』被混淆的文件中有与白名单中相同的属性名或者方法签名,比如 params,虽然白名单中这个params没有被混淆,但在工程中白名单里的对象调用这个 params 的时候(如o.params)找不到了。

『针对已知问题,若出现,请参考《常见问题 FAQ》手动进行修复』

翻译支持导入文档翻译
json转model支持发送请求一键转换
新增xib转oc代码功能
优化工具使用体验
解决本地化处理工具crash的问题

v1.2.0

新增json转model
新增翻译工具
新增提取Assets资源工具
新增系统本地化工具
新增ipa重签名工具
新增描述文件管理
新增AppIcon、icon替换
新增icon背景色和尺寸的调整
优化使用路径
解决配置文件搜索的bug
修复部分注入方法参数传入nil的bug;
修复部分注入方法参数类型不匹配的bug;
修复部分注入方法对象类型不匹配的bug;
修复注入非法、奇怪的属性名导致的bug;

v1.1.9

优化查找替换属性和方法的逻辑;
优化写入文件之前的存储逻辑;
资源文件以及Assets和AppIcon图片优化;
优化代码缩进和注入代码格式;
调整ui交互;
优化状态栏ui交互;
优化白名单引用;
修复非法混淆词、关键字、标识符引起的问题;
修复工程目录引用错误的问题;
修复程序运行假死的问题;
修复资源修改时的逻辑漏洞;
修复崩溃问题, 修复pch和info.plist文件路径引入错误的问题, 调整扩展文件名称创建逻辑;

v1.1.8

新增文件头注释替换;
新增目录名和文件名替换;
新增文件通配后缀过滤;
新增混淆日志导出;
添加快捷键;
修复plist文件�为空的bug;
修复白名单子目录和非白名单子目录�中含同名被同步修改的问题;
修复实际目录和工程中的目录引用不同步的问题;
修复通过点语法访问setter和getter但未声明属性,从而setter被替换错误的bug;
修复截取一个文件多个类时发生的错误�;

v1.1.7

添加属性限定符、修饰语义符的安全过滤;
支持软件快捷键组合;
新增四十个混淆分类词库;
新增注释和NSLog删除;
兼容LaunchScreen文件内容被替换的bug;
修复font资源加载不了的bug;
修复其他可能存在问题的bug;
修复工程中 info.plist 引入路径的错误;
变更目录路径crash;

v1.1.6

添加属性名混淆、方法名混淆;
添加系统api和常见三方sdk方法签名的安全过滤;
修复工程配置选项缓存的问题;
修复资源文件引入错误的问题;
修复注入的资源文件未被正确生成的问题;
修复main函数被替换的问题;

v1.1.5

修改log输出逻辑错误的问题;
修复自定义bundle下资源获取不到的bug;
修复api修改导致属性变化, 属性修改导致api变化的bug;
修复getter方法内部实例变量ivar没有同步被更换的bug;
修复系统方法被自定义重写之后导致被替换的bug;

v1.1.4

优化代码块、行内代码等显示效果;
新增工程目录变更白名单重置弹窗提示;
修复一个文件中多个类定义和实现,插入methods和properties的位置有误的bug;
修复了 Model 模型类中的属性在被调用时被修改的问题;
修复了setter方法被子类重写之后被修改了出错的bug;

v1.1.0

添加注入调用关系功能;
添加资源hash值更改;
修复import的分类名和实际category的文件名不一致的问题;
修复protocol中方法声明部分只替换一部分的bug;

v1.0.2

优化log输出;
新增terminal,终端打开当前工程�目录的窗口;
新增打开工程选项;
新增打开工程的Finder目录选项;
修复工程中插注入方法引用资源错误的问题;

v1.0.0

添加对OC代码的混淆功能;

About

iOS工程混淆器是围绕混淆iOS代码过审上架为目标构建出来的 Mac 软件。为应对苹果『4.3-代码重复条款』和『2.1条款』,混淆器通过内置苹果应用分类相关的百万词库修改工程中的文件/目录名、变量属性名和方法名、修改资源的hash、注入强关系强调用的方法代码,注入有调用关系的混淆类文件等手段达到大幅提高马甲包过审率的目的。除此之外,软件内置了一键提交审核、实时查看app的审核状态并嵌入了几个开发效率工具如本地化工具、提取Assets资源、替换AppIcon等。(另外:我们提供马甲包开发、tf签名等服务,有意请🤙 联系QQ:2480619280)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published