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

Unix/Linux > 物联网安全 文章作者:小飞侠 2020-05-22 19:15 freebuf 阅读: loading...

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文件来设置其他的默认包。

Image

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

Image

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

Image

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

Image

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

Image

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

Image

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

Image

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

Demo应用

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

项目地址

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

已获取点赞 +0

评论 点击评论