记录一次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抓包即可。

相关推荐
可可爱爱的你吖1 小时前
webSocket的使用文档
网络·websocket·网络协议
熊明才2 小时前
Ubuntu 22.04.4 LTS + certbot 做自动续签SSL证书(2024-11-14亲测)
数据库·网络协议·ssl
小徍2 小时前
PostgreSQL加密连接SSL配置
postgresql·ssl
写bug的小屁孩4 小时前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3
Jewel1054 小时前
Flutter代码混淆
android·flutter·ios
专注VB编程开发20年6 小时前
WebSocket和HTTP协议的性能比较与选择
websocket·网络协议·http
群联云防护小杜8 小时前
服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
运维·服务器·网络协议·tcp/ip·安全·ddos
ascarl20108 小时前
生成自签名证书并配置 HTTPS 使用自签名证书
网络协议·http·https
写bug的小屁孩9 小时前
websocket初始化
服务器·开发语言·网络·c++·websocket·网络协议·qt creator
江梦寻11 小时前
思科模拟器路由器配置实验
开发语言·网络·网络协议·学习·计算机网络