一键自动修改和翻新OC源码,解决苹果审核4.3和马甲问题

news2024/11/18 14:40:35

ipaguard

自动修改/翻新/混淆/OC/iOS代码,自动替换类名,方法名

由来

网上有很多关于如何混淆iOS源码的方法,但是都不够智能,生成的方法类名要么千奇百怪,要么aaaabbbxxx这种完全毫无意义的名称,要么只能修改单个文件,多个文件根本无法关联,我就想有什么方法可以像真人一样去修改源码,符合语义,不是胡编烂造的方法名,还可以自动修改相关联的文件, 还能自己自定义单词库,于是就有了这个工具。

演示视频​v.youku.com/v_show/id_XNTkyMDQzMzg2OA==.html

划重点

1. 该工具可以让你一键翻新代码,但是不是生成完整的xcode项目,需要你自己新建一个xcode项目,然后把翻新的文件拖入到新的项目中。

2. 该工具只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。

3.目前免费使用,免费使用,免费使用,重要的事情说三遍

几个效果展示

使用说明

下载项目,官网下载:IpaGuard官网--IOS 应用程序ipa文件混淆加密保护工具

注意:

说明中提到的路径均为绝对路径,提到的逗号,都为英文逗号。使用工具运行成功后,需要自己新建OC项目再将修改后的代码与资源文件拖入新建的工程。

功能说明:

1.自动修改Object-C类名,方法名。
2.自动添加类名前缀,后缀。
3.自动修改分类,自定义是否修改分类。
4.自动过滤系统方法与自定义方法。
5.混淆图片资源,自动添加md5值。
6.可自定义混淆字库。
7.自定义修改范围,提供多种规则选择,让修改更便捷。
8.自动添加介词,使生成的名称更符合语义。
9.自定义后缀规则。
10.自动添加源码注释。
11.支持配置文件设置,对程序员更友好。
12.自定义想要过滤的方法,直接贴上方法名,系统自动解析。
13.支持修改属性全局开关
14.支持修改方法全局开关
15.支持属性声明乱序
16.支持方法声明乱序
17.支持同文件内部多个类声明是乱序(指:@class xxxx)
18.支持头文件import乱序
19.支持静态常量定义乱序
20.支持interface类声明乱序
21.支持extentsion扩展声明乱序
22.支持implementation扩展声明乱序
23.支持代理声明乱序
24.支持block声明乱序
25.支持遵循代理乱序

未来可能添加的功能:

1.随机生成全局属性前缀,例如将_下划线修改为self.,或者将self.修改为下划线。
5.枚举顺序进行随机处理。
7.静态常量定义顺序进行随机处理。
8.宏定义顺序进行随机处理。

说明文档会不定期更新,如遇到问题先检查是否依照说明文档的定义进行配置。

1. 源文件路径/import_path(必选)

OC项目文件路径包含代码文件与资源文件

如下图

2. 导出路径/export_path(必选)

OC项目导出路径。

注意,本工具并不能帮你生成完整的OC项目,只会生成OC代码文件和复制修改项目内部的资源

3. 直接复制的路径/copy_only_pathes(可选)

直接复制,忽略的文件名,多个路径以,逗号隔开

4. 直接复制的文件名(不包含后缀)/copy_only_names(可选)

直接复制,忽略的文件名,不包含后缀

例:UISheetView.h 只需要输入UISheetView,多个文件用 , 逗号隔开(注意全半角,逗号为英文逗号)

5. 不进行修改的文件或文件夹/no_change_pathes(可选)

深度读取,但是不会进行更改,如果引入了其他修改了的类,会相应的修改

深度读取(说明):会读取文件内部的类比与项目内其他类进行关联

例:xxxx/Classes/Models 不想修改,则输入这个文件夹的绝对路径, 如只输入Models,则所有包含名为Models的文件或文件夹都会标记为只读取不修改,多个文件和类用, 逗号隔开(注意全半角,逗号为英文逗号)

6. 不修改的文件或类的前缀名(区分大小写)/no_change_class_prefix_names(可选)

例:不想所有以MJ开头的类或文件,则输入MJ, 多个文件和类用, 逗号隔开(注意全半角,逗号为英文逗号)

7. 不修改的文件后缀名(区分大小写)/no_change_class_prefix_names (可选)

如第六条。Model,Info -->不修改以Model,Info为结尾的文件或类

8. 只修改类名的文件名或类名/only_change_clsname_names (可选)

深度读取,只修改类名,不修改内部属性与方法,这个优先级最低,如果之前的条件包含了本参数中的路径,则不生效

9. 只修改类名的文件夹/文件路径/only_change_clsname_pathes (可选)

深度读取,只修改类名,不修改内部属性与方法的文件名,这个优先级最低,如果之前的条件包含了本参数中的路径 则不生效

10. 动词词库路径/verbwords_path (可选)

提供单词数组json文件路径\n修改的命名逻辑为ABAB型,A为动词,B为名词,

例:getMessage

11. 名词词库路径/nounwords_path (可选)

提供单词数组json文件路径\n修改的命名逻辑为ABAB型,A为动词,B为名词,

例:getMessage

12. 类名前缀/class_prefix (可选)

给每个类添加的前缀

例:MJExtension--> MJ 为前缀, SD_ScrollView--> SD_ 为前缀

13. 属性名前缀/property_prefix (可选)

给每个属性添加的前缀

例:property(nonatomic, strong) UIView MJView --> MJ 为前缀, property(nonatomic, strong) UIView SD_View --> SD_ 为前缀

14. 需要过滤的方法路径/filter_methods_path (可选)

把你需要过滤的方法写入一个文本文件,然后将该文本路径填入到此项输入框

注意事项:

1.确保填入的每个方法以';'分号结尾

2.每一行只有一个方法

格式示例:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
- (instancetype)initWithName:(NSString *)name content:(NSString *)content isPublic:(BOOL)isPublic;

其他说明:本工具已经过滤了大多数常用系统方法,大部分情况下不需要配置此项。

15. 类名和属性名后缀路径/property_subfix_path (可选)

给每个属性添加的后缀,需要一个配置json文件路径

json格式:

[
{"UITableView":{"class":["TableView", "TabView"], "property":["TableView", "TBView", "TView"]}},
{"UICollectionView":{"class":["CollectionView", "ColView"], "property":["ColView", "CollectView", "CTView"]}},
{"UIView":{"class":["View", "V"], "property":["View", "Vw", "Vi"]}}
]

注意:key一定要与上面一直,否则系统无法读取,工具会遍历数组,为对应的类匹配后缀,在配置改文件时,包含相同字符串的类,需要将类名更长的类放在前面,不然匹配结果会达不到预期。

例如:UITableView与UIView,配置时需要将UITableView放在View之前,如上面的例子。

16. 为方法名添加介词/add_preposition (可选)

工具内置了所有介词,可选择性添加

例:getMessage添加介词后---> getAMessage or getTheMessage

具体介词完全随机添加

17. 修改分类/change_category (可选)

工具会自动识别分类,可选择是否修改

18. 将原代码行作为注释写入/add_original_comments (可选)

由于本工具不保证修改后百分百不报错,将修改过原属性声明和方法名作为注释写入,方便在重建工程后报错与原工程进行对照,建议设置

19. 修改方法内部局部变量名/change_local_property (可选)

定义在方法内部的局部变量,可选择是否修改

20. 综合配置路径 (可选)

json配置文件路径,内部必须为字典,key为说明条目标题后面的英文

请注意:配置文件优先级高于输入框输入的规则,配置文件存在时, 输入框输入的配置不生效

例:(可直接复制修改)

{
"import_path": "",

"export_path": "",

"copy_only_pathes": "",

"copy_only_names": "",

"no_change_pathes": "",

"no_change_class_subfix_names": "",

"no_change_class_prefix_names": "",

"only_change_clsname_pathes": "",

"only_change_clsname_names": "",

"change_category": true,

"add_original_comments": true,

"class_prefix": "",

"property_prefix": "",

"add_preposition": true,

"change_local_property": true,

"verbwords_path": "",

"nounwords_path": "",

"filter_methods_path": "",

"property_subfix_path": ""

}

20. 关于bug

虽然工具本身经过了完整的商业项目的考验,但由于每个人的代码风格不一样,工具不可避免会出现解析不了的情况,开发者建议过滤C语言的文件,与第三方库,减少出错的可能性,还是无法运行成功,你可以发isssue至客服邮箱或根据报错Log自行删减项目文件,其中利弊,自行斟酌。

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

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

相关文章

全网最新最全的自动化测试:python+pytest接口自动化-接口测试基础

接口定义 一般我们所说的接口即API,那什么又是API呢,百度给的定义如下: API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口)&#xff0c…

TEMU跨境平台与亚马逊检测认证几大认证您知道多少?

TEMU跨境平台与亚马逊检测认证几大认证您知道多少? TEMU跨境平台与亚马逊对于做外贸的人应该都不陌生,可是你是否知道产品入驻TEMU跨境平台与亚马逊需要办理的13大认证呢?如果你不知道,请认真阅读正面的内容,因为它关系着你的产品能否在TEMU跨境平台与亚马逊顺利上…

零基础学编程,中文编程工具构件之弹出菜单构件教程,中文编程工具下载

一、前言: 零基础自学编程,中文编程工具下载,中文编程工具构件之扩展系统菜单构件教程 编程系统化教程链接https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 给大家分享一款中文编程工具,零基础…

二进制动态插桩工具intel PIN的学习笔记

前言 最近两周为了课程汇报学习了intel PIN这个动态插桩(dynamic instrument)工具,总体的学习感受还是挺累的。一方面,这个方向比较小众,相关的二手资料比较少,能参考的也就只有官方手册这种一手资料&…

12.4c++中的继承

#include <iostream>using namespace std;class Sofa { private:string way;int *score; public:Sofa(){}//有参构造函数Sofa(string way,int score):way(way),score(new int(score)){cout << "Sofa::有参构造函数" << endl;}//拷贝构造函数Sofa(c…

从声纹模型到语音合成:音频处理 AI 技术前沿 | 开源专题 No.45

facebookresearch/audiocraft Stars: 16.6k License: MIT AudioCraft 是一个用于音频生成的 PyTorch 库。它包含了两个最先进的 AI 生成模型 (AudioGen 和 MusicGen) 的推理和训练代码&#xff0c;可以产生高质量音频。该项目还提供了其他功能&#xff1a; MusicGen&#xf…

12月4日作业

完成沙发床的多继承 #include <iostream>using namespace std;class Bed { private:string sleeping; public:double *price; public:Bed(){cout << "Bed::无参构造函数" << endl;}Bed(string sleeping,int price):sleeping(sleeping),price(new …

前缀和例题:子矩阵的和AcWing796-Java版

//前缀和模板提,在读入数据的时候就可以先算好前缀和的大小 //计算前缀的时候用:g[i][j] g[i][j-1] g[i-1][j] - g[i-1][j-1] Integer.parseInt(init[j-1]); //计算结果的时候用:g[x2][y2] - g[x1 - 1][y2]- g[x2][y1-1] g[x1 -1][y1 - 1] "\n" //一些重复加的地…

SAP系统邮件功能配置 SCOT <转载>

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/71594578 相信SAP顾问或多或少都会接到用户要求SAP系统能够定时发送邮件的功能&#xff0c;定时将用户需要的信息已邮件的方式发送给固定的人员。 下面就来讲一下SAP发送邮件应该如何配置&#xff1a; 1、RZ10做配置&#…

掌握排序的艺术:Python中sorted()函数全面解析!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 1. 引言 排序在编程中是一个基本且重要的操作&#xff0c;而 Python 中的 sorted() 函数则为我们提供了强大的排序能力。在本篇文章中&#xff0c;我们将深入研究不同排序算法、sorted() 函数的灵活性&#xff…

基于腾讯云手把手教你搭建网站

目录 前言前期准备工作具体搭建网站番外篇&#xff1a;网站开发及优化结束语 前言 在当今数字化时代浪潮之下&#xff0c;作为开发者拥有一个属于自己的网站是非常有必要的&#xff0c;也是展示个人形象、打造影响力和给别人提供服务的重要途径。网站不仅可以作为打造自己影响…

Rpg游戏地形生成

rpg游戏中的地形一般使用高度图的形式来绘制。写了几个随机生成高度图的算法。 最常见的是基于分形算法生成高度图&#xff0c;网上有很多资料&#xff0c;这里不再介绍。 一种生成断层效果高度图的算法 //!生成断层效果的高度图 void TerrainData::FillFaultSurface(float …

12.4作业

#include <iostream>using namespace std;class Sofa { private:string sit;int *nub; public:Sofa(){cout << "Sofa::无参构造函数" << endl;}Sofa(string sit,int nub):sit(sit),nub(new int(nub)){cout << "Sofa::有参构造函数"…

【刷题日志】牛客 HJ73 计算日期到天数转换

计算日期到天数转换 阅读题目解题方案 及 解题思路方法一 . 手撕日期类方法二 . 分别直接算出平年和闰年每个月的时间 并对应下标存入数组中&#xff0c;判断该年份为平年还是闰年&#xff0c;再 for循环依次求和优化&#xff1a;也不用分别算出平年和闰年的每个月的时间&#…

IntelliJ IDEA设置中文界面

1.下载中文插件 2. 点击重启IDE 3.问题就解决啦&#xff01;

目标检测中的损失函数:IOU_Loss、GIOU_Loss、DIOU_Loss和CIOU_Loss

文章目录 前言1.IOU_Loss&#xff08;Intersection over Union Loss&#xff09;2.GIOU_Loss&#xff08;Generalized Intersection over Union Loss&#xff09;3.DIOU_Loss&#xff08;Distance Intersection over Union Loss&#xff09;4.CIOU_Loss&#xff08;Complete In…

2023年5月电子学会青少年软件编程 Python编程等级考试一级真题解析(选择题)

2023年5月Python编程等级考试一级真题解析 选择题(共25题,每题2分,共50分) 1、可以对Python代码进行多行注释的是 A、# B、“ ” C、‘’‘ ’‘’ D、‘ ’ 答案:C 考点分析:考查python中注释,python中注释分为单行注释和多行注释,单行注释使用井号(#),多…

表达式二叉树的中序遍历:2017年408算法题

算法思想 表达式二叉树的中序遍历即中缀表达式除了根节点和叶结点&#xff0c;遍历到其他结点时在遍历其左子树前加上左括号&#xff0c;在遍历完右子树后加上右括号 算法实现 //中序遍历&#xff0c;deep从1开始&#xff0c;即根节点的深度为1 void midOrder(BTree T,int …

十五、机器学习进阶知识:K-Means聚类算法

文章目录 1、聚类概述2、K-Means聚类算法原理3、K-Means聚类实现3.1 基于SKlearn实现K-Means聚类3.2 自编写方式实现K-Means聚类 4、算法不足与解决思路4.1 存在的问题4.2 常见K值确定方法4.3 算法评估优化思路 1、聚类概述 聚类&#xff08;Clustering&#xff09;是指将不同…

鸿宇多用户商城user.php RCE漏洞复现

0x01 产品简介 鸿宇多用户商城是一款支持各行业的多商家入驻型电商平台系统,商家版APP,微信商城,小程序及各种主流营销模块应有尽有,是一个功能强大的电子商务平台,旨在为企业和个人提供全面的在线购物解决方案。 0x02 漏洞概述 鸿宇多用户商城 user.php 存在任意命令执行漏洞…