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

相关推荐
不爱吃糖的程序媛3 小时前
Flutter 三方库适配鸿蒙教程
flutter·华为·harmonyos
IT大白鼠5 小时前
RSTP协议原理与配置详解:快速生成树技术的深度解析
网络·网络协议
2501_919749037 小时前
鸿蒙 Flutter 实战:video_compress 3.1.4 适配 3.27-ohos 全流程
flutter·华为·harmonyos
笨鸟飞不快9 小时前
从一次网络请求出发,彻底搞懂事件循环、I/O 多路复用与响应式编程
网络协议
h64648564h9 小时前
Flutter 国际化(i18n)全指南:一键切换中/英/日多语言
前端·javascript·flutter
缪懿13 小时前
网络层和数据链路层中的常见协议解析
网络·网络协议·java-ee
田里的水稻13 小时前
OE_永久配置网络_linux系统终端命令行ip_setting
人工智能·网络协议·机器人·运维开发
辣椒思密达13 小时前
住宅IP与机房IP的区别及技术选型指南
网络·网络协议·tcp/ip
kTR2hD1qb14 小时前
Flutter 复杂拖拽排序实战:同源排序 + 跨容器拖拽完整落地
flutter