美文网首页
Frida脱壳 - 实测有效

Frida脱壳 - 实测有效

作者: 那月无痕 | 来源:发表于2024-09-12 17:24 被阅读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

    相关文章

      网友评论

          本文标题:Frida脱壳 - 实测有效

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