ios逆向工程(一)应用砸壳

本次砸壳的主要流程

本篇主要讲解关于应用的砸壳解密,通过解密后的文件导出微信头文件

越狱设备
手机安装Frida
Mac安装Frida
下载砸壳工具
开始砸壳
导出头文件

一. 设备越狱

下载Mac版本爱思助手,链接设备,找到一键越狱。
越狱成功以后,手机会出现应用Sileo,此时你打开Sileo会无法连接网络,用爱思助手安装乐网(红色图标即VPN),打开乐网后在打开Sileo即可连接应用

二. 手机安装Frida

1. 打开Sileo,添加源: https://build.frida.re (注意留意一下版本Frida的版本号)

2. 打开刚刚添加的源 安装 Frida

在这里插入图片描述

三. Mac安装Frida

1.安装Frida

sudo pip3 install frida

注意: Mac必选安装pip指令,才能执行上述命令

sudo easy_install pip

2.报错

假如报以下错误:

Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.

执行命令:

sudo pip3 install frida –upgrade –ignore-installed six

3.查看Frida版本

frida --version
14.2.15

需要注意的地方,电脑和手机的frida版本要保持一致,不一致可能会出问题。
检查frida是否正常运行,任意mac终端输入frida-ps -U有数据返回表示成功安装,-U表示USB设备,-ps表示进程。
如果确定frida --version有正常返回&USBSSH连接也没问题,还是出现Waiting for USB device to appear…本人解决方法如下,亲测可以,这个坑踩了很久

sudo pip3 install frida-tools //继续执行这个命令

再次查看结果

apple@appledeiMac-2 ~ % frida-ps -U
 PID  Name
----  -------------------------------------------------
5364  App Store
5802  Sileo
4206  邮件
ookmarksd
 819  wifid
 844  wirelessproxd
 //终端输出很多,我只是截取了一部分
apple@appledeiMac-2 ~ % 

四. 下载砸壳工具

砸壳工具不在使用dumpdecrypted砸壳,相比较frida-ios-dump来说有些复杂

新的砸壳工具 frida-ios-dump
如果github下载失败可以在这里下载

1.mac安装usbmuxd

brew install usbmuxd
如果你没有安装brew
请先安装
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

2.手机安装OpenSSH

默认安装手机中有
如果手机中没有则参考
https://www.jianshu.com/p/725843850e1d

3.Mac终端安装python

默认安装Mac中有

4.USB&SSH连接iPhone

*终端输入

iproxy 2222 22
说明:将当前连接设备的22端口映射到电脑的2222端口上,继而来连接SSH。

*同时打开另一个终端输入

ssh -p 2222 root@127.0.0.1
说明:127.0.0.1是默认本机回环地址。

输入ssh密码即可(默认密码alpine)

ssh -p 2222 root@127.0.0.1                                              
The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is SHA256:GXJI2exWQ528kEvqy9rypfY6jE7P8QvnfoSn+dCfsyg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
root@127.0.0.1's password: 
iPhone6S:~ root# passwd
Changing password for root.
New password:
Retype new password:
iPhone6S:~ root# 

5.frida-ios-dump使用

解压下载好的:frida-ios-dump
cd到frida-ios-dump目录中执行:

cd frida-ios-dump
sudo pip3 install -r requirements.txt --upgrade
// dump.py参数不用修改(教程说让修改端口号)

再次执行:

python3 dump.py -l
// 必须是在frida-ios-dump文件夹中执行的

当你看到以下内容说明执行成功:

apple@appledeiMac-2 frida-ios-dump-master % python3 dump.py -l  
 PID  Name          Identifier                 
----  ------------  ---------------------------
5364  App Store     com.apple.AppStore         
5802  Sileo         org.coolstar.SileoStore    
4206  邮件            com.apple.mobilemail       
   -  Cydia         com.saurik.Cydia           
   -  Electra       org.coolstar.electra1141   
   -  FaceTime 通话   com.apple.facetime         
   -  Safari 浏览器    com.apple.mobilesafari     
   -  Watch         com.apple.Bridge           
   -  iBooks        com.apple.iBooks           
   -  iTunes Store  com.apple.MobileStore      
   -  乐网            com.seven.adclear          
   -  信息            com.apple.MobileSMS        
   -  健康            com.apple.Health           
   -  地图            com.apple.Maps             
   -  备忘录           com.apple.mobilenotes      
   -  天气            com.apple.weather   

6.砸壳

还是在当前的目录下输入:

python3 dump.py bundle id
//bundle id就是上面列表当中列出来的bundle id

执行成功以后会显示如下信息,砸壳以后的.ipa文件会出现在当前文件夹中

说明:执行python3 dump.py bundle id的时候,一定要确保手机中这个应用在运行状态,不能再后台运行

(gwc) admindeMBP-4:frida-ios-dump admin$ python3 dump.py com.crossutility.quantumult
Start the target app com.crossutility.quantumult
Dumping Quantumult to /var/folders/09/1sjc1d4x2tnf9_d3rfpwl9pr0000gn/T
start dump /var/containers/Bundle/Application/4F25C441-0ED6-4B8A-BACC-C3DAEC389DAC/Quantumult.app/Quantumult
Quantumult.fid: 100%|█████████████████████████████████████████████████████████████████████| 3.00M/3.00M [00:00<00:00, 3.90MB/s]
start dump /private/var/containers/Bundle/Application/4F25C441-0ED6-4B8A-BACC-C3DAEC389DAC/Quantumult.app/Frameworks/Sodium.framework/Sodium
Sodium.fid: 100%|█████████████████████████████████████████████████████████████████████████| 42.3k/42.3k [00:00<00:00, 1.58MB/s]
start dump /private/var/containers/Bundle/Application/4F25C441-0ED6-4B8A-BACC-C3DAEC389DAC/Quantumult.app/Frameworks/CocoaLumberjack.framework/CocoaLumberjack
CocoaLumberjack.fid: 100%|██████████████████████████████████████████████████████████████████| 173k/173k [00:00<00:00, 5.78MB/s]
start dump /private/var/containers/Bundle/Application/4F25C441-0ED6-4B8A-BACC-C3DAEC389DAC/Quantumult.app/Frameworks/lwip.framework/lwip
lwip.fid: 100%|███████████████████████████████████████████████████████████████████████████| 98.6k/98.6k [00:00<00:00, 1.58MB/s]
Localizable.strings: 12.6MB [00:02, 4.96MB/s]         
0.00B [00:00, ?B/s]Generating "Quantumult.ipa"

(gwc) admindeMBP-4:frida-ios-dump admin$ 

7.检验砸壳是否成功

找到刚才的导出的.ipa文件,拷贝一份放到桌面

把.ipa改成zip,然后解压文件,进入文件夹
在这里插入图片描述
输入命令:

otool -l WeChat | grep -B 2 crypt

如果出现:

cmd LC_ENCRYPTION_INFO_64
cmdsize 24
cryptoff 16384
cryptsize 130711552
cryptid 0 //0代表砸壳成功,1代表未成功

五. 导出微信头文件

1.下载class-dump

下载成功以后运行肯定是报错的,这个坑又被我踩了很久.

你只需要找到class-dump可执行文件,拷贝到 /usr/local/bin 这个路径中

在这里插入图片描述

2.导出头文件

打开终端在当前输入命令

class-dump -H /Users/apple/Desktop/ipa/Payload/WeChat.app -o /Users/apple/Desktop/ipa

/Users/apple/Desktop/ipa/Payload/WeChat.ap是计算器app的路径
/Users/apple/Desktop/ipa 是存放dump出来头文件的文件夹路径

如图:

在这里插入图片描述

下一篇会讲解代码的注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值