iis服务器助手广告
返回顶部
首页 > 资讯 > 移动开发 >iOS完美脱壳
  • 687
分享到

iOS完美脱壳

ios 2023-09-06 14:09:53 687人浏览 安东尼
摘要

iOS端IPA脱壳 背景:在软件安全领域中,我们与黑产做对抗时,不是被动防守,自己也可以做攻击方,来验证我方软件是否安全。 关于ioS端逆向分析如:虚拟定位、虚拟设备、修改内存等,始终离不开脱壳。脱壳

iOS端IPA脱壳

背景:在软件安全领域中,我们与黑产做对抗时,不是被动防守,自己也可以做攻击方,来验证我方软件是否安全。

关于ioS端逆向分析如:虚拟定位、虚拟设备、修改内存等,始终离不开脱壳。脱壳是第一步,也是必要的一步,下面就说下如何脱壳。

一、什么是加壳

应用在上传App Store时,App Store会对应用进行加壳操作,就是利用加密算法对可执行文件的编码进行改变。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法进行Class-Dump。

这里就要区分个人、企业不同账号打的安装包。个人账号打的包只能上传到App Store由苹果进行加签认证,在发布到App Store供用户下载。企业账号打的包是由企业密钥加签认证,不能发布到App Store。

有兴趣的可以解压一下IPA,如果解压出来里面没有embedded.mobileprovision文件文件说明是在App Store下载的,如果有embedded.mobileprovision文件文件说明是企业账号打的包。
如图:

在这里插入图片描述

这是因为苹果在加壳的过程中,不会产生embedded.mobileprovision文件。只有非苹果加壳的IPA才会产生embedded.mobileprovision文件。此文件的作用就是我们安装完成后,需要在设置-通用-设备管理(描述文件)里面认证,在App Store下载的则不要要认证。

在这里插入图片描述

二、什么是脱壳

在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这个过程就是脱壳。

脱壳出来的ipa文件是不可以安装的,报错:DeviceNoSupportedByThinning。

这个时候就需要二次签名打包才能安装;或者使用三方调试工具(MonkeyDev、yololib等)间接加载程序,达到使用效果。

脱完壳可以干什么?

我们知道同一包名(Bundle ID)在手机上只能安装一个,这样苹果手机就不能像Android那样做到多开。但是在IPA脱完壳后可以修改包名(Bundle ID),此时就可以安装相同的App了。

逆向分析App,向App注入自己的Framework,动态调试。

三、如何脱壳

摘掉壳程序,将加密的可执行文件还原出来
脱壳有两种方法:硬脱壳、动态脱壳

在这里插入图片描述
硬脱壳:需要知道Apple的私钥解密,要破解苹果加密算法难度还是很大的。

动态脱壳:我们知道在程序启动时系统会将下载的IPA加载到内存,再由壳程序对可执行程序解密,系统才能识别并执行。此时可以通过内存Dump将解密后的可执行程序保存下来。

四、动态脱壳

网上存在很多中脱壳方式,包括Clutchdumpdecryptedfrida-ios-dump等,这里只对frida-ios-dump方式介绍,亲历测试完美脱壳微信,美团等。

此外学会frida方便其他操作,内存修改、动态库注入、动态调试等。

感兴趣的同学可以尝试下其他方式。

五、frida-ios-dump

源码地址:GitHub

下载源码,目录介绍:

dump.py主要功能文件,可查询手机安装软件;程序脱壳;

requirements.txt需要的所有python库。

5.1 安装Frida

PC端配置Frida环境

首先保证已安装python3、pip3,然后执行

sudo pip3 install frida-tools

如果在安装过程中出现错误或异常,可升级下pip

Python3 -m pip install --upgrade pip 

越狱手机配置Frida环境

5.1.1 如何越狱

自行下载爱思助手,一键越狱,简单方便。

5.1.2 安装iproxy

使用Mac brew工具

brew install iproxy

然后运行iproxy命令,出现help则说明安装成功。

在这里插入图片描述

5.1.3 安装openssh

打开手机上的cydia,搜索OpenSSH,点击安装

在这里插入图片描述

验证:

确保手机与电脑在同一局域网内ssh root@内网IP密码:alpine

在这里插入图片描述

5.1.4. 安装frida

打开手机上的cydia,添加软件源,地址: https://build.frida.re
然后搜索:Frida,点击安装

在这里插入图片描述

验证

frida-ps -U

在这里插入图片描述

5.2 安装其他配置

进入刚下载的frida-ios-dump文件目录,执行:

pip3 install -r requirements.txt --upgrade

安装完成,验证

python3 dump.py -l

在这里插入图片描述

5.3 dump前准备

打开dump.py,并且修改里面的内容找到里面的这4行,分别输入你自己的用户名,密码,内网IP,端口。

确保手机与电脑在同一局域网内User = 'root'PassWord = 'alpine'Host = '内网IP'Port = 22KeyFileName = None

启动要脱壳的APP,保证APP此时运行在内存。

5.4 脱壳

python3 dump.py 应用名或bundle id

在这里插入图片描述

等待1~2分钟(与IPA大小有关),成功以后会在dump.py文件所在目录生成一个ipa包。

使用otool工具查看,此时加壳状态为0

otool 文件 -l | grep crypt

在这里插入图片描述

恭喜你,脱壳完成!!!

六、后续

脱壳只是逆向中的前提,我们首先拿到脱壳的IPA,然后再通过静态或动态注入的方式对程序进行逆向分析、HOOK操作。

后面文章对脱壳后的ipa程序进行重打包。
《iOS重打包之MonkeyDev》
《iOS重打包之脚本替换》

来源地址:https://blog.csdn.net/weixin_38367103/article/details/126590675

--结束END--

本文标题: iOS完美脱壳

本文链接: https://www.lsjlt.com/news/397171.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS完美脱壳
    iOS端IPA脱壳 背景:在软件安全领域中,我们与黑产做对抗时,不是被动防守,自己也可以做攻击方,来验证我方软件是否安全。 关于iOS端逆向分析如:虚拟定位、虚拟设备、修改内存等,始终离不开脱壳。脱壳...
    99+
    2023-09-06
    ios
  • 脱壳——UPX脱壳原理(脱壳helloworld)
    UPX是一种常用的可执行文件压缩工具,它可以将可执行文件压缩成较小的体积,从而减少文件的大小。脱壳是指将经过UPX压缩的可执行文件恢...
    99+
    2023-09-28
    UPX
  • [iOS]砸壳
    进行砸壳,需要有台越狱手机。如何越狱,参考前一篇“[iOS]手机越狱”。 没有越狱设备的话,可以去某宝寻求帮助,有帮忙砸壳。 1. 添加源 打开Cydia软件,软件源中选择编辑,添加源https://cydia.iphonecake.com...
    99+
    2023-09-03
    ios 逆向开发
  • Android脱壳ROM(FkptRomV2.0)
    先看效果 修复前: 修复后: 免责声明: fkpt 工具仅面向合法授权的企业安全建设,以及安全研究,在使用本工具进行检测时您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。 用户在使用本工具时,应遵守所有适用的法律法规和规定,...
    99+
    2023-08-22
    Android脱壳 Android 脱壳 ROM
  • Android apk逆向脱壳
    步骤一:下载逆向相关软件和apk Android模拟器:雷电模拟器,我这Android系统是7.1.2【推荐使用模拟器,已经有Root权限】 下载安装Xposed框架 下载安装‘反射大师’apk jadx反编译 配置Xposed    显...
    99+
    2023-08-31
    android android studio
  • 19、iOS砸壳概述
    一、砸壳概述砸壳: 软件脱壳,顾名思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密)砸壳原理 提交给AppStore发布的App,都是经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核通过的,也可以管理软件授权.经过App...
    99+
    2023-09-01
    砸壳概述 iOS砸壳手段
  • iOS-砸壳篇(两种砸壳方式)
    CrackerXI砸壳呢,当时你要是使用 frida-ios-dump 也是可以的; https://github.com/AloneMonkey/frida-ios-dump frida-ios-dump: 代码中需要更改的:手机中的内网...
    99+
    2023-08-17
    ios
  • Android脱壳工具整理
    现在开源的脱壳工具比较多,今天我们来分享几款比较常见的脱壳工具,有刷入定制系统的脱壳机方式的,有Xpose模块hook关键函数的,也有Frida工具hook脱壳的,各有优缺点,小伙伴们可以自由搭配使用。 FART 这款脱壳工具是寒冰大佬写的...
    99+
    2023-09-03
    android java apache
  • Android 逆向之脱壳实战篇
    作者:37手游安卓团队 前言 这篇文章比较干,比较偏实战,看之前建议先喝足水,慎入。 在学脱壳之前,我们先来复习一下,什么时候是加固? 加固本质上就是对 dex 文件进行加壳处理,让一些反编译工具反编译到的是 dex 壳,而不...
    99+
    2023-08-30
    android java 开发语言 移动开发 安卓逆向 逆向安全
  • 四、iOS逆向:破壳 ipa 安装
    设备环境: 硬件环境:iPhone6.0、Mac电脑Big Sur(M1 芯片)。 软件环境:cydia。 2. 操作步骤: (1)cydia 安装Filza File Manager (源为apt.cydiakk.com)、App...
    99+
    2023-10-07
    ios iphone Powered by 金山文档
  • 【胖虎的逆向之路】03——Android一代壳脱壳办法罗列&实操
    【胖虎的逆向之路】03——Android脱壳办法罗列&脱壳原理详解 【胖虎的逆向之路】01——动态加载和类加载机制详解 【胖虎的逆向之路】02——Android整体加壳原理详解&实现 文章目录...
    99+
    2023-10-07
    android
  • iOS砸壳系列之三:Frida介绍和使用
    当涉及从App Store下载应用程序时,它们都是已安装的iOS应用(IPA)存储在设备上。这些应用程序通常带有保护的代码和资源,以限制用户对其进行修改或者逆向工程。 然而,有时候,为了进行调试、制作...
    99+
    2023-10-09
    ios cocoa macos iOS逆向 objective-c
  • Android Spider Frida-Dexdump 脱壳工具下载使用以及相关技术介绍
    文章目录 前言一、查壳、反编译、APK工具推荐二、查壳1.方式12.方式二 三、脱壳1.启动frida服务2.方式一3.方式二 四、反编译总结 前言 本案例使用的App是:引力播.apk,涉及到查壳、脱壳、反编译;...
    99+
    2023-08-18
    frida-server Frida-Dexdump ApkScan-PKID JDAX-GUI
  • 百亿美元估值的贝壳找房,值吗?
    ...
    99+
    2024-04-02
  • 完美解决connection reset
    网络连接被重置(Connection Reset)是一个常见的网络错误,它表示与远程服务器的连接被意外中断或重置。解决这个问题的方法...
    99+
    2023-09-15
    解决
  • 安卓完美使用python
    所需linux环境搭建软件 Linux Deploy JuiceSSH 两个比较好用的代码编辑器 QuickEdit(推荐使用这个) DroidEdit 下载地址: https://pan.baidu.com/s/1T...
    99+
    2023-01-31
    完美 python
  • Python和numpy: 完美匹配?
    Python是一种高级编程语言,而numpy是Python的一个开源扩展库,它提供了高效的多维数组操作以及科学计算功能。这两者之间有着密不可分的联系,因为numpy的核心就是对Python的多维数组进行操作。在本篇文章中,我们将介绍num...
    99+
    2023-08-02
    响应 numy 关键字
  • 完美解决org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    已解决org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp ...
    99+
    2023-10-02
    java apache tomcat
  • Ubuntu16.04下完美切换Pyth
    转载自http://blog.csdn.net/u013894834/article/details/75305752 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,非常不...
    99+
    2023-01-31
    完美 Pyth
  • M1 MacBook 使用 playCover 侧载运行 iOS ipa 文件,完美运行原神、金铲铲等游戏
    Mac 新的 M 系列芯片出来后,我们终于可以在 Mac 上玩原神、金铲铲之战等热门手游了,而且可以使用键盘鼠标进行控制,亲测了一下,像英雄联盟手游、王者荣耀这种游戏游玩体验没有手机或ipad上玩的爽...
    99+
    2023-09-06
    ios 游戏 ipad
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作