Frida脱壳 - 实测有效

2024-09-12  本文已影响0人  那月无痕

Frida

Frida-ios-dump基于Frida(一款跨平台的轻量级的Hook框架)提供的强大的功能,通过注入JS实现内存dump,然后利用Python脚本自动将内存复制到macOS,从而生成最终的脱壳后的ipa文件。

Frida-ios-dump的原理和dumpdecrypted一样,都是通过把内存汇总已解密的数据dump出来再修复mach-O,dan dumpdecrypted仅能dump主程序,对于框架需要自行修改源代码才能完成,操作比较麻烦。Frida-ios-dump提供的强大功能允许我们一键快速完成脱壳。

使用Frida脱壳要求越狱设备上安装Frida插件。具体操作步骤如下:

1.首先Cydia中添加源Frida源:https://build.frida.re

2.搜索并安装对应版本的Frida。笔者的越狱iPhone是64位的,iOS 版本是10.13.5,所以下载并安装了Frida for pre-A12 devices

3.Mac上在github上下载Frida-ios-dump:https://github.com/AloneMonkey/frida-ios-dump

4.进入本地的Frida-ios-dump目录下执行sudo pip install -r requirements.txt --upgrade 来安装python依赖

注意:如果这一步安装Python依赖失败:可以尝试手动逐个安装requirements.txt中的python依赖库

5.mac终端执行iproxy 2222 22。把Mac上的2222端口映射到iPhone的22。前提是要保证此时iPhone已经和Mac通过usb进行了连接

注意:如果这一步出现command not found:iproxy。说明Mac本地还没有iproxy。只需终端执行brew install usbmuxd。在安装usbmuxd的过程中iproxy会被自动安装。安装好后执行iproxy 2222 22

6.电脑当前目录下继续执行./dump.py -l命令。列出iPhone上当前的所有应用

7.终端执行./dump.py bundleId即可对app进行脱壳。

注意:这一步需要我们把app启动

8.脱壳成功后,会在电脑的当前目录新增一个ipa文件。该文件就是脱壳后的APP包。

分离架构

我们最终脱壳出的二进制文件和使用的越狱设备有关。即arm64的越狱设备只能脱壳出arm64的可执行文件。Mach-O通常是胖二进制格式,也就是一个Mach-O文件包含多种架构,比如:arm64、armv7、armv7s等。胖二进制的目的是为了支持更多架构的iPhone。关于每款iPhone的架构可以自行Google。

搞过静态库和动态库的开发者对于分离架构应该并不陌生。在合并和分离二进制文件的时候,我们通常使用lipo命令。lipo是macOS自带的工具,其功能非常强大。下面列举了lipo命令常用的几个命令:

# 查看可执行文件的架构信息
命令格式:lipo -info Mach-O文件
# lipo -info WeChat

# 分离出某种特定架构
命令格式:lipo  mach-O文件  -thin  架构类型  -output  分离的mach-O文件  
# lipo WeChat -thin arm64 -output WeChat_arm64

# 合并多种架构
命令格式:lipo  mach-O文件1  mach-O文件2  -output  合成的mach-O文件
# lipo WeChat_arm64 WeChat_armv7 -output WeChat

补充:查看可执行文件架构还可以使用file命令:file Mach-O文件 例如:file WeChat

上一篇下一篇

猜你喜欢

热点阅读