当前位置: 首页 > news >正文

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言

在移动应用程序的开发中,了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法,可以让我们分析应用程序的网络请求和响应,了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具,可以帮助我们在 Android 和 iOS 平台上进行数据抓包。本篇博客将介绍如何使用克魔助手在 iOS 平台上进行数据抓包。

1. 确认手机和 PC 在同一网络环境下

为了保证克魔助手可以抓取到 iOS 设备的数据包,需要确保手机和 PC 在同一局域网下。你可以通过以下步骤来确认:

  1. 在你的 iOS 手机上找到连接的 Wi-Fi,查看一下 IP 地址。

  2. 确认 PC 和 iOS 手机连接的 Wi-Fi 是同一个网络。

2. iOS 手机设置网络代理

在确认 iOS 手机和克魔助手在同一局域网下之后,我们需要对 iOS 手机进行网络代理的配置。

  1. 找到 iOS 手机的设置选项下,进入 WLAN,查看连接的 Wi-Fi。

  2. 进入 HTTP 代理,设置为手动,然后填写服务器,即输入克魔助手在电脑本地的 IP 地址和端口。

  3. 点击存储即可。

在这里插入图片描述

3. iOS 手机下载安装与配置证书

为了能够抓取 iOS 手机的 HTTPS 数据包,需要安装根证书来解码 HTTPS 数据报文。下面是具体的步骤:

  1. 使用 iOS 手机中自带的 Safari 浏览器,输入配置好的 IP + 端口跳转到克魔助手 Echo Service 证书下载页。

在这里插入图片描述

  1. 点击“克魔助手 certificate”弹出此网址尝试下载一个配置描述文件,点击“允许”按钮。

在这里插入图片描述

  1. 下载完成后,弹出提示已下载描述文件。

在这里插入图片描述

  1. 根据提示,回到手机的设置中,找到已下载描述文件,可以看到下载的证书在那里了。

  2. 安装证书。继续点击安装,完成证书的安装。

在这里插入图片描述

  1. 设置信任证书。安装好证书之后,还要在 iOS 系统中设置信任刚刚下载好的证书。我们回到 iOS 系统中的设置—>通用中,对证书进行信任设置,选择证书信任设置选项。

4. 开始 iOS 抓包

配置好 PC 端的克魔助手、手机也安装了证书、代理也设置之后,我们就可以在手机上操作 app 捕获数据包了,然后在克魔助手中查看发送的请求和响应报文了。

如果还是抓不到包,需查看一下防火墙是否关闭,是否没有允许克魔助手程序通过防火墙,或者检查一下证书是否出现问题,或者删除所有的证书之后,重新安装克魔助手与手机的证书重置后再次尝试抓包!

代码案例演示

以下是使用 Python 语言进行数据抓包的示例代码:

import fridadef 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 进行数据抓包的示例代码。

参考资料

  1. 克魔助手官网

相关文章:

  • Django创建多app应用
  • 手机卫星通信
  • 设计模式(2):单例模式
  • Java安全篇-Fastjson漏洞
  • 堆的应用(堆排序,TOP-K问题)详细讲解
  • JAVA面试八股文之集合
  • 【STM32CubeMX(4)】 GPIO开漏输出——模拟IIC驱动OLED
  • 高效八股文背诵方法
  • 计算机网络:传输控制协议(Transmission Control Protocol-TCP协议
  • Elasticsearch相关问题
  • 【计算机网络】IP 协议
  • mac m1安装和使用nvm的问题
  • leetcode56--合并数组
  • Maven学习记录
  • 根据疾病名生成病例prompt
  • 【刷算法】求1+2+3+...+n
  • 78. Subsets
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • 大整数乘法-表格法
  • 翻译--Thinking in React
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 首页查询功能的一次实现过程
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 新手搭建网站的主要流程
  • 用Canvas画一棵二叉树
  • 怎样选择前端框架
  • UI设计初学者应该如何入门?
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​【已解决】npm install​卡主不动的情况
  • $.ajax()
  • (09)Hive——CTE 公共表达式
  • (23)Linux的软硬连接
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (三)docker:Dockerfile构建容器运行jar包
  • (一)kafka实战——kafka源码编译启动
  • (转)【Hibernate总结系列】使用举例
  • .NET 4.0中的泛型协变和反变
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Micro Framework初体验
  • .NET NPOI导出Excel详解
  • .NET分布式缓存Memcached从入门到实战
  • .NET性能优化(文摘)
  • :中兴通讯为何成功
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [CF543A]/[CF544C]Writing Code
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [HNOI2008]水平可见直线
  • [Lucene] Lucene 全文检索引擎简介
  • [Python] 输入与输出
  • [Python从零到壹] 六十三.图像识别及经典案例篇之图像漫水填充分割应用
  • [Real world Haskell] 中文翻译:第三章 定义类型,流式函数
  • [SpringMVC] SpringMVC入门