🚀2023最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包
引言
在移动应用程序的开发中,了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法,可以让我们分析应用程序的网络请求和响应,了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具,可以帮助我们在 Android 和 iOS 平台上进行数据抓包。本篇博客将介绍如何使用克魔助手在 iOS 平台上进行数据抓包。
1. 确认手机和 PC 在同一网络环境下
为了保证克魔助手可以抓取到 iOS 设备的数据包,需要确保手机和 PC 在同一局域网下。你可以通过以下步骤来确认:
-
在你的 iOS 手机上找到连接的 Wi-Fi,查看一下 IP 地址。
-
确认 PC 和 iOS 手机连接的 Wi-Fi 是同一个网络。
2. iOS 手机设置网络代理
在确认 iOS 手机和克魔助手在同一局域网下之后,我们需要对 iOS 手机进行网络代理的配置。
-
找到 iOS 手机的设置选项下,进入 WLAN,查看连接的 Wi-Fi。
-
进入 HTTP 代理,设置为手动,然后填写服务器,即输入克魔助手在电脑本地的 IP 地址和端口。
-
点击存储即可。
![在这里插入图片描述](https://static001.geekbang.org/infoq/e1/e18676aa00f2165c24e8bb45bef917b4.png)
3. iOS 手机下载安装与配置证书
为了能够抓取 iOS 手机的 HTTPS 数据包,需要安装根证书来解码 HTTPS 数据报文。下面是具体的步骤:
-
使用 iOS 手机中自带的 Safari 浏览器,输入配置好的 IP + 端口跳转到克魔助手 Echo Service 证书下载页。
![在这里插入图片描述](https://static001.geekbang.org/infoq/5e/5e859d5ed0394005c2a18b58b8cfb619.png)
-
-
点击“克魔助手 certificate”弹出此网址尝试下载一个配置描述文件,点击“允许”按钮。
![在这里插入图片描述](https://static001.geekbang.org/infoq/08/08071ea2fdceb5c009fec8b70020456a.png)
-
-
下载完成后,弹出提示已下载描述文件。
![在这里插入图片描述](https://static001.geekbang.org/infoq/3a/3a1d6fb4479b8749efd325065f227736.png)
-
-
根据提示,回到手机的设置中,找到已下载描述文件,可以看到下载的证书在那里了。
-
安装证书。继续点击安装,完成证书的安装。
![在这里插入图片描述](https://static001.geekbang.org/infoq/18/18bee7423677ddd144b17549c81887e3.png)
-
-
设置信任证书。安装好证书之后,还要在 iOS 系统中设置信任刚刚下载好的证书。我们回到 iOS 系统中的设置—>通用中,对证书进行信任设置,选择证书信任设置选项。
4. 开始 iOS 抓包
配置好 PC 端的克魔助手、手机也安装了证书、代理也设置之后,我们就可以在手机上操作 app 捕获数据包了,然后在克魔助手中查看发送的请求和响应报文了。
如果还是抓不到包,需查看一下防火墙是否关闭,是否没有允许克魔助手程序通过防火墙,或者检查一下证书是否出现问题,或者删除所有的证书之后,重新安装克魔助手与手机的证书重置后再次尝试抓包!
代码案例演示
以下是使用 Python 语言进行数据抓包的示例代码:
import frida
def on_message(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)
# 获取目标进程的名称
session = frida.attach("TargetAppName")
# 加载 JavaScript 脚本
with open("script.js", "r") as f:
script = session.create_script(f.read())
# 设置消息回调函数
script.on('message', on_message)
# 启动 JavaScript 脚本
script.load()
# 阻塞当前进程,等待脚本执行完毕
input()
总结
本篇博客介绍了如何使用克魔助手在 iOS 平台上进行数据抓包。首先需要确认手机和 PC 在同一网络环境,然后对 iOS 手机进行网络代理和证书配置,最后开始 iOS 抓包。同时,也提供了使用 Python 进行数据抓包的示例代码。