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

此文章已经录制b站视频 另外我的星球里有许多flutter逆向案例与视频:

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

一、工具介绍--reFlutter

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

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

二、使用方式

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

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

使用工具逆向他 这里需要科学  各位根据自己的代理设置即可

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结果:

四、验证结果

完结撒花!

五、知识星球与QQ交流群   687151785 

获取特定小程序如“一番潮玩”的PHP源码并非简单直接的过程,因为大多数应用程序尤其是商业应用的源代码不会公开给公众访问。如果该程序是由某个公司开发并拥有版权,则其源代码通常受到保护而不对外提供。 对于希望学习或研究如何构建类似的一番潮玩小程序的人士来说,可以从头创建一个类似的项目来理解背后的技术栈和实现逻辑。这涉及几个方面的工作: 1. **环境搭建**:安装必要的软件包和服务端运行环境,比如LAMP (Linux, Apache, MySQL, PHP) 或者LEMP(Nginx代替Apache)[^1]。 2. **前端页面设计**:虽然问题是关于PHP源码,但是完整的Web应用也包含了HTML/CSS/JavaScript等用于呈现用户界面的部分。可以考虑采用流行的框架如Vue.js或React来进行交互式的UI开发。 3. **后端API接口编写**:利用PHP语言及其扩展库(例如PDO连接数据库),按照RESTful原则定义好各个业务功能对应的HTTP请求处理方法。下面是一个简单的例子展示怎样设置路由以及响应GET请求: ```php <?php // 假设这是index.php文件的一部分内容 require 'vendor/autoload.php'; // 如果使用composer管理依赖项的话 $app = new \Slim\App(); $app->get('/api/items', function ($request, $response, $args) { // 这里会查询数据库并将商品列表作为JSON返回给客户端 }); $app->run(); ?> ``` 4. **数据存储方案的选择与集成**:根据实际需求决定是否需要持久化某些信息到关系型数据库(MySQL),还是NoSQL解决方案(MongoDB)更合适;同时也要考虑到缓存机制(redis/memcached)以提高性能效率。 为了进一步深入探讨这个话题或者获得更加具体的指导建议,请明确说明想要了解哪一部分的具体细节或者是遇到了什么具体困难。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值