Flutter框架开发的安卓App的抓包以及Frida安装和hook使用教程

资料

记录Flutter框架开发的安卓App的抓包以及Frida安装和hook使用教程
Postern + Charles + Burpsuite 进行对 APP 进行抓包
Postern实现安卓设备的全局代理教程

为什么Flutter不能抓包

1.它不走系统代理
2.它不支持设置代理
3.它不信任系统证书
然后它证书校验写死在so文件里,所以导致JustTrustMe,SSLUnpinning等模块完全失效,目前面临的问题:需要证书校验和不走代理,

解决的步骤

  1. 针对证书校验问题,就是用frida去hook libflutter.so中的函数
  2. 使用IDA静态分析,找到‘ssl_client’hook的点
  3. 针对不走代理我们可以使用基于VPN模式的Postern+charles 转发抓包
  4. 运行frida

具体的步骤

将apk解压(改成zip后缀),找到libfluter.so

此时要注意你用的手机是否是64位
在这里插入图片描述

打开64位的IDA pro

通过字符串找到ssl_client

在这里插入图片描述
在这里插入图片描述
双击进去
在这里插入图片描述
找一下这个堆栈,点击红圈函数,按x追踪(IDA有时候特别慢,需要多等一会儿)
在这里插入图片描述
此时就能找到这个函数的地址了

frida脚本

这个时候,我们使用别人写好的脚本https://github.com/G123N1NJ4/c2hack/blob/master/Mobile/flutter-ssl-bypass.md
把这段代码复制下来,把代码中的地址修改为刚才获得的地址0X5dc3cc,将代码保存为ssl.js。
在这里插入图片描述

配置frida

然后打开app,frida –UF –l ssl.js (-UF 就是当前打开的app)

启动frida-server
sargo:/# cd /data/local/tmp
sargo:/# ./frida-server-16.1.3-android-arm64

端口转发:
adb forward tcp:27043 tcp:27043

使用frida
frida -UF -l flutter_ssl_bypass.js

在这里插入图片描述

配置postern

然后打开postern工具转发一下,在charles就能抓到包了。
1.配置charles
在这里插入图片描述
勾选SOCKS Proxy
在这里插入图片描述
在这里插入图片描述
添加代理服务器
在这里插入图片描述
严格按照下面的配置来执行
在这里插入图片描述
点击保存
在这里插入图片描述

配置规则
在这里插入图片描述
添加规则
在这里插入图片描述

按照下图进行操作并点击保存
在这里插入图片描述在这里插入图片描述

打开/关闭 Postern
在这里插入图片描述
这样足够了

抓包成功!

在这里插入图片描述

### Frida 安装与配置教程 #### Python 版本确认 对于不同版本的 Android Python,需选择合适的 Frida 版本来确保兼容性。例如,在使用夜神模拟器的安卓 9 环境下,建议安装 Frida 的 14.2.18 版本,这通常搭配 Python 3.8 使用[^1]。 为了验证当前系统的 Python 版本,可以通过终端执行以下命令: ```bash python --version ``` #### 安装特定版本的 Frida 库 一旦确定了所需的 Python Frida 版本组合,便可通过 `pip` 工具来安装指定版本的 Frida 库。针对上述环境设置,应执行如下命令以安装 Frida 及其工具集: ```bash pip install frida==14.2.18 pip install frida-tools==9.2.4 ``` 完成这些操作之后,可利用下面这条指令检验 Frida 是否成功安装并正常工作: ```bash frida --version ``` #### 下载匹配的 Frida Server 文件 除了客户端库外,还需获取适用于目标设备架构(如 x86_64)的 Frida Server 文件。该文件可以从 GitHub 发布页面下载;对于提到的例子来说,则是从链接 https://github.com/frida/frida/releases/tag/14.2.18 获取名为 `frida-server-14.2.18-android-x86_64.xz` 的压缩包[^3]。 解压后得到的二进制文件应当放置于 Android 设备上适当的位置,并赋予必要的权限以便后续启动服务端程序。 #### 测试连接情况 当所有组件都已就绪,可以在本地计算机上的虚拟环境中激活相应的 Python 虚拟环境后再尝试运行一些简单的测试脚本或命令,以此评估整个链路是否能够顺利运作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵健zj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值