这节 就是将frida代码翻译为Xposed 然后利用Sekiro服务进行接口调用
Xposed环境
我的测试环境是 LSPosed 它是完全兼容XP模块的 (免重启调试起来方便一点)下载后用Magisk安装即可.
模块编写可以参考这篇文章 XPosed模块编写教程
翻译代码
首先需要拦截微信进程 然后只加载一次微信插件 因为加载多次 可能就会调用多次!
Xposed代码 没有太多的坑内部做了一定转换 所以调用起来 基本上没有什么坑
由于微信是的请求都是异步的 所以需要主动调用后 然后进行异步拦截hook 存入到缓存
这样我们简单的微信视频号hook Xposed插件就完成了
接口调用
这边使用的是 sekiro
Sekiro
SEKIRO是一个多语言的、分布式、网络拓扑无关的服务发布平台,通过书写各自语言的handler将功能发布到中心API市场,业务系统通过RPC的方式使用远端节点的能力。更多介绍,请参考详细文档: https://iinti.cn/sekiro/
Sekiro是一个RPC框架 sekiro主要支持多节点的程序调用,所以他归属于RPC(Remote Procedure
Call)框架:API管理、鉴权、分布式、负载均衡、跨语言
在初始化Sekiro的时候需要初始化插件
官方提供了一个简单的handler demo
@Action("clientTime")
public class ClientTimeHandler implements RequestHandler {
@AutoBind
private String param1;
@AutoBind
private Integer sleep;
@Override
public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse) {
if (sleep != null && sleep > 0) {
try {
Thread.sleep(sleep * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
sekiroResponse.success("process: " + MyXposedInit.loadPackageParam.processName + " : now:" + System.currentTimeMillis() + " your param1:" + param1);
}
}
Action 表示执行的函数
重写 handleRequest 即可调用接口直接执行 如图
这样我们就可以把微信视频号请求的也封为一个接口
上面已经贴出调用例子 只要在handleRequest执行一下刚刚的例子 然后获取返回数据就可以了
调用一下
ok 至此在LSP上跑微信视频号 已经全部完成 接下来就是部署到生产环境~