jshook 中文文档 下载 App

MCP 可用工具清单——JS Hook 暴露给 AI 的能力全景

工具分类

JS Hook 的 MCP 工具大致可以分成五类:

应用/系统类

工具说明
list_apps列出手机上所有已安装应用
get_app_info获取指定应用的详细信息(版本、包名、权限)
start_app启动指定应用
stop_app强制停止指定应用
get_running_apps列出当前正在运行的应用进程

类/方法查找类

工具说明
search_class在目标应用里按关键词搜索类名
list_classes列出目标应用已加载的所有类
list_methods列出指定类的所有方法
search_method按关键词搜索方法

内存操作类

工具说明
read_memory读取指定地址的内存
write_memory写入内存
search_pattern内存扫描(字节模式)
get_module_base获取 SO 库基址(普通模式或内核模式)

内核驱动类

工具说明
kernel_status查看内核驱动状态
kernel_load尝试加载内核驱动
kernel_read内核模式下读内存
kernel_write内核模式下写内存

脚本/配置类

工具说明
list_scripts列出 JsHook 已安装的脚本
add_script添加新脚本
toggle_hook开关指定应用的 Hook 服务
get_runtime_info获取 JsHook 运行时信息(版本、内核模式状态等)

示例对话

找一个类并生成 Hook 代码

你: 帮我在 com.example.app 里搜索和金币相关的类
Copilot: [调用 search_class("com.example.app", "gold")] → 找到 GoldManager
你: 列出 GoldManager 的所有方法
Copilot: [调用 list_methods("GoldManager")] → 找到 setGold(int) 方法
你: 帮我写一个脚本,每次 setGold 被调用时打印参数值
Copilot: [生成完整 Frida 脚本]

内核模式下读内存

你: 内核模式下帮我读 libil2cpp.so 基址偏移 0x1A2B3C4 处的 float 值
Copilot: 
  1. [调用 get_module_base("libil2cpp.so")] → 基址 0x7ef...
  2. [调用 kernel_read_float("0x" + base + 0x1A2B3C4)] → 值 88.5

开关 Hook 服务

你: 帮我给 com.game.app 开启 Hook 服务,启用金币脚本
Copilot: 
  1. [调用 toggle_hook("com.game.app", true)] → Hook 已开
  2. [调用 list_scripts] → 找到 gold-mod.js
  3. [调用 start_app("com.game.app")] → 应用已启动

注意事项

MCP 不自动重启目标应用

通过 MCP 开关 Hook 服务后,你仍然需要重启目标应用让注入生效。MCP 不会帮你自动重启——AI 生成的操作链可能忘了这一步。

内核模式下 Java 相关工具不可用

如果目标应用开了内核驱动模式,search_class / list_classes / list_methods 等依赖目标进程上下文的工具可能返回空或错误。此时用 runtime.isKernel 确认状态后切到 kernel 类工具。

只在开发环境用

MCP 服务暴露了 JsHook 的全部操作能力。只在本地 USB 连接或受信任的 Wi-Fi 下使用,不要把 28050 端口暴露到公网或不可信的网络里。