记录一次charles启用vpn+禁ssl都无法抓包app的情况竟因为是flutter应用

一、如何判断是否flutter应用app?

打开该app,运行 adb shell dumpsys activity top

这里出现flutter即是flutter应用了。

二、如何解决flutter应用抓包问题?

flutter开发的app,ssl证书校验在libflutter.so中的ssl_crypto_x509_session_verify_cert_chain函数中,用frida把它hook返回true即可。
打开ide搜索字符串ssl_server,双击进去找到ssl_crypto_x509_session_verify_cert_chain函数的偏移地址进行hook;


hook代码如下

javascript 复制代码
function hook_ssl() {
    Java.perform(function () {
	var base = Module.findBaseAddress("libflutter.so");
    var ssl_crypto_x509_session_verify_cert_chain = base.add(0x659AEA);
    console.log("找到函数偏移地址:",ssl_crypto_x509_session_verify_cert_chain)
	Interceptor.attach(ssl_crypto_x509_session_verify_cert_chain, {
        onEnter: function(args) {
            console.log("hook 开始!")
        },
        onLeave: function(retval) {
            console.log("返回值: " + retval);
            retval.replace(0x1);
            console.log("解除ssl验证成功\n---------------------");
      }
  });
}
    )};
setTimeout(hook_ssl,1690)   // 设置延时找对hook时机(太快函数还没加载出来,太慢app已经发起请求了)

以上操作完成后,charles+postern抓包即可。

相关推荐
里欧跑得慢20 小时前
CSS 嵌套:编写更优雅的样式代码
前端·css·flutter·web
里欧跑得慢20 小时前
CSS变量与自定义属性详解
前端·css·flutter·web
想唱rap21 小时前
应用层HTTPS协议
服务器·网络·c++·网络协议·http·https
想唱rap1 天前
传输层协议之UDP
java·linux·网络·c++·网络协议·mysql·udp
wangl_921 天前
Modbus RTU 与 Modbus TCP 深入指南-目录
网络·网络协议·tcp/ip·tcp·modbus·rtu
05候补工程师1 天前
【408 应用层通关】DNS 域名解析负载博弈、HTTP 延迟计算与邮件协议全家桶详解
网络·经验分享·笔记·网络协议·计算机网络·http
xmdy58661 天前
Flutter+开源鸿蒙实战|校园易生活Day1 项目初始化搭建+开发环境校验+工程目录规范+第三方库集成+多端屏幕适配+全局底部导航
flutter·开源·harmonyos
wangl_921 天前
Modbus RTU 与 Modbus TCP 深入指南-总览对比
网络·网络协议·tcp/ip·tcp·modbus·rtu
wangl_921 天前
Modbus RTU 与 Modbus TCP 深入指南-CRC校验完全解析
网络·网络协议·tcp/ip·tcp·modbus·rtu
MonkeyKing1 天前
Flutter国际化与多主题实战:多场景示例,一键适配多语言+多风格
flutter