All Projects → 520coding → Confuse

520coding / Confuse

iOS混淆加固差异化翻新加密工具,模拟人工手动混淆,识别上下文模拟Xcode的refactor->rename 支持继承链、类型识别、方法多参等复杂高级混淆,告别插入毫无关联的垃圾代码、弃用无脑单词随机拼接替换,尽最大可能模拟正常开发,争取做一款最好的混淆最彻底的Mac App工具。支持OC(Objc、Objective-C)、C、C++(Cocos2d-x、Cocos2dx和Lua游戏开发)、Swift、C#(Unity)混淆,可用于ios马甲包游戏SDK混淆,减少账号调查过机审上架过包过审4.3、2.3.1、2.1,持续开发中...

Projects that are alternatives of or similar to Confuse

StringFuck
Yet Another String Obfuscator for Android
Stars: ✭ 50 (-84.13%)
Mutual labels:  obfuscator
obfuscator
Obfuscate PHP source files with basic XOR encryption in userland code at runtime.
Stars: ✭ 20 (-93.65%)
Mutual labels:  obfuscator
scuti
scuti java obfuscator repository
Stars: ✭ 46 (-85.4%)
Mutual labels:  obfuscator
crack.js
Tool for javascript Encryption confusion cracking
Stars: ✭ 69 (-78.1%)
Mutual labels:  obfuscator
Bat2Exe
Windows user interface for converting your batch files into executables.
Stars: ✭ 60 (-80.95%)
Mutual labels:  obfuscator
idy
👓 An ID obfuscator for ActiveRecord
Stars: ✭ 15 (-95.24%)
Mutual labels:  obfuscator
gnirts
Obfuscate string literals in JavaScript code.
Stars: ✭ 65 (-79.37%)
Mutual labels:  obfuscator
Phpfuck
PHPFuck: ([+.^]) / Using only 7 different characters to write and execute php.
Stars: ✭ 249 (-20.95%)
Mutual labels:  obfuscator
data obfuscation
Data Obfuscation for C/C++ Code Based on Residue Number Coding (RNC)
Stars: ✭ 15 (-95.24%)
Mutual labels:  obfuscator
sus
A now actually pretty good amogus themed javascript obfuscator lol
Stars: ✭ 23 (-92.7%)
Mutual labels:  obfuscator
js-confuser
JS-Confuser is a JavaScript obfuscation tool to make your programs *impossible* to read.
Stars: ✭ 38 (-87.94%)
Mutual labels:  obfuscator
myanon
A mysqldump anonymizer
Stars: ✭ 24 (-92.38%)
Mutual labels:  obfuscator
UniObfuscator
Java obfuscator that hides code in comment tags and Unicode garbage by making use of Java's Unicode escapes.
Stars: ✭ 40 (-87.3%)
Mutual labels:  obfuscator
Alom
Alom PHP Obfuscator / Encoder can protect from your codes
Stars: ✭ 50 (-84.13%)
Mutual labels:  obfuscator
SharpLoader
🔮 [C#] Source code randomizer and compiler
Stars: ✭ 36 (-88.57%)
Mutual labels:  obfuscator
Powershell-Obfuscator
Powerful script for logical obfuscation of powershell scripts
Stars: ✭ 27 (-91.43%)
Mutual labels:  obfuscator
ConfuserEx-Mod-By-Bed
Beds Protector | Best free obfuscation out right now
Stars: ✭ 297 (-5.71%)
Mutual labels:  obfuscator
Hellscape
GIMPLE obfuscator for C, C++, Go, ... all supported GCC targets and front-ends that use GIMPLE.
Stars: ✭ 298 (-5.4%)
Mutual labels:  obfuscator
python-obfuscator
I got tired of writing good code so I made good code to make bad code
Stars: ✭ 52 (-83.49%)
Mutual labels:  obfuscator
ObFile
ObFile is a python compiler and obfuscator for Windows. It can compile your python programs into exe and you can even add your own custom icons to it. You can also obfuscate the files and compile them into exe.
Stars: ✭ 17 (-94.6%)
Mutual labels:  obfuscator

confuse(iOS马甲包混淆,上架神器)

                            1593768128247-016fe60b-8853-48fb-8b76-f9f702b83db5.png

前言

机缘巧合偶遇iOS马甲包业务,前期也使用过目前市面上其他得工具,实际效果不太理想。经过大量实践,开发出一款功能齐全的混淆工具。工具的主要功能OC、C++已封装成Mac应用,其他功能还在封装中,敬请期待。目前公测阶段: 免费

提示

为了让大家快速上手及对比混淆效果,新建了测试工程**confuse_test**,大家在实际使用过程中如果遇到问题,欢迎扩展测试工程,请在工程中请注明bug细节,有奖励。

1.2.0之前的老版本说明:
简介:不涉及语法及编译要求,但是混淆后可能出现局部漏改或者改错,请自行添加至黑名单过滤。
适用项目:RN等还未适配的混合项目。
使用条件:目前能用v1.1.3,其他过期了

自述

马甲包的本质:

  1. 阶段一减低重复率 ,本人开发初期的版本和目前市面上的其它工具基本相似,主要是‘名称’全局替换这一个基本的功能
  2. 阶段二减少相似度(相同元素的正态分布),目前该工具经过优化及不断重构已经有了很大的改善,目前基本符合这方面要求,详情见以下功能介绍。事物都有两面性,功能越强大混淆耗时越长,如果你的项目很大,混淆几个小时也是有可能的,请不要见怪,后续持续优化中。

区分工具优劣

其实识别一个工具的优劣,只需看看以下几点:

  1. 能否修改方法名的所有参数名(极少)
  2. 带block的参数的方法(极少),典型的网络请求
  • (BOOL)post:(NSString *)url parameters:(NSDictionary *)parameters success:(HttpRequestResponse)success error:(HttpRequestResponse)error;
  1. 方法名和属性名改后的名字的长短(本工具能够保证60~80%的改后名称是常见的一个单词,例如:name、title等且保证不与系统冲突,完全摒弃简单的靠大量单词库堆砌以保证命名的唯一性的做法,真正模拟人工开发)
  2. 修改布局(较少)
  3. 插入的是代码还是‘垃圾’(Apple今年不止三岁了)。
  4. 更别说“还有谁...”能识别宏、区分继承链等上下文关联内容,智能识别不可修改部分
  • (void)init;- (void)reloadData;基本能改,做到的有几个呢?”
  1. 正常项目(或者第三方库)混淆完基本不报错(除了一些个别语法不严谨造成混淆后报错)


也欢迎大家使用不同工具混淆测试工程**confuse_test**或者第三方开源库项目,对比效果。

功能

confuse是一款混淆工具,尽可能模拟人工开发,仿照Xcode部分功能,避免机核4.3、2.1、2.3.1、账号调查等。
目标:模拟人工修改一切能改的地方,这也是为什么本工具只有黑名单没有白名单的原因
详细功能如下(基本功能不做描述,详见其他工具):

已完成

以下功能均支持黑名单(二级)过滤,自由控制每个功能的混淆内容,几乎适应所有项目。

通用部分**

  1. [项目配置],只要选择项目路径,自动完成其他默认配置
    1. 全局设置‘忽略路径’,支持正则,配合黑名单使用更佳
    2. ‘xcodeproj’设置,针对多xcodeproj项目和xx.xcodeproj不在项目根目录的情况
    3. ‘Scheme’混淆,与Xcode保持一致
    4. ‘参考项目根路径’设置,读取参考项目的单词、UUID
    5. ‘敏感词’过滤
    6. 版本迭代混淆’,过审后迭代更新,沿用上一次(也可以任意选择版本)混淆记录增量混淆,保持版本连续性,模拟正常开发。优势:做到开发和混淆同步且各自独立。目前主要功能均支持更新混淆
  2. [资源替换],混淆前指定需要替换的资源文件夹,自动进行同名文件替换,方便快捷
  3. [修改图片],质量修改、大小偏移、局部像素微调
  4. [修改文件属性],如创建时间、访问时间、修改时间
  5. [修改项目],无需删除Cocoapods
    1. 可设置‘修改uuid’,彻底翻新
    2. 自定义‘修改target’名称,相关联信息同步更新
  6. 自动备份源码

Objective-C

  1. [删除注释],可‘保留空格’‘保留pragma’设置,利于测试阶段查看
  2. [重命名图片],智能名词替换,自动纠正图片名和xcassets文件夹名不对应的情况
    1. 可设置‘运行拼接名称’,用于运行时通过字符串拼接生成的图片名
    2. 可设置‘重命名关联字符串,用于修改字符串与图片名相等的情况
    3. 可设置‘忽略危险名称’开关
  3. [插入图片],自动插入图片,同时根据上下文及类型模拟人工调用,可指定插入个数
  4. [重命名属性],支持@property的所有类型,基本功能,改名字、前缀类似其他工具,不做过多描述,优势:
    1. 识别语法,识别类型、继承关系,属性名混淆和类名(包含继承链)关联,自动识别系统属性
    2. 可设置文件名Model后缀过滤
    3. 【智能名词替换】
    4. 【智能识别不可修改部分】,实现最大化混淆
  5. [插入属性],关联已有类型,智能名词替换
    1. ‘百分比控制’
    2. ‘Model后缀’开关,目的:避免Model归档或者数据转模型失败
    3. 可多次执行,指数x2递增
  6. [重命名方法],近似Xcode的Rename功能,基本功能:改名字、前缀类似其他工具,不做过多描述,优势:
    1. 语法相关,识别类型、继承关系,支持多参修改,方法名混淆和类名(包含继承链)及类型关联,自动识别系统方法
    2. 【智能名词替换】,同类同名方法不同类型(类方法、对象方法)混淆后将不一致
    3. 【智能识别不可修改部分】,不放过任何一个可以修改的内容
  7. [插入方法],插入并调用上下文关联方法,告别“垃圾代码”,优势:
    1. 根据方法的返回值类型,在分类中创建相应的方法。同时封装原方法的返回值并调用。
    2. 可多次执行,指数x2递增
  8. [修改方法],模拟人工封装调用,优势:
    1. 对原方法进行拆分调用并根据参数类型(支持继承)局部调整,详情见支持参数类型汇总表
    2. 可多次执行,指数x2递增
  9. [重命名全局变量],智能名词替换
  10. [修改全局变量],替换全局变量名、全局变量转化为全局函数、混淆字符串变量值
  11. [修改局部变量],模拟人工封装调用,变量名关联类型,优势:
    1. 局部变量值运行时保持不变,详情见支持类型汇总表
    2. 可多次执行,指数x2递增
  12. [重命名多语言],对直接或间接使用系统方法NSLocalizedStringNSLocalizedStringFromTable的多语言进行修改
  13. [修改字符串],支持任意字符串,加密处理(硬编码->内存),原始字符串保留在注释中方便检查
    1. 设置‘最少长度’过滤
    2. 也可设置‘有效个数’搭配使用
  14. [修改xib、storyboard],自动插入视图,并修改内部结构属性
  15. [修改字体],对项目中使用的字体随机微调,识别宏
  16. [修改颜色],对项目中UI控件颜色随机偏移,识别宏
  17. [UI布局偏移],支持Frame、Mansonry、SDAutoLayout常见布局微调
  18. [插入文件],生成其它文件(创建自定义控件,模拟正常开发),项目中自动调用;注意:(在项目根路径下,会生成"other_xxx_file"的文件夹,子选项Target控制导入方式,若为空,则需要手动导入,将生成的文件夹拖入工程即可;反之,自动导入)
  19. [插入文本],生成json、txt、doc、plist等文本文件,项目中自动调用;注意:(在项目根路径下,会生成"other_xxx_text"的文件夹,生成的文件会自动导入
  20. [重命名类],类名不限制(例如:my、My),可指定添加前缀,优势:
    1. 智能名词替换
    2. 可设置‘重命名同名文件’
    3. 可设置‘重命名相似字符串’,(忽略|相等|包含)三种设置
    4. 新增‘纠正非标准点语法’,针对非标准的点语法调用(方法当做属性调用)

C++

  1. [重命名属性],支持所有类型属性,【智能识别不可修改部分】
    1. 识别语法,识别类型、继承,同名属性不同类混淆后将不一致
    2. 【智能名词替换】
  2. [插入属性],插入属性(成员变量)并相互调用修改,自动初始化、销毁、并在其他方法中赋值修改等类似人工操作,支持‘百分比控制’
  3. [重命名方法],近似Xcode的Rename功能,【智能识别不可修改部分】
    1. 语法相关,识别类型、模板、重载、重写、继承等关系
    2. 【智能名词替换】
  4. [修改方法],利用重载技术修改函数原型并调用修改形参
  5. [修改字符串],支持任意字符串,加密处理(硬编码->内存),原始字符串保留在注释中方便检查
    1. 设置‘最少长度’过滤
    2. 也可设置‘有效个数’搭配使用
  6. [重命名类],支持模板等类型
    1. 可切换旧模式
    2. 前缀设置
    3. 可设置‘重命名同名文件’

Cocos2d-x

该部分功能整合至C++中,支持cocos2dx自动过滤

Swift

适配Swift5.3,SPM包管理项目暂未测试

  1. [重命名属性],基本功能改名字、前缀类似其他工具,不做过多描述,优势:
    1. 类似OC[重命名属性],识别继承链及嵌套类型,支持存储和计算属性、观察器、包装器、类属性
    2. 可设置文件名Model后缀过滤
    3. 【智能名词替换】
    4. 【智能识别不可修改部分】,实现最大化混淆

注意:目前Swift和OC混合项目,OC和Swift相互调用的部分需要手动加入黑名单,后续将优化。

名词解释

  • 智能名词替换:
    • 重命名时使用关联类型已有信息+相近语义+类型+部分旧词汇等组合,并且过滤敏感词汇,同时用户也可以自定义敏感词,弃用‘随机单词无脑组合’
    • 异类同名成员->异类异名成员,异类异名成员->异类同名成员,模拟正常开发。成员指的是方法、属性、函数
  • 智能识别不可修改部分:通过类型及继承链方式识别系统、第三方、Pod方法,并不是‘简单’的相等判断,例如:
    • 类方法:+ (void)init;原则上任何地方都能改
    • 对象方法:- (void)reloadData;不是UITableView的子类是可以改的
    • 属性:@property (readonly) NSUInteger length;如果不是NSString的子类也是可以改的

规划中

更新迭代将按照以下顺序依次进行

  1. Objective-C(95%),主要提高工具的通用性和稳定性,及强化功能
    1. 音频、视频文件使用少,后续添加
  2. C++(60%),开发中...
    1. 方法:插入
    2. 属性:修改
    3. 全局变量:修改
    4. 局部变量:修改
  3. Swift(20%),开发中...
  4. Lua(0%)的针对性太强了,暂时不开放,暂时不打算重构有需要在说吧
  5. C#(0%),本人实际项目使用不多,故排在最后,看用户需求再决定
  6. 其他功能:
    1. 快速混淆模式

图文介绍

运行APP效果图,使用前请详细阅读工具使用教程
image.png

更新日志

v4.0.1(2021.03.05)

  1. 优化[OC插入文件]
    1. 增加文件模板,xib视图模板,提高插入文件之间的差异度
    2. 文件之间通过MVC模式关联,模拟正常开发
    3. 插入的文件可自动导入项目(子选项Target控制导入方式,若为空,则需要手动导入,将生成的文件夹拖入工程即可;反之,自动导入)
  2. 优化[OC插入文本],插入文本自动导入项目
  3. 修复[OC多语言],有可能遇到文件的编码问题

查看更多历史更新记录

感谢反馈

shizu2014myhoniorimbahong

链接导航

  1. 工具使用教程
  2. 软件使用问答(Q&A)
  3. [修改方法]参数类型汇总表
  4. [修改局部变量]修改局部变量-支持类型汇总表
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].