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
逆向专题。