自动修改/翻新/混淆/OC/iOS代码,自动替换类名,方法名
网上有很多关于如何混淆iOS源码的方法,但是都不够智能,生成的方法类名要么千奇百怪,要么aaaabbbxxx这种完全毫无意义的名称,要么只能修改单个文件,多个文件根本无法关联,我就想有什么方法可以像真人一样去修改源码,符合语义,不是胡编烂造的方法名,还可以自动修改相关联的文件, 还能自己自定义单词库,于是就有了这个工具。
演示视频v.youku.com/v_show/id_XNTkyMDQzMzg2OA==.html
划重点
几个效果展示
使用说明
,
都为英文逗号。使用工具运行成功后,需要自己新建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.宏定义顺序进行随机处理。
OC项目文件路径包含代码文件与资源文件
如下图
OC项目导出路径。
注意,本工具并不能帮你生成完整的OC项目,只会生成OC代码文件和复制修改项目内部的资源
直接复制,忽略的文件名,多个路径以,
逗号隔开
直接复制,忽略的文件名,不包含后缀
例:UISheetView.h 只需要输入UISheetView,多个文件用 ,
逗号隔开(注意全半角,逗号为英文逗号)
,
逗号隔开(注意全半角,逗号为英文逗号)例:不想所有以MJ开头的类或文件,则输入MJ, 多个文件和类用,
逗号隔开(注意全半角,逗号为英文逗号)
如第六条。Model,Info -->不修改以Model,Info为结尾的文件或类
深度读取,只修改类名,不修改内部属性与方法,这个优先级最低,如果之前的条件包含了本参数中的路径,则不生效
深度读取,只修改类名,不修改内部属性与方法的文件名,这个优先级最低,如果之前的条件包含了本参数中的路径 则不生效
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;
[
{"UITableView":{"class":["TableView", "TabView"], "property":["TableView", "TBView", "TView"]}},
{"UICollectionView":{"class":["CollectionView", "ColView"], "property":["ColView", "CollectView", "CTView"]}},
{"UIView":{"class":["View", "V"], "property":["View", "Vw", "Vi"]}}
]
{
"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": ""
}