首页 > 其他分享 >一款功能齐全的iOS混淆工具介绍及功能详解

一款功能齐全的iOS混淆工具介绍及功能详解

时间:2024-04-15 16:47:53浏览次数:26  
标签:重命名 混淆 iOS 修改 详解 工具 识别 功能齐全 属性

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

马甲包的本质:

  1. 阶段一减低重复率 ,本人开发初期的版本和目前市面上的其它工具基本相似,主要是‘名称’全局替换这一个基本的功能

  2. 阶段二减少相似度(相同元素的正态分布),目前该工具经过优化及不断重构已经有了很大的改善,目前基本符合这方面要求,详情见以下功能介绍。事物都有两面性,功能越强大混淆耗时越长,如果你的项目很大,混淆几个小时也是有可能的,请不要见怪,后续持续优化中。

区分工具优劣

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

  1. 能否修改所有的属性、方法,及方法的所有参数名

  2. 修改成员(属性、方法)名称,能否按类区分,还是简单的全局替换

  3. 带block的参数的方法,典型的网络请求

例如:+ (BOOL)post:(NSString )url parameters:(NSDictionary )parameters success:(HttpRequestResponse)success error:(HttpRequestResponse)error;

  1. 方法名和属性名改后的名字的长短(本工具能够保证60~80%的改后名称是常见的一个单词,例如:name、title等且保证不与系统冲突,完全摒弃简单的靠大量单词库堆砌以保证命名的唯一性的做法,真正模拟人工开发)

  2. 修改布局(Frame、Masonry、SDAutoLayout)

  3. 插入的是代码还是‘垃圾’(本工具通过封装网络请求,创建自定义控件,文件之间使用MVC模式关联,彻底告别‘垃圾’,实现以假乱真)。

  4. 更别说“还有谁...”能识别宏、区分继承链等上下文关联内容,智能识别不可修改部分

例如:+ (void)init;- (void)reloadData;基本能改,做到的有几个呢?”

  1. 正常项目(或者第三方库)混淆完基本不报错(除了一些个别语法不严谨造成混淆后报错)

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

功能

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

C++

  1. [重命名属性],支持所有类型属性,识别语法,识别类型、继承

  2. [插入属性],插入属性(成员变量)并相互调用修改,自动初始化、销毁、并在其他方法中赋值修改等类似人工操作,支持‘百分比控制’

  3. [重命名方法],近似Xcode的Rename功能,识别类型、模板、重载、重写、继承等关系

  4. [修改方法],利用重载技术修改函数原型并调用修改形参

  5. [修改字符串],支持任意字符串,加密处理(硬编码->内存),原始字符串保留在注释中方便检查

    设置‘最少长度’过滤

    也可设置‘有效个数’搭配使用

  6. [重命名类],支持模板等类型

    可切换旧模式

    前缀设置

    可设置‘重命名同名文件’

Cocos2d-x

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

Swift

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

  1. 新增Swift[重命名图片],智能名词替换,自动纠正图片名和xcassets文件夹名不对应的情况

    可设置‘运行拼接名称’,用于运行时通过字符串拼接生成的图片名

    可设置‘忽略危险名称’开关

  2. [重命名属性],基本功能,不做过多描述,优势:

    类似OC[重命名属性],识别继承链及嵌套类型,支持存储和计算属性、观察器、包装器、类属性

    可设置文件名Model后缀过滤

  3. [重命名方法],基本功能改名字类似其他工具,不做过多描述,优势:识别继承链嵌套类型,支持(class、struct、enum)的静态方法和实例方法,及可选链等

  4. [修改方法],利用重载技术修改函数原型并调用修改形参

  5. [修改字符串],识别单行、多行、字符串插值、及扩展字符串,改后由加密和拆分字符组等多种方式自由组合,并保留原有字符的注释,方便检查

    设置‘最少长度’过滤

    也可设置‘有效个数’搭配使用

  6. [重命名类],类名不限制(例如:my、My),识别嵌套类型及typealias,支持class、struct,enum、protocol

    可设置‘重命名同名文件’

    可设置‘前缀’

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

图文介绍

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

 

 

 

 

 

标签:重命名,混淆,iOS,修改,详解,工具,识别,功能齐全,属性
From: https://www.cnblogs.com/sdges/p/18136332

相关文章

  • TS — 类(详解)
    在TypeScript中,类是面向对象编程的基本概念之一,它允许你使用面向对象的方式组织和管理代码。1.类的基本定义在TypeScript中,类通过class关键字来定义。classPerson{name:string;age:number;constructor(name:string,age:number){this.......
  • IOS 为Mac(catalyst)和iOS 设置不同的Settings.bundle。
    一、说明。   iOS的Settings.bundle是App的一个配置项,通过配置Settings.bundle,用户可以修改App的运行环境,显示App的授权信息等。默认情况下,新建的项目程序是没有Settings.bundle的,需要手动添加。在添加Settings.bundle后,用户可以在“设置”中找到对应的App,进而看到Settings.......
  • ODI(境外投资备案)作用、类别和申请流程详解
     中国企业越来越多地选择在境外进行投资,而国家相关部门也出台了多项政策以规范这一行为。在进行海外投资前,企业必须在政策指导下进行合法操作并办理相应手续,其中ODI(境外投资备案)是其中一种最常见的方式之一。 以下是对ODI的介绍、类别以及申请流程的详细指南:目录:ODI(境外......
  • axios 重复提交
    const{default:axios}=require("axios")constqs=require('qs')functionregsoleKey(config){const{method,url,params,data}=config;return[method,url,qs.stringify(params),qs.stringify(data)].join('&')......
  • IOS开发——调用相册崩溃闪退的异常情况处理
    软件版本:Xcode14.2测试手机:iPhone 6S Plus IOS版本:15.8.2AppStoreConnect反馈如下:Xcode打开反馈内容:问题解析:看着这么多内容,网上的说法也有很多,但首先要看下工程中有没有引入DCTZImagePickerController,如果没有,那么找到SDK中的DCTZImagePickerController.bundle文件......
  • java实现的微服务架构_详解Java 微服务架构
    java实现的微服务架构_详解Java微服务架构一、传统的整体式架构传统的整体式架构都是模块化的设计逻辑,如展示(Views)、应用程序逻辑(Controller)、业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为一个具体的应用。如图所示:系统的水平扩展如果要对系统......
  • .NET Emit 入门教程:第六部分:IL 指令:8:详解 ILGenerator 指令方法:类型转换指令
    前言:经过前面几篇的学习,我们了解到指令的大概分类,如:参数加载指令,该加载指令以 Ld开头,将参数加载到栈中,以便于后续执行操作命令。参数存储指令,其指令以St开头,将栈中的数据,存储到指定的变量中,以方便后续使用。创建实例指令,其指令以New开头,用于在运行时动态生成并初始化对......
  • 详解K8s 镜像缓存管理kube-fledged
    本文分享自华为云社区《K8s镜像缓存管理kube-fledged认知》,作者:山河已无恙。我们知道 k8s 上的容器调度需要在调度的节点行拉取当前容器的镜像,在一些特殊场景中,需要快速启动和/或扩展的应用程序。例如,由于数据量激增,执行实时数据处理的应用程序需要快速扩展。镜像比......
  • 构建动态交互式H5导航栏:滑动高亮、吸顶和锚点导航技巧详解
    功能描述产品要求在h5页面实现集锚点、吸顶及滑动高亮为一体的功能,如下图展示的一样。当页面滑动时,内容区域对应的选项卡高亮。当点击选项卡时,内容区域自动滑动到选项卡正下方。布局设计css布局为了更清晰的描述各功能实现的方式,将页面布局进行了如下的拆分。★最外层的元......
  • Mysql - 什么是三大范式(通俗详解)
    Mysql-什么是三大范式(通俗详解)高月之风关于数据的一切我都喜欢。​关注他 218人赞同了该文章​展开目录 Hello~我是高月!我将会在这篇文章中用通俗易懂的话为你简单说明什么是Mysql的三大范式。如果喜欢这篇文章,请点赞、关注......