iOS应用砸壳

作者: 没八阿哥的程序 | 来源:发表于2018-12-27 10:47 被阅读52次

概述

软件脱壳,顾名思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密)。

砸壳原理

  • 应用加壳(加密)
    提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管理软件授权。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳(脱壳)
  • 应用砸壳(解密)
    • 静态砸壳
      静态砸壳就是在已经掌握和了解到了壳应用的加密算法和逻辑后在不运行壳应用程序的前提下将壳应用程序进行解密处理。静态脱壳的方法难度大,而且加密方发现应用被破解后就可能会改用更加高级和复杂的加密技术
    • 动态砸壳
      动态砸壳就是从运行在进程内存空间中的可执行程序映像(image)入手,来将内存中的内容进行转储(dump)处理来实现脱壳处理。这种方法实现起来相对简单,且不必关心使用的是何种加密技术。

iOS应用运行原理

iOS应用运行原理

砸壳方式

砸壳有多种方法,可以用多种途径实现。比如Clutchdumpdecryptedfrida-ios-dump手动砸壳等等

利用Clutch砸壳

Clutch是由KJCracks开发的一款开源砸壳工具。工具支持iPhone、iPod Touch、iPad,该工具需要使用iOS8.0以上的越狱手机应用。
Clutch安装

  • 可以在 这里下载Clutch
  • 找到发布版本 release
  • 下载最新版本
    最新版本
    Clutch使用
  • 映射端口
sh usbConnect.sh
  • 拷贝工具到手机/usr/bin目录下
scp -P 1234 Clutch-2.0.4 root@localhost:/usr/bin
  • openssh连接手机查看/usr/bin目录是否存在,改名为‘ Clutch’


    /usr/bin目录下Clutch
  • 列出可以砸壳的应用列表 $Clutch -i

Clutch -I

可以砸壳的应用列表
  • 砸壳 $Clutch –d 应用ID或bundleID
Clutch –d 2

砸壳后的ipa保存在var/mobile/Documents/Dumped/目录下,可以把它拷贝到电脑上使用。

dumpdecrypted

Github开源工具。 dumpdecrypted这个工具就是通过建立一个名为dumpdecrypted.dylib的动态库,插入目标应用实现脱壳。


dumpdecrypted.dylib使用可能会遇到的问题

如果你的手机是非完美越狱可能会遇到一些问题比如kill 9
可按照以下方法解决:

  1. 将dumpdecrypted.dylib复制到/ usr / lib中。确保它具有适当的权限,以便用户移动设备可以读取和执行它

-rwxr-xr-x

  1. 将用户更改为手机:
su mobile
  1. 将目录更改为移动设备可以写入的位置:
cd / var / mobile / Documents
  1. 使用绝对路径执行命令:
DYLD_INSERT_LIBRARIES = / usr / lib / dumpdecrypted.dylib /var/containers/Bundle/Application/59CEB222-4C4D-4A34-BC0F-8D38B9E3853D/MyApp.app/MyApp
  1. 然后,您将在当前目录中拥有MyApp.decrypted文件

获得的.decrypted文件便是解密后的MachO文件

frida-ios-dump

该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件。
准备
使用frida-ios-dump必须是电脑上已安装pythonpip,frida作者建议python版本是python3

安装
安装frida

 $sudo pip install frida-tools

可能会遇到警告

警告
意思是:目录不归当前用户所有。请检查该目录的权限和所有者.需要sudo的-H标志
可以使用sudo -H 。set-home 将 HOME 变量设为目标用户的主目录
sudo-H pip install frida-tools

可能又会报错误Uninstalling a distutils installed project (six)
使用命令

sudo pip install frida-tools –-upgrade –-ignore-installed six

即可。
iOS端安装frida

然后在iOS端也需要安装frida
1、添加源 https://build.frida.re
2、安装Frida
Mac配置ios-dump

  • 下载脚本
$sudo git clone https://github.com/AloneMonkey/frida-ios-dump
  • 进入目录安装依赖
$sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt –upgrade

有可能报错:

frida-tools 1.2.2 has requirement prompt-toolkit<2.0.0,>=0.57, but you'll have prompt-toolkit 2.0.7 which is incompatible.
解决方案1 降低 prompt-toolkit 版本
卸载

$sudo pip uninstall prompt-toolkit

安装指定版本

$sudo pip install prompt-toolkit==1.0.6

继续执行

$sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt –upgrade

若不生效用方案2
解决方案1 降低 prompt-toolkit 版本后修改requirements.txt文件
安装上面的方法安装低版本的prompt-toolkit后,删除requirements.txt文件中的prompt-toolkit字段。这样就不会在后续操作中prompt-toolkit就不会又被升级
然后继续执行

$sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt –upgrade

OK👌。
然后映射端口
cd到frida-ios-dump目录通过命令砸壳

./dump.py 微信

砸壳后的ipa保存在当前目录下

相关文章

  • iOS应用砸壳

    设备:iOS10.3.2的5s 一:设备越狱 1.使用g0blin进入官网下载ipa 2.然后使用Impactor...

  • iOS应用砸壳

    概述 软件脱壳,顾名思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密)。 砸壳原理 应用加壳(加密)提交给...

  • iOS应用砸壳

    应用商店下载的app,都是进过加密过的,用hopper或者ida完全分析不了。那是不是就没办法了呢?其实不然,解铃...

  • 越狱调试

    从内存中dump出IPA包砸壳工具:Clutch砸壳工具:dumpdecrypted砸壳工具:frida-iOS-...

  • iOS 越狱应用砸壳

    应用砸壳:一般在客户端的应用为了防止别人反编译会对可执行文件进行加密保护(加壳),我们的砸壳就是解密的过程 静态砸...

  • ios应用的砸壳

    目的 紧接上一篇文章,手机越狱后我们就需要开始给应用砸壳了,主要是使用MonkeyDev大神的插件,进行操作 ht...

  • 应用砸壳

    砸壳 软件脱壳,顾明思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密) 砸壳原理 应用加壳(加密) 应用砸...

  • iOS 逆向 - 使用 dumpdecrypted 给 APP

    iOS 逆向 - 使用 dumpdecrypted 给 APP 砸壳 对 Google Sheets 进行砸壳 i...

  • dumpdecrypted砸壳

    dumpdecrypted 砸壳 一、dumpdecrypted源码地址 github地址 二、确认要砸壳的iOS...

  • iOS12+砸壳(脱壳)

    iOS12+最佳的砸壳插件 推荐使用 静态砸壳工具4 最方便 1. 静态砸壳工具flexdecrypt[https...

网友评论

    本文标题:iOS应用砸壳

    本文链接:https://www.haomeiwen.com/subject/plwllqtx.html