19

RMS-Runtime-Mobile-Security:一款针对Android Java类和方法的运行时分析工具

 3 years ago
source link: https://www.freebuf.com/articles/terminal/235742.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

fie6Vb2.jpg!web

RMS-Runtime-Mobile-Security

Runtime Mobile Security (RMS)是一款功能强大的Web接口,在它的帮助下,研究人员可以在运行时对Android Java类和方法进行分析和修改。

Runtime Mobile Security (RMS) 由 Frida 驱动,并且提供了功能强大且简单易用的Web接口,我们可以使用RMS在程序运行时轻松导出所有加载的类已经相对应的方法,并对函数设置钩子,追踪方法参数和返回值,加载自定义脚本以及其他各种实用功能。

工具信息

Runtime Mobile Security (RMS)当前仅支持Android设备,并在macOS平台上进行过测试,目前支持下列运行设备:

1、AVD模拟器;
2、Genymotion模拟器;
3、Amazon Fire Stick 4K;

理论上该工具也能够在Windows以及Linux平台上运行,但还需要配置一些其他的依赖组件。

工具依赖

Runtime Mobile Security (RMS)的正常使用要求在目标设备上开启和运行Frida服务器。

关于Frida服务器的安装和配置,请参考Frida官方文档:【 传送门 】。

工具安装

1、(可选)创建一个Python虚拟环境。

2、然后运行下列命令将项目源码克隆至本地:

git clone https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security.git

3、然后运行下列代码安装工具依赖组件:

pip3 install -r requirements.txt

4、使用下列命令运行Runtime Mobile Security (RMS):

python3 mobilesecurity.py

工具使用

第一步:通过输入应用包名来运行你的目标App。

请注意,RMS会绑定一个名叫 com.android.systemui 的持久化进程来获取已加载进内存中的所有类(在运行目标App之前)。当然了,你也可以通过Config标签页或编辑 config.json 文件来设置其他的默认包。

YBrARvn.gif

第二步:检测已加载进内存中的类和方法。

3eeieev.gif

第三步:实施挂钩类/方法,并追踪相应参数以及返回值。

iUjmea6.gif

第四步:搜索堆中特定的类实例以及调用的方法。

iUjmea6.gif

第五步:选择一个类,并针对所有的方法动态生成钩子模板。

JFFVV3e.gif

第六步:检测已加载进内存的新增类。

Qz2euua.gif

第七步:动态注入Frida自定义脚本。

n6rUFrm.gif

你可以选择在 custom_script 文件夹中添加自定义的 .js 文件,这些脚本将会自动加载进Web接口中并随时可以执行。

Demo应用

RootBeer Sample 是一个能够演示RMS工作机制的样例App。RootBeer是一款root检测库,我打算将其作为一个样例应用来演示RMS,它可以作为客户端检测实例,其root检测逻辑的绕过可以在不需要服务器端验证的情况下实现。

项目地址

Runtime Mobile Security (RMS):【 GitHub传送门

*参考来源: m0bilesecurity ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK