某猫投诉 flutter Signature 逆向

前言

直接说了是 flutter了 那就不必多说了。

先介绍下 什么是flutter。 这里我直接把AI的回复粘贴过来了。

Flutter 是谷歌开发的一套 UI 工具包,让你只写一份代码,就能同时为 iOS、Android、Web 和桌面等多个平台创建美观、高性能的应用。

1、“万物皆 Widget”: Flutter 中所有界面元素,包括按钮、文本和布局,甚至应用本身,都是“Widget”(小部件)。它们可以像积木一样组合起来构建复杂的界面。

2、自带渲染引擎(Skia): Flutter 不依赖操作系统原生的 UI 组件,而是通过自带的高性能图形引擎 Skia 直接将所有 Widget 绘制到屏幕上。这样可以实现极高的渲染速度和流畅的用户体验。

3、Dart 语言: Flutter 使用 Dart 语言开发。

  • AOT 编译: 发布时,Dart 代码会被直接编译成机器码,使应用运行速度极快,性能接近原生。
  • JIT 编译 + 热重载: 开发时,Dart 支持即时编译和“热重载”功能,开发者修改代码后能立即看到效果,大大提高了开发效率。

4、响应式 UI: Flutter 采用声明式 UI 编程。你只需描述界面“长什么样”,而不用关心“如何更新”,当数据变化时,Flutter 会自动高效地更新界面。

libflutter.so ===> libapp.so

那这里 AI介绍了 flutter的特点。

再补充几点

1、flutter是由Dart开发

2、 Flutter被编译出来其实就是个So文件

3、So文件无函数名。基本都是sub_开头,也无JNI绑定方法。

4、执行是由flutter.so执行

抓包

抓包可知。需要逆向的参数 是这个 signautre

这里Java层找不到

IDA配置

这里 flutter 反编译 全是一sub 函数。几万个。找不到

这里使用blutter去做一个函数名还原。

解压 app 把 libflutter.so 以及 libapp.so 拿出来。

下载完Blutter。

这里我是Mac

使用如下命令

两个版本

macOS Sequoia

  • Install XCode
  • Install required tools
1
2
brew install cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests

macOS Ventura and Sonoma (clang 16)

  • Install XCode
  • Install clang 16 and required tools
1
2
brew install llvm@16 cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests

然后执行下述命令

python3 blutter.py ./arm64 ./output

如下图位置 即可。

直接讲ida中还原变量名。

把这个py文件拖进去

中间有错误不用管。然后就发现

诶。变量名都还原了。

具体分析

这里其实我搞过web的 知道这个signature 是 sha256

这里直接搜索 sha256

当然可以把这个Allocate,以及flutter 开头的过滤掉。

这里点开第一个

直接找他函数地址 Hook一下就好了

这里直接对比。

对比

最后发现是由这段加密而成。

结果一模一样

看着唬人 实则非常简单。

具体结果

最后还需要一点小小改动。


某猫投诉 flutter Signature 逆向
https://hybpjx.cn/2025/08/15/某猫投诉-flutter-Signature-逆向/
作者
hybpjx
发布于
2025年8月15日
许可协议