frida 加载 sekiro dex 文件 实现与服务端交互

android 逆向 7 / 38

仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。

前言

了解的小伙伴都知道 sekiro 是一个非常好用的项目,但是官方只提供了 java xposed android js 浏览器 的使用方式
frida 就不太好实现 socket 连接,虽然 frida15 已经支持 Socket 了,但还没研究明白,最后尝试了很多种方式
还是决定使用 sekiro java 客户端最方便,简单粗暴的方式就是把 zip 打包成 dex 在加载进来
不太熟悉的可以看看我之前写的一篇文章 androidAsync + frida

sekiro zip 文件打包成 dex

先去下载 sekirozip 文件,有多种方式

1、去 maven 仓库搜索下载,链接: https://search.maven.org/

搜索 sekiro 关键词,选择 1.4 版本,点进去可以下载 jar

2、通过 android 项目依赖的方式下载 jar

这里先添加 gradle 配置,等待下载完成打开依赖包目录找到 sekiro apijar 包复制出来

下载完成后再使用 dx 命令打包成 dex 文件

dx --dex --output dexfilename jarfilename

Tips

这里有个坑,就是下载的 zip 包,只有 sekiro api 代码,没有依赖包
最后还是跑不起来,会报一些确缺失模块的错误,最后我是自己使用 maven 重新编译打包的,顺带着把依赖也一起打包了
提供一份打包好的,可以跑起来的代码,有需要自取

frida sekiro

dex 文件打包好后,传到手机里,写个代码测试一下有没有问题

function main() {
    Java.perform(function () {
        Java.openClassFile('/data/local/tmp/dexfile/sekiro-business-api-1.4-jar-with-dependencies.dex').load();
        Java.openClassFile('/data/local/tmp/dexfile/sekiro-business-api-1.4.dex').load();
    });
}

setImmediate(main);

随便打开一个自己安装的 app 执行,frida -UF -l fridaSekiro.js,没问题之后就跟文档写就行了,基本上就没啥问题了
sekiro 官网文档

demo

使用方式跟官网的都没啥区别,就是 frida 实现会复杂一点,写完 demo 后跑起来

先访问 http://127.0.0.1:5620/business-demo/groupList 查看设备列表

在访问 http://127.0.0.1:5620/business-demo/invoke?group=xposedHook_XiaoMiK30Pro&action=time 调用转发,时间戳也是正常返回结果了,代码也是没啥问题的

暂无评论
本文作者:
本文链接: https://www.qinless.com/?p=387
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 qinless 的博客!
100

发表评论

返回顶部