平头哥框架使用方法¶
1. 前提准备¶
本文章是对平头哥框架的简单总结,可快速搭建和了解平头哥 hook api
的使用方法
这里提供下参考文档及其注意事项
- 安装
android studio
- 平头哥官方文档: http://ratel-doc.virjar.com/
ratel
项目的模版: https://github.com/virjarRatel/ratel-module-template- 文中所提到的文件地址: https://github.com/runtimem/useRatel
- 平头哥初体验参考文章: https://reao.io/archives/49/
virjar
的ratel manager
成品地址:https://oss.virjar.com/minio/ratel 或 https://oss.virjar.com/minio/ratel
2. 平头哥使用示例¶
2.1. 编译 Ratel Manager¶
首先得编译一个 Ratel Manager
出来,用于对目标 app 进行二次打包和插件管理等功能。
虽说得自己编译,但渣总已经放出成品了。直接使用现成的 RatelManager_2.0-SNAPSHOT-release
直接安装即可。当然自己编译也可,请参考本文中所给参考文章。
注意事项,若出现可感染或已感染的 app
不显示,请点击框架主页的绿色界面即可重载。
2.2. 感染目标应用¶
使用 ratel
感染目标应用,并卸载重新安装感染后的 app
即可。
在 ratel
中的可感染板块中找到目标应用:
卸载并重新安装目标应用即可:
2.3. 编写 ratel 插件¶
2.3.1. 生成 ratel 插件项目z¶
使用平头哥插件开发模板 ratel-module-template,可快速生成一个插件。
生成后在 android studio
的 project
目录中显示,但如果未识别为 android
项目时,需要:
点击一个类似大象的按钮再次同步即可。就可以在项目中切换到当前生成的项目。
2.3.2. hook 目标 app¶
编写 hook app
的具体某个方法,这里以 test_rpc_all app
为例,就 hook
其中一个简单的 aes
加密方法。
jadx
中的反编译内容如下,只要 hook Test_Enc_Dec
的静态类方法 aes_enc
,然后再调用静态方法 bytesToHexString
即可得到答案:
这里不介绍如何根据平头哥 api
编写 hook
脚本的方法(平头哥插件很好编写的),后面会添加其文章。
然后在插件模板中添加具体 hook
脚本即可。
2.3.3. 安装和激活 ratel 插件¶
在 android studio
中运行此插件,即会在 app
中安装上对应的插件模块。我们需要激活此模块。
2.3.4. 运行目标 app¶
在手机上正常运行目标 app
,输入参数生成 aes
结果。然后 android studio
中即会输入对应的 hook
内容。
可看出,此结果与 2.3.2. hook 目标 app 中结果一致。
3.总结及注意事项
目前 ratel
平头哥已完全开源,但网上其参考文档还是很少,若在感染 app
时或其它使用场景有问题时,请在其 github
和 ratel 问题中心 上提交相应文件。
注意事项:
- 在修改插件重安装时,最好点击
ratel manager
主页中的绿色框框刷新重载 - 其实只要跑通插件模板中的
demoapp
和对应的crack-demoapp
插件即可 - 插件模板
gradle.properties
中最好添加android.injected.testOnly=false
来接触安装限制