reflutter工具实践之--xx一番赏app

此文章已经录制b站视频:

flutter逆向案例-某某一番赏_哔哩哔哩_bilibili

一、工具介绍--reFlutter

这个框架帮助 Flutter 应用逆向工程,使用 Flutter 库的补丁版本,该版本已经编译并准备好重新打包应用。此库修改了快照反序列化过程,允许您以方便的方式执行动态分析。

项目地址:ptswarm/reFlutter:Flutter 逆向工程框架 (github.com)

二、使用方式

这个其实在github项目里面有明确的使用介绍。我简单说一下步骤。以我们的某app为例。

这个里面有个sign的值,我们需要去进行处理,后来把apk后缀改成zip后 发现是个 flutter app

使用工具逆向他 这里需要挂梯子 我使用的是小猫clash 各位根据自己的代理设置即可

复制代码
pip3 install reflutter
​
D:\Android_tools\Flutter>set HTTPS_PROXY=http://127.0.0.1:7890
D:\Android_tools\Flutter>set HTTP_PROXY=http://127.0.0.1:7890
D:\Android_tools\Flutter>reflutter ru.apk

具体操作如下:

这样会生成一个

生成的 apk 必须对齐和签名 我们根据 reflutter作者给出的方式签名:

地址:Release v1.2.1 · patrickfav/uber-apk-signer (github.com)

进行签名:

复制代码
java -jar uber-apk-signer-1.2.1.jar --allowResign -a release.RE.apk

会出现:

安装这个apk安装好之后 在/data/data/

三、分析dump.dart

先用adb导出dump.dart 用vscode打开:

复制代码
D:\Android_tools\Flutter>adb pull /sdcard/Download/dump.dart
/sdcard/Download/dump.dart: 1 file pulled, 0 skipped. 113.4 MB/s (5300482 bytes in 0.045s)
​
D:\Android_tools\Flutter>

结合 上面的sign值是32位加密 我们猜测 是md5,所以我们在dump.dart中进行搜索(MD5等模糊词):

发现有个encodeMd5

那么去hook 偏移地址了。

复制代码
 //先去枚举导出
 var exports = Module.enumerateExports("libapp.so");
for(let i = 0; i < exports.length; i++){
   console.log(exports[i].name + " " + exports[i].address);
 }

hook encodeMd5偏移地址:

复制代码
var addr =  Module.findExportByName("libapp.so", "_kDartIsolateSnapshotInstructions");
​
console.log(addr); //0xb696387d
var funcAddr = addr.add(0x16beb8);
​
console.log(funcAddr); //0xb6980000
//
Interceptor.attach(funcAddr,{
    onEnter:function (args){
        this.x1 = args[1];
        console.log('args0:',hexdump(args[0]))
        console.log('args1:',args[1])
        console.log('args2:',hexdump(args[2]))
​
    },
    onLeave:function(retval) {
        console.log("--------------------")
        // console.log(Memory.readCString(this.x1));
        // console.log(Memory.readCString(retval));
        console.log('返回值:',hexdump(retval))
    }
​
})

hook结果:

四、验证结果

完结撒花!

相关推荐
youzj092511 分钟前
docker网站配置
python
snowfoootball28 分钟前
python函数及面向过程高级特性
开发语言·python
DP+GISer31 分钟前
基于站点数据进行遥感机器学习参数反演-以XGBOOST反演LST为例(附带数据与代码)试读
人工智能·python·机器学习·遥感与机器学习
工业互联网专业2 小时前
基于协同过滤算法的小说推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·协同过滤算法
星星的月亮叫太阳2 小时前
large-scale-DRL-exploration 代码阅读 总结
python·算法
Q_Q19632884752 小时前
python+django/flask基于Echarts+Python的图书零售监测系统设计与实现(带大屏)
spring boot·python·django·flask·node.js·php
深度学习lover2 小时前
<数据集>yolo航拍交通目标识别数据集<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·航拍交通目标识别
程序猿20232 小时前
Python每日一练---第二天:合并两个有序数组
开发语言·python
权泽谦3 小时前
用 Flask + OpenAI API 打造一个智能聊天机器人(附完整源码与部署教程)
python·机器人·flask
njxiejing3 小时前
Numpy一维、二维、三维数组切片实例
开发语言·python·numpy