平头哥 Retal + 只狼 Sekiro 实现 Rpc¶
前言¶
本文用于介绍
frida rpc
的另一种实现方式,可以先了解平头哥框架和只狼框架的相关文章再尝试复现此文章。
本文章是在平头哥插件的基础上结合只狼框架来实现 rpc 的效果,所以先自行查看平头哥插件的编写教程。
这里先只放上简要流程,后面会补充详细过程。
1. 前提准备¶
需要提前做好环境和相关依赖库的配置!
- 安装
android studio
- 平头哥官方文档: http://ratel-doc.virjar.com/
ratel
项目的模版: https://github.com/virjarRatel/ratel-module-template- 平头哥初体验参考文章: https://reao.io/archives/49/
virjar
的ratel manager
成品地址:https://oss.virjar.com/minio/ratel 或 https://oss.virjar.com/minio/ratel
2. 实现步骤¶
2.1. 给平头哥插件网络权限¶
准备一个平头哥插件,这里为 crack-testrpcall
项目。先要给它个网络权限。
2.2. 添加依赖¶
2.3. 创建对应的 hadlers package¶
添加 ClientTimeHandler
的 hadlers
,用来接收 classloader
。添加 action
来绑定具体的调用,这里为 clientTime
,正常在实现的 RequestHandler
的 handleRequest
方法中添加要 hook
传参和发送结果的功能。
2.4. 创建 sekiro 包¶
用来创建 SekiroClient
来建立 sekiro
的通信功能。此为 hook
的入口类,当运行目标 app
时创建通信的基础配置。
2.5. 安装后,感染¶
这里为 Ratel
的简单使用,不再说。
2.6. 调用 sekiro api¶
通过 sekiro api
来测试 sekiro
服务是否搭建成功。
3. 总结¶
- 可以尝试去
rpc
实现其它的app
的so
实现,这里不再赘述,不是本文考虑的问题,可以看看我的app
逆向专题。 - frida + sekiro 实现 rpc 的参考文章
- qin 佬使用 sekiro 实现 rpc 的参考文章