栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

androidAsync fridaManager 实现某宝 sgmain 70102 rpc 远程调用

Java 更新时间:发布时间: 百科书网 趣学号
仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。 前言

使用 AndroidAsync + FridaManager 实现 frida 脚本持久化 rpc 远程调用
AndroidAsync 使用链接
FridaManager 安装教程
最后实现某宝的 sgmain 70102 调用 taobao version == 10.2.5

安装 fridaManager

下载百度网盘链接里的文件 riru-fridamanager-1.0-release.zip | FridaManage.apk
总结安装就是

  • 1、使用 Magisk 安装 riru 模块
  • 2、使用 Magisk 从本地安装 riru-fridamanager-1.0-release.zip
  • 3、安装 FridaManage.apk

最后重启手机,完事

编译 AndroidAsync

这个是一个 android 项目,需要打包成 jar 包,在转成 dex 文件,frida 里才能很方便的使用
博主 clone github 项目,编译一直失败,遇到各种问题最后也是没有解决。
最后是偷了个懒使用 android 项目,通过依赖去下载 AndroidAsync jar 包

这里添加依赖

重新加载,同步下配置文件,完成后打来这个目录

找到依赖包,复制出里面的 classes.jar 文件
使用 Android Sdk -> dx 命令,转换
这条命令在 $Android/sdk/build-tools/${sdk-version}/dx

执行 dx --min-sdk-version=30 --dex --output dex文件路径 classes.jar文件路径
完成后就可以看到生成了 androidAsync.dex 文件,执行 adb push androidAsync.dex /data/local/tmp

frida 脚本编写
function main() {
    // 加载 dex 文件
    Java.openClassFile('/data/local/tmp/androidAsync-2.2.1.dex').load();

    const HttpServerRequestCallback = Java.use('com.koushikdutta.async.http.server.HttpServerRequestCallback');

    // 构建一个默认请求
    const RequestTestCallback = Java.registerClass({
        name: "RequestTestCallback",
        implements: [HttpServerRequestCallback],
        methods: {
            onRequest: function (request, response) {
                // 主动调用代码直接写这里
                response.send(JSON.stringify({
                    "code": 0,
                    "message": " 服务已经注册成功, 默认端口8181"
                }));
            }
        }
    });

    try {
        const AsyncHttpServer = Java.use('com.koushikdutta.async.http.server.AsyncHttpServer');
        const androidAsync = AsyncHttpServer.$new();
        
        // 新增路由
        androidAsync.get('/', RequestTestCallback.$new());

        androidAsync.listen(8181);
        console.log('reg webServer Ok');

    } catch (e) {
        console.error('reg webServer Error!!!, e:' + e);
    }
}


Java.perform(function () {
    const Application = Java.use('android.app.Application');
    Application.attach.implementation = function () {
        main();
        this.attach.apply(this, arguments);
    }
});

以上就是一个 androidAsync Demo 代码,保存先使用 frida -U -f com.example.appdemo -l a.js --no-pause 启动 frida 脚本

执行后,输出了服务启动成功的 log

然后请求 手机 ip:8181 端口,正常返回结果,到这环境就搭建成功了

call sgmain 70102

参照上面的 RequestTestCallback 类,再添加一个

上图,添加了新增了一个 post 请求
执行 adb push a.js /sdcard/fridascript 把脚本,push 到手机里,稍后通过 fridaManager 持久化

frida manager

左边选中目标 app 右边选择 frida 脚本
选择完成后,重启手机,打开淘宝 app

打开后,先通过 adb shell 执行 curl http://127.0.0.1:8181/ 查看,是否成功

在写个 requests.post 请求,结果正常返回结果


更多精彩内容,源码文件下载等,原文链接,博主个人站点:http://www.qinless.com/134

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/274820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号