Git Product home page Git Product logo

applohah / confuse Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 520coding/confuse

0.0 0.0 0.0 735.15 MB

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

Objective-C 94.99% Ruby 0.08% C++ 3.80% Objective-C++ 1.12%

confuse's Introduction

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

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

警告⚠️

  1. 建议暂时先不用([插入文件]、[插入文本]),该功能优化中,目标逼近正常开发,让插入的垃圾不在是垃圾,告别所谓的垃圾
  2. [重命名多语言]某些情况下会导致项目编译出错,建议先不使用

前言

因公司发展需要,本人19年中旬开始从事iOS马甲包业务,前期也使用过目前市面上其他得工具,实际效果不太理想。经过大量实践,开发出一款功能齐全的混淆工具,支持OC、Lua、C++。工具的主要功能OC已封装成Mac应用,其他功能还在封装中,敬请期待。目前公测阶段: 免费

提示

为了提高通用性,近期不断重构(>=v1.2.0)之前老版本的功能,为此新建测试工程confuse_test,大家在实际使用过程中如果遇到问题,欢迎扩展测试工程,请在工程中请注明bug细节。

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

自述

其实识别一个工具的优劣,只需看看它能否修改方法名的所有参数名(极少)、带block的参数的方法(极少),偏移元素(较少)。更别说“还有谁...”能识别宏、区分继承链等上下文关联内容。也欢迎大家使用不同工具混淆测试工程confuse_test,对比效果。
马甲包的本质:

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

功能

confuse是一款混淆工具,尽可能模拟人工混淆,避免机核4.3、2.1、2.3.1、账号调查等。
目标:模拟人工修改一切能改的地方,这也是为什么本工具只有黑名单没有白名单的原因
详细功能如下:

已完成

  1. [资源替换],混淆前指定需要替换的资源文件夹,自动进行同名文件替换,方便快捷
  2. [删除注释],可‘保留空格’‘保留pragma’设置,利于测试阶段查看
  3. [修改图片],质量修改、大小偏移、局部像素微调
  4. [重命名图片],智能名词替换,自动纠正图片名和xcassets文件夹名不对应的情况
    1. 可设置‘运行拼接名称’,用于运行时通过字符串拼接生成的图片名
    2. 可设置‘重命名关联字符串,用于修改字符串与图片名相等的情况
    3. 可设置‘忽略危险名称’开关
  5. [重命名属性],支持@property的所有类型,基本功能,改名字、前缀类似其他工具,不做过多描述,优势:
    1. 识别语法,识别类型、继承关系,属性名混淆和类名(包含继承链)关联,同名属性不同类混淆后将不一致,自动识别系统属性
    2. 可设置文件名Model后缀过滤
    3. 智能名词替换
  6. [插入属性],关联已有类型,智能名词替换
    1. ‘百分比控制’
    2. ‘Model后缀’开关,目的:避免Model归档或者数据转模型失败
    3. 可多次执行,指数x2递增
  7. [重命名方法],近似Xcode的Rename功能,基本功能:改名字、前缀类似其他工具,不做过多描述,优势:
    1. 语法相关,识别类型、继承关系,支持多参修改,方法名混淆和类名(包含继承链)及类型关联,同名方法不同类、同类同名方法不同类型(类方法、对象方法)混淆后将不一致
    2. 智能名词替换
    3. 智能避开系统、第三方、Pod方法,并不是‘傻瓜式’的相等判断
  8. [插入方法],插入并调用上下文关联方法,告别“垃圾代码”,优势:
    1. 根据方法的返回值类型,在分类中创建相应的方法。同时封装原方法的返回值并调用。
    2. 可多次执行,指数x2递增
  9. [修改方法],模拟人工封装调用,优势:
    1. 对原方法进行拆分调用并根据参数类型(支持继承)局部调整,详情见支持参数类型汇总表
    2. 可多次执行,指数x2递增
  10. [重命名全局变量],智能名词替换
  11. [修改全局变量],替换全局变量名、全局变量转化为全局函数、混淆字符串变量值
  12. [修改局部变量],模拟人工封装调用,变量名关联类型,优势:
    1. 局部变量值运行时保持不变,详情见支持类型汇总表
    2. 可多次执行,指数x2递增
  13. [修改字符串],加密处理(硬编码->Byte数组),自定义设置‘最少长度’、‘有效个数’
  14. [修改xib、storyboard],插入垃圾视图,并修改内部结构属性
  15. [修改字体],对项目中使用的字体随机微调,识别宏
  16. [修改颜色],对项目中UI控件颜色随机偏移,识别宏
  17. [UI布局偏移],支持Frame,Mansonry以及SDAutoLayout
  18. 优化中...[插入文件],插入ViewController类文件,相互调用及源文件调用,支持自动、收入导入项目
  19. [插入图片],类中自动初始化、调用及销毁
  20. 优化中...[插入文本],文件(json、txt、doc)
  21. [重命名类],类名不限制(例如:my、My),可指定添加前缀,优势:
    1. 智能名词替换
    2. 可设置‘重命名同名文件’
    3. 可设置‘重命名相似字符串’,(忽略|相等|包含)三种设置
    4. 新增‘纠正非标准点语法’,针对非标准的点语法调用(方法当做属性调用)
  22. [重命名多语言],支持汉字,所有字符串将被修改
  23. [修改文件属性],如创建时间、访问时间、修改时间
  24. [修改项目],基本配置信息,例如:版本号、SDK的BundleID

以上所有功能均支持黑名单过滤,对指定的内容进行屏蔽,忽略混淆。

名词解释

  • 智能名词替换:重命名时使用关联类型已有信息+相近语义+类型+部分旧词汇等组合,弃用‘随机单词无脑组合’

规划中

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

  1. Objective-C,重构的目的是为了提高工具的通用性和稳定性,及强化功能
    1. 重构[插入图片]
    2. 优化插入垃圾,目标逼近正常开发,让插入的垃圾不在是垃圾,告别所谓的垃圾
      • [插入文件]【已完成30%】,提取项目原有信息,进行合理组合并创建类,然后在源文件调用,支持自动、收入导入项目
      • [插入文本],文件(json、txt、doc),尽可能模拟正常项目资源配置
    3. 重构《多语言》
    4. 移除混淆前需要创建目录Confuse、Discard要求(这部分是老代码,需要些时间适配【已完成80%】,请见谅)
  2. C++,现有功能还不具备通用性,暂时不开放,准备重构中...
    1. 字符串加密混淆
    2. 方法,重命名,【完成40%】,暂停,准备把OC部分做全)、插入、修改
    3. 属性,重命名、修改、插入
  3. Cocos2d-x,现有功能不具备通用性,准备整合至C++中
  4. Lua的针对性太强了,暂时不开放,暂时不打算重构有需要在说吧
  5. Swift【已完成5%】,本人实际项目使用不多,故排在最后,看用户需求再决定

图文介绍

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

更新日志

v2.6.2(2020.11.30)

  1. 优化对Swift、OC混合编程的兼容,Swift部分目前自动当做黑名单处理,Swift部分混淆后续补上,敬请期待
  2. 优化[重命名类]
    a. 新增‘旧版本’,考虑到OC类名本身具有唯一性,保留旧版本功能,因为混淆速度极快,取消勾选使用新版。旧版类名要求1.首字不能是小写 2.类名长度>=4
    b. 新增‘纠正非标准点语法’,针对非标准的点语法调用(方法当做属性调用),例如:MyClass.class -> [MyClass class]
    c. 修复Pod里面的Swift类型被修改的bug
  3. 新增缓存机制‘编译缓存’、‘黑名单缓存’,缩短测试时间
  4. 更新[删除注释],保留‘旧版本’混淆极快,缺点小概率误删,取消勾选使用新版,新增‘保留空格’‘保留pragma’设置,利于测试阶段查看
  5. 新增[宏展开]的黑名单设置,以及缓存机制缩短测试时间
  6. APP的界面优化调整

查看更多历史更新记录

感谢反馈

shizu2014myhoniorimbahong

链接导航

  1. 工具使用教程
  2. 软件使用问答(Q&A)
  3. [修改方法]参数类型汇总表
  4. [修改局部变量]修改局部变量-支持类型汇总表

confuse's People

Contributors

yanjinsheng avatar takemoto-xie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.