返回
巧用FastHook,开启免root微信hook
Android
2023-10-08 11:56:02
虽然root能为用户带来更多的权限,但也不乏安全隐患。对于微信而言,免root hook无疑是最佳选择。本文将介绍如何通过FastHook + VirtualApp实现免root hook。
揭秘FastHook
FastHook是一种无需root即可hook Android应用程序的工具。它基于Android底层的Binder机制,通过注入代码到目标进程,实现对进程的hook操作。
VirtualApp的配合
VirtualApp是一款应用虚拟化工具,能够将用户安装的应用程序创建为独立的虚拟空间。通过将FastHook安装到VirtualApp中,我们可以将微信hook到虚拟空间中,而不需要修改微信的原始代码。
具体步骤
- 识别Hook插件: 使用Frida识别微信的Hook插件,提取插件的包名和类名。
- 保存Hook插件信息: 将提取的插件信息保存在VirtualApp中,以便FastHook能够加载插件。
- 获取Hook插件信息进行Hook: 在FastHook中获取插件信息,对微信进行hook,实现自定义功能。
实例解析
例如,我们可以通过FastHook hook微信的com.tencent.mm.plugin.chatroom.ui.ChatroomInfoUI类,实现自定义聊天室功能。具体步骤如下:
- 识别Hook插件: 使用Frida识别并提取com.tencent.mm.plugin.chatroom.ui.ChatroomInfoUI类的插件信息。
- 保存Hook插件信息: 将插件信息保存在VirtualApp中,例如"com.example.chatroominfohook:com.example.chatroominfohook.ChatroomInfoHookPlugin"。
- 获取Hook插件信息进行Hook: 在FastHook中获取插件信息,并使用以下代码进行hook:
Java.perform(new Action<Java.Object[]>() {
@Override
public void call(Java.Object[] args) {
Object chatroomInfoUI = args[0];
String chatroomName = (String) Reflection.getField(chatroomInfoUI.getClass(), "chatroomName").get(chatroomInfoUI);
Log.i("FastHook", "当前聊天室:" + chatroomName);
}
});
注意事项
- VirtualApp已停止更新,仅供参考。
- FastHook可能会与微信的某些版本产生兼容性问题。
- 免root hook仅适用于非商业用途。