平头哥框架使用方法¶
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来接触安装限制