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

相关推荐
00后程序员张2 小时前
做 iOS 调试时,我尝试了 5 款抓包工具
websocket·网络协议·tcp/ip·http·网络安全·https·udp
猴子请来的逗比4892 小时前
http重新为https
网络协议·学习·http·https
wang09073 小时前
网络协议之DHCP和PXE分析
网络·arm开发·网络协议
疯狂的代M夫3 小时前
Tcp 通信简单demo思路
网络·网络协议·tcp/ip
hgdlip3 小时前
位置权限关掉还能看到IP属地吗?全面解析定位与IP的关系
网络·网络协议·tcp/ip
Yungoal3 小时前
Wireshark抓账号密码
网络协议·安全·ssl
白总Server4 小时前
Golang领域Beego框架的中间件开发实战
服务器·网络·websocket·网络协议·udp·go·ssl
2501_915106325 小时前
开发者如何优雅应对HTTPS抓包难题
websocket·网络协议·tcp/ip·http·网络安全·https·udp
爪哇小白20215 小时前
MinIO实现https访问
网络协议·http·https
利刃大大5 小时前
【网络编程】二、UDP网络套接字编程详解
网络·c++·网络协议·udp·socket·套接字