返回

巧用FastHook,开启免root微信hook

Android

虽然root能为用户带来更多的权限,但也不乏安全隐患。对于微信而言,免root hook无疑是最佳选择。本文将介绍如何通过FastHook + VirtualApp实现免root hook。

揭秘FastHook

FastHook是一种无需root即可hook Android应用程序的工具。它基于Android底层的Binder机制,通过注入代码到目标进程,实现对进程的hook操作。

VirtualApp的配合

VirtualApp是一款应用虚拟化工具,能够将用户安装的应用程序创建为独立的虚拟空间。通过将FastHook安装到VirtualApp中,我们可以将微信hook到虚拟空间中,而不需要修改微信的原始代码。

具体步骤

  1. 识别Hook插件: 使用Frida识别微信的Hook插件,提取插件的包名和类名。
  2. 保存Hook插件信息: 将提取的插件信息保存在VirtualApp中,以便FastHook能够加载插件。
  3. 获取Hook插件信息进行Hook: 在FastHook中获取插件信息,对微信进行hook,实现自定义功能。

实例解析

例如,我们可以通过FastHook hook微信的com.tencent.mm.plugin.chatroom.ui.ChatroomInfoUI类,实现自定义聊天室功能。具体步骤如下:

  1. 识别Hook插件: 使用Frida识别并提取com.tencent.mm.plugin.chatroom.ui.ChatroomInfoUI类的插件信息。
  2. 保存Hook插件信息: 将插件信息保存在VirtualApp中,例如"com.example.chatroominfohook:com.example.chatroominfohook.ChatroomInfoHookPlugin"。
  3. 获取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仅适用于非商业用途。