Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
universal-flutter-ssl-pinning — 自动SSL证书绑定绕过,适用于任何Flutter和Shorebird版本 — PyGhidra静态分析自动发现BoringSSL,并生成可直接运行的Frida和Renef脚本 | Kitploit
工具/GitHubGitHub/vichhka-git/universal-flutter-ssl-pinning
静态分析动态分析 (沙盒)Web代理与拦截逆向工程渗透测试移动安全二进制分析
GitHubvichhka-git/universal-flutter-ssl-pinning

universal-flutter-ssl-pinning

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

自动SSL证书绑定绕过,适用于任何Flutter和Shorebird版本 — PyGhidra静态分析自动发现BoringSSL,并生成可直接运行的Frida和Renef脚本

查看仓库
6272个月前Kitploit 审核通过

universal-flutter-ssl-pinning

使用 PyGhidra 对 libflutter.so 进行逆向工程,定位 SSL 证书验证函数,然后生成即开即用的绕过脚本,适用于 Frida 和 Renef。

工作原理

  1. PyGhidra 以无头模式加载 libflutter.so,并扫描所有已定义的字符串,寻找 ssl_client
  2. 解析该字符串的交叉引用,定位到其所属的函数
  3. 对每个函数进行反编译,获取准确的参数个数
  4. 选择具有 3 个参数的函数——这就是 ssl_crypto_x509_session_verify_cert_chain
  5. 将其 RVA (相对虚拟地址)嵌入到以下脚本中:
    • Frida 脚本(flutter_ssl_pinning.js),在运行时将返回值篡改为 ptr(1)(SSL_VERIFY_OK)
    • Renef 脚本(flutter_ssl_pinning.lua),使用 Memory.patch 将函数入口覆盖为 MOV X0, #1 ; RET(ARM64)

要求

  • Ghidra — brew install ghidra
  • pyghidra — pip install pyghidra
  • Frida — pip install frida-tools 或 Renef — renef.io

在环境变量中设置 GHIDRA_INSTALL_DIR,或者通过 --ghidra-install-dir 参数指定。

用法

root@kitploit:~
# 分析 libflutter.so 并生成两个脚本
python3 flutter_ssl_pinning.py libflutter.so

# 使用 Frida 运行
frida -U -f com.example.app -l flutter_ssl_pinning.js

# 使用 Renef 运行
renef -s com.example.app -l flutter_ssl_pinning.lua

选项

输出文件

文件工具机制
flutter_ssl_pinning.jsFridaInterceptor.attach + retval.replace(ptr(1))
flutter_ssl_pinning.lua

请参阅 example/ 目录,查看生成的示例输出。


测试环境

目标状态
Google Flutter 的 libflutter.so (arm64-v8a)

Google Flutter 和 Shorebird 使用相同的 libflutter.so SSL 引擎。 对于相同的 Flutter 引擎版本,自动发现的 RVA 在不同构建类型中是一致的。


快速流量捕获(无需代理)

除了绕过证书绑定以进行基于代理的中间人攻击外,您还可以使用自包含的 flutter_http_monitor.py 直接在 Frida 中捕获解密的 HTTP 流量。它会自动定位 libflutter.so 中的 BoringSSL SSL_write/SSL_read(适用于任何 Flutter 版本,arm64),并生成一个 Frida 脚本,用于打印明文的请求和响应——包括重组、去除分块、gunzip 解压以及 JSON 美化打印。

root@kitploit:~
pip install capstone pyelftools

# 扫描二进制文件并生成监控脚本(也可以传递 .apk)
python3 flutter_http_monitor.py path/to/libflutter.so -o monitor.js

# 针对应用运行
frida -U -f com.target.app -l monitor.js

可选:在 Frida REPL 中实时调用 addScope('api.example.com') 以仅监控特定主机(类似 Burp 的 scope)。单文件,无需额外分发。

免责声明

本工具仅用于授权的安全研究和渗透测试。 请勿将其用于您不拥有或未获得明确书面许可的应用。

Star History Chart
下载工具
参数默认值描述
binary(必填)libflutter.so 的路径
outputflutter_ssl_pinning输出文件的基础名称(生成 <名称>.js 和 <名称>.lua)
--modulelibflutter.so目标进程中的模块名称
--ghidra-install-dir自动Ghidra 安装目录
Renef
Memory.patch(MOV X0, #1 ; RET)
✅ 可用
Shorebird 修补的 Flutter 构建✅ 可用
Ghidra 12.x + pyghidra✅ 可用
Frida 17.x 和 16.x✅ 可用
Renef(最新版)✅ 可用