首页
社区
课程
招聘
[原创]全网首发实战flutter的算法解密(1):flutter逆向工具Doldrums和reFlutter使用分析
发表于: 2022-5-6 18:20 29001

[原创]全网首发实战flutter的算法解密(1):flutter逆向工具Doldrums和reFlutter使用分析

2022-5-6 18:20
29001

前言

最近研究flutter逆向,群里讨论抛出了两个相关的flutter开源逆向工具。

  • https://github.com/rscloura/Doldrums

  • https://github.com/Impact-I/reFlutter

抱着给大家试毒的心态,给出测评结果。是否能够逆向出来flutter。

样本准备

也不去市面找什么应用了,手动编译一个apk。加点加密算法就行

 

用的flutter版本,是一个比较新的版本

flutter_windows_2.10.4-stable

 

Doldrums使用测试

可以看到支持两个版本的

 

DartVm快照解析

 

v210和v212

注意这是dart的版本不是flutter的版本

 

配置好依赖环境之后运行main.py

 

显然报错

 

不支持快照hash为

 

d56742caf7b3b3f4bd2df93a9bbb5503

 

的快照文件解析

 

我特意去搜索了这个hash对应的dart版本是多少

 

是2.16版本的DartSdk

1
2.16.0-134.1.beta,63ca99584a1aef79722b2a7c6414570b54416bab,d56742caf7b3b3f4bd2df93a9bbb55035

结论:使用Doldrums失败,没法解析该版本的快照。

reFlutter使用测试

安装

pip3 install reflutter==0.6.6

使用

reflutter flutter_demo.apk

 

进行apk重打包操作,期间要输入bs的端口地址

 

我这里没有使用bs来抓包就无所谓了

 

然后要等相当长的一段时间

 

得到重打包的apk文件,卸载之前的重新安装

 

安装报错

1
2
3
PS G:\Flutter> adb install G:\Flutter\release.RE.apk
Performing Streamed Install
adb: failed to install G:\Flutter\release.RE.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl1908031203.tmp/base.apk: META-INF/CERT.SF indicates /data/app/vmdl1908031203.tmp/base.apk is signed using APK Signature Scheme v2, but no such signature was found. Signature stripped?]

签名问题随便找个工具新增一下

 

安装成功

逆向部分

抓包部分

配置 BurpSuite 的 代理就行 这部分不深究了,我这软件也没有发包请求。

 

按道理使用代理转发也是可以抓包成功的。

dump code

这是最让人兴奋的功能了,可以直接还原出dart代码

1
adb -d shell "cat /data/data/com.example.test.flutter_demo/dump.dart" > dump.dart

得到了一个3000kb的dart文件

 

vs打开分析可以看到大量的库类以及一些内存偏移。

 

包括code和function

 

搜索package:flutter_demo定位我们自己类

 

找到了package:flutter_demo/main.dart的相关逻辑

 

 

但是这里没有我们要的解密函数,接下来要进入so部分的逆向。

 

配合frida hook和ida分析以及dump定下来的位置去分析流程。

 

但是我们核心的加密类sec.dart文件没有在dump.dart的文件里面找到相关逻辑。我意识到这可能是该框架的一个问题。于是向作者进行交流。

 

作者确认这是个bug需要修复,但是不会那么快修复。

 

这样我们只能依赖main.dart的逻辑进行分析。

总结

这篇文章主要体验下两个框架的使用

  • Doldrums: 这个停更了,而且是基于静态的分析。不支持新版本可以不用考虑了。
    reFlutter: 值得期待的一款工具,基于重打包塞入一个重新编译的引擎文件。在动态基础上定位函数信息。目前使用问题还是很多,丢失文件信息而且没法真正全部还原方法。关键的reFlutter还在更新

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-5-29 17:42 被小黄鸭爱学习编辑 ,原因:
收藏
免费 6
支持
分享
最新回复 (26)
雪    币: 17
活跃值: (891)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
坐等更新
2022-5-6 21:51
0
雪    币: 6003
活跃值: (3490)
能力值: ( LV6,RANK:96 )
在线值:
发帖
回帖
粉丝
3
坐等更新
2022-5-7 10:35
0
雪    币: 298
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
吾爱上也是你发的嘛
2022-5-7 17:02
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MrSean 吾爱上也是你发的嘛

没有 我没有吾爱账号(密码忘了) 你有链接地址吗

最后于 2022-5-7 17:28 被小黄鸭爱学习编辑 ,原因:
2022-5-7 17:26
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
运行之后没有dump.dart文件。
版本是adf563436d12ba0d50ea5beb7f3be1bb
2022-5-9 03:49
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
wei_zzz 运行之后没有dump.dart文件。 版本是adf563436d12ba0d50ea5beb7f3be1bb
你直接去 data/data/包名 目录下找下dump.dart 文件。
2022-5-9 09:03
0
雪    币: 129
活跃值: (4505)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
很早之前在吾爱看过关于用“reFlutter 搞flutter”的文章,现在一看还以为作者修复了那bug
2022-5-9 09:46
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
小黄鸭爱学习 你直接去 data/data/包名 目录下找下dump.dart 文件。
找了,没有。
2022-5-9 22:31
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
wei_zzz 找了,没有。[em_78]
 I need to capture traffic only (Choose "No" if you also need a dump.dart) [Y/n]? n
抓包没问题,,就是没dump.dart文件
2022-5-9 23:55
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
wei_zzz I need to capture traffic only (Choose "No" if you also need a dump.dart) [Y/n]? n 抓包没问题 ...

我看了下 你这个是新版的,选择No就行。然后重签名安装到手机。

还有关键一点就是要让你那个文件 data/data/packname 文件夹权限是可读可写的

最后于 2022-5-10 10:08 被小黄鸭爱学习编辑 ,原因:
2022-5-10 10:03
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
wei_zzz I need to capture traffic only (Choose "No" if you also need a dump.dart) [Y/n]? n 抓包没问题 ...
确实有问题 他这个0.6.8 我联系下作者
2022-5-10 10:17
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
小黄鸭爱学习 确实有问题 他这个0.6.8 我联系下作者
是选的No,0.6.6我试过也不行。
2022-5-10 14:15
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
小黄鸭爱学习 wei_zzz I need to capture traffic only (Choose "No" if ...
权限也给了的
2022-5-10 14:15
0
雪    币: 165
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
0.7.0 选2 文件夹权限是可读可写, 没有dump.dart文件
2022-5-10 15:48
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
游客1519 0.7.0 选2 文件夹权限是可读可写, 没有dump.dart文件


最后于 2023-2-10 15:54 被小黄鸭爱学习编辑 ,原因:
2022-5-11 09:14
0
雪    币: 237
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17

可以看个app吗

下载地址app:

https://wwi.lanzoup.com/i78eb058t5kd

flutter的so算法解密 sign协议头 两个 noce

2022-5-25 22:37
0
雪    币: 2155
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
mb_oniqjhzq 可以看个app吗下载地址app:https://wwi.lanzoup.com/i78eb058t5kdflutter的so算法解密 sign协议头 两个 noce
有时间我可以研究下 不过我没有十足的把握分析flutter应用
2022-5-29 17:42
0
雪    币: 334
活跃值: (392)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
厉害了
2022-5-30 10:19
0
雪    币: 2380
活跃值: (583)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
牛逼
2022-6-6 17:14
0
雪    币: 32
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
小黄鸭是芥子空间的那个吗
2022-6-7 15:23
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
啥时候继续跟新啊哥
2022-6-18 03:20
0
雪    币: 167
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
啥时候继续跟新啊哥
2022-6-23 21:32
0
雪    币: 5680
活跃值: (3522)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
求更新呀
2022-11-16 14:11
0
游客
登录 | 注册 方可回帖
返回
//