flutter抓包绕过

lutter的证书校验

起因:

最近工作上让做个app的复测,把apk发我后,开始尝试挂代理抓包,结果发现抓不到

为是证书没弄好,想着前几天不是刚导入了吗(雾)。又重新导入了下还是不行。然后各种lsp模块,objection都不行,r0capture也没数据。
然后jadx看了下,全是flutter字样,才想起来和flutter有关。 

开始百度(:

然后就开始各种找。
 

session_verify_cert_chain函数在第356行的ssl_x509.cc中被定义 

然后根据[原创]一种基于frida和drony的针对flutter抓包的方法-Android安全-看雪-安全社区|安全招聘|kanxue.com 这篇文章特征找,但是这个是32位的,所以在app安装的时候指定32位安装

 

写脚本绕过

32位

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

function hook_ssl_verify_result(address) {

Interceptor.attach(address, {

        onEnter: function(args) {

            console.log("Disabling SSL validation")

        },

        onLeave: function(retval) {

            console.log("Retval: " + retval);

            retval.replace(0x1);

        }

    });

}

function hookFlutter() {

    var m = Process.findModuleByName("libflutter.so");

    var pattern = "2D E9 F0 4F 85 B0 06 46 50 20 10 70";

    var res = Memory.scan(m.base, m.size, pattern, {

        onMatch: function(address, size){

            console.log('[+] ssl_verify_result found at: ' + address.toString());

        // Add 0x01 because it's a THUMB function

        // Otherwise, we would get 'Error: unable to intercept function at 0x9906f8ac; please file a bug'

            hook_ssl_verify_result(address.add(0x01));

        },

        onError: function(reason){

            console.log('[!] There was an error scanning memory');

        },

        onComplete: function() {

            console.log("All done")

        }

    });

}

然后启动就可以抓包了

64位

搜索ssl_client

 

然后就找到了这些

1

2

3

4

5

6

7

8

9

.text:0000000000596870 FF C3 01 D1                 SUB             SP, SP, #0x70

.text:0000000000596874 FD 7B 01 A9                 STP             X29, X30, [SP,#0x70+var_60]

.text:0000000000596878 FC 6F 02 A9                 STP             X28, X27, [SP,#0x70+var_50]

.text:000000000059687C FA 67 03 A9                 STP             X26, X25, [SP,#0x70+var_40]

.text:0000000000596880 F8 5F 04 A9                 STP             X24, X23, [SP,#0x70+var_30]

.text:0000000000596884 F6 57 05 A9                 STP             X22, X21, [SP,#0x70+var_20]

.text:0000000000596888 F4 4F 06 A9                 STP             X20, X19, [SP,#0x70+var_10]

.text:000000000059688C 08 0A 80 52                 MOV             W8, #0x50

.text:0000000000596890 48 00 00 39                 STRB            W8, [X2]

然后写脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

function hook_ssl_verify_result(address) {

Interceptor.attach(address, {

        onEnter: function(args) {

            console.log("Disabling SSL validation")

        },

        onLeave: function(retval) {

            console.log("Retval: " + retval);

            retval.replace(0x1);

        }

    });

}

function hookFlutter() {

    var m = Process.findModuleByName("libflutter.so");

    var pattern = "FF C3 01 D1 FD 7B 01 A9 FC 6F 02 A9FA 67 03 A9 F8 5F 04 A9 F6 57 05 A9 F4 4F 06 A9 08 0A 80 52 48 00 00 39";

    var res = Memory.scan(m.base, m.size, pattern, {

        onMatch: function(address, size){

            console.log('[+] ssl_verify_result found at: ' + address.toString());

        // Add 0x01 because it's a THUMB function

        // Otherwise, we would get 'Error: unable to intercept function at 0x9906f8ac; please file a bug'

            hook_ssl_verify_result(address.add(0x01));

        },

        onError: function(reason){

            console.log('[!] There was an error scanning memory');

        },

        onComplete: function() {

            console.log("All done")

        }

    });

}

然后发现报错了

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452137.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python---Pycharm安装各种库(第三方库)

一、前言 Pycharm中,通常需要安装很多第三方库,才可以使用相应的拓展功能,这篇文档给你介绍Pycharm中的常用库,以及安装的两种方法!二、Pycharm常用库的介绍 Pycharm是一款非常流行的Python集成开发环境(IDE&#xff…

机器学习 | 解析聚类算法在数据检测中的应用

目录 初识聚类算法 聚类算法实现流程 模型评估 算法优化 特征降维 探究用户对物品类别的喜好细分(实操) 初识聚类算法 聚类算法是一种无监督学习方法,用于将数据集中的对象按照相似性分组。它旨在发现数据中的内在结构和模式,将具有相似特征的数据…

AI-数学-高中-22-tanx的图像与性质

原作者视频:三角函数】9tanx的图像与性质(易中档)_哔哩哔哩_bilibili 做题时注意先画图,再计算。

【Android】使用Termux终端的SSH服务与电脑传输文件

在Android手机上有一个Termux APP,可运行类似 Linux 终端的模拟器,记得之前有讲过用电脑远程控制手机终端命令,那现在,怎样实现电脑与手机直接传输文件呢,且看这篇文章。 文章目录 Termux安装功能ssh服务从远程下载从本…

Git使用命令大全

命令大全参考阮一峰的博客,根据自己的使用习惯作了调整。 Git常用命令 其他常用的命令 配置Git # 显示当前的Git配置 $ git config --list# 编辑Git配置文件 $ git config -e [--global]# 设置提交代码时的用户信息 $ git config [--global] user.name "[nam…

uniapp /微信小程序 使用map组件实现手绘地图方案

获取地图范围 点图拾取坐标-地图开放平台|腾讯位置服务 获取需要手绘地图左下角和右上角GPS坐标 以北京故宫为例&#xff1a; 截取需要手绘地图进行手绘地图制作 ​​​​​​​​​​​​​​ 素材处理 由于地图素材文件比较大&#xff0c;小程序又限制包大小<2M,无…

基于场景文字知识挖掘的细粒度图像识别算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;基于场景文字知识挖掘的细粒度图像识别算法1、研究背景2、方法提出方法模块 3、试验4、文章贡献 二、RNN代码学习2.1、什么是RNN2…

Python学习(15)|切片slice操作

38-切片 slice 操作类似字符串的切片操作&#xff0c;对于列表的切片操作和字符串类似。 切片操作&#xff1a; 切片是Python序列及其重要的操作&#xff0c;适用于列表、元组、字符串等。 切片slice操作可以让我们快速提取子列表或者修改。标准格式为&#xff1a; [起始偏移…

idea常用设置

1、内存优化 根据自己电脑本身的内存&#xff0c;对idea安装包里bin目录下的idea64.exe.vmoptions文件进行修改 -server -Xms256m -Xmx2048m -XX:MaxPermSize1024m -XX:ReservedCodeCacheSize256m -ea -Dsun.io.useCanonCachesfalse -Djava.Net.preferIPv4Stacktrue -Djsse.e…

使用vs查看虚函数的内存布局

使用vs自带的命令行&#xff0c;进入到相应的源文件目录中&#xff1a; 可以看到虚函数表的结构 命令&#xff1a; //最后的Base是类名 cl ConsoleApplication5.cpp /d1 reportSingleClassLayoutBase

机器学习系列——(六)数据降维

引言 在机器学习领域&#xff0c;数据降维是一种常用的技术&#xff0c;旨在减少数据集的维度&#xff0c;同时保留尽可能多的有用信息。数据降维可以帮助我们解决高维数据带来的问题&#xff0c;提高模型的效率和准确性。本文将详细介绍机器学习中的数据降维方法和技术&#…

MiniCPM:揭示端侧大语言模型的无限潜力

技术博客链接&#xff1a; &#x1f517;https://shengdinghu.notion.site/MiniCPM ➤ Github地址&#xff1a; &#x1f517;https://github.com/OpenBMB/MiniCPM ➤ Hugging Face地址&#xff1a; &#x1f517;https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16 1 …