Arida Frida Rpc 工具介绍¶
前言¶
本文用于介绍
frida rpc的其中一个较简单的实现方式,至于为什么简单还写个文章,是因为官方文档过于简洁,网上资料的相对较少或过于麻烦,按照其教程大概率会掉入坑里,所以有了这篇文章。
目前比较流行的 frida rpc 方案及简要说明
- 平头哥结合
sekiro之类的实现- 优点:手机不用 root,插件修改不用重启手机等,建议查看官方文档说明。
xposed插件之类实现- 优点:相对稳定
Arida之类的实现- 优点:项目中使用的都是
js,python的胶水语言,编写快速,两分钟即可搭建。
- 优点:项目中使用的都是
其实以上的各种实现的优缺点都是相对而言的。
在遇到过于复杂 so 逻辑时,且需要快速开发时,可根据应用场景选择具体某个方式实现即可。
以后会添加平头哥 rpc 的实现方式说明。
1. 前提准备¶
需要提前做好环境和相关依赖库的配置!
- arida github 地址,下载其
arida代码 - frida github 地址,下载
frida及对应版本的frida-server - 安装
arida环境需要的nodejs相关支持库python v3.8+,其依赖库在requirement.txt中查看nodejs v12+,也需要安装其依赖库
2. 实现步骤¶
以下为
arida工具实现rpc的具体步骤
2.1. 完成前提准备¶
这里是对前提准备中的详细说明
将 1. 前提准备 中的内容提前做好。
推荐使用新建的虚拟环境,以免对原有环境的影响,至于使用 conda,还是 virtualenv-wrapper 或 pipenv 等就看自己使用习惯,不限制。
网上其它的教程一般使用的是 Ubuntu 之类的虚拟机,确实 linux 虚拟机会很方便也会少些坑,我也成功尝试过,不过还是 windows 或 mac 实机比较香。以下为 windows 实机演示。
requirements.txt 中的 py 依赖库如下:
nodejs 依赖库:
2.2. 启动 frida_server¶
启动对应的 fs,记得加上其执行权限。

2.3. 启动被注入的 app¶
这里以简单的 aes 加密为示例:

2.4. arida 相关配置¶
2.4.1. 编写 arida 相关脚本¶
可以根据 arida 的项目目录,然后修改对应的 config.py 和 apps 目录下的 hook js 脚本即可。
这里不详细讲如何编写 frida hook js 的脚本编写,具体请看 frida 高级 api 食用方法(一) 中的详细介绍
config 配置示例:
hook js 脚本内容:
hook js 的脚本名称要与 config 中的 path 值一致!
2.4.2. 启动 arida¶
进入 arida 安装目录,并启动 arida:

2.4.3. 测试 arida 运行结果¶
可以看出 arida 的 rpc 结果和 2.3. 启动被注入的 app 的图中的结果一致。

3. 总结¶
- 其实如果整体过程没有遇到坑的话,整体搭建耗时不用 2 分钟。
- 可以尝试用
rpc实现其它的app的so实现,这里不再赘述,不是本文考虑的问题,可以看看我的app逆向专题。