@ai-jshook/mcp 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -213
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -4,91 +4,74 @@
|
|
|
4
4
|
|
|
5
5
|
** AI-Powered JavaScript Reverse Engineering Tool**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
�?AI 助手成为你的浏览器逆向专家 | Let AI be your browser reverse engineering expert
|
|
8
8
|
|
|
9
|
-
[](https://registry.modelcontextprotocol.io/servers/io.github.
|
|
9
|
+
[](https://www.npmjs.com/package/@ai-jshook/mcp)
|
|
10
|
+
[](https://www.npmjs.com/package/@ai-jshook/mcp)
|
|
11
|
+
[](https://registry.modelcontextprotocol.io/servers/io.github.ai-jshook.mcp)
|
|
12
12
|
[](https://opensource.org/licenses/MIT)
|
|
13
13
|
[](https://nodejs.org/)
|
|
14
14
|
[](https://www.typescriptlang.org/)
|
|
15
15
|
[](https://modelcontextprotocol.io/)
|
|
16
16
|
|
|
17
|
-
[快速开始](
|
|
17
|
+
[快速开始](#快速开�? �?[核心功能](#核心功能) �?[使用场景](#使用场景) �?[文档](#文档)
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
### 从 npm 安装
|
|
23
|
+
## �?一键安�?
|
|
24
|
+
### �?npm 安装
|
|
26
25
|
|
|
27
26
|
```bash
|
|
28
|
-
# 使用 npx
|
|
29
|
-
npx jshook-reverse-tool
|
|
27
|
+
# 使用 npx(无需安装�?npx -y @ai-jshook/mcp
|
|
30
28
|
|
|
31
29
|
# 或全局安装
|
|
32
|
-
npm install -g jshook
|
|
30
|
+
npm install -g @ai-jshook/mcp
|
|
33
31
|
```
|
|
34
32
|
|
|
35
|
-
###
|
|
36
|
-
|
|
37
|
-
本工具已发布到 [MCP 官方注册表](https://registry.modelcontextprotocol.io/servers/io.github.wuji1.jshook-reverse-tool),支持 Claude Desktop 等 MCP 客户端直接发现和安装。
|
|
38
|
-
|
|
39
|
-
在支持 MCP Registry 的客户端中搜索 `jshook-reverse-tool` 即可找到并安装。
|
|
33
|
+
### �?MCP Registry 安装(推荐)
|
|
40
34
|
|
|
41
|
-
|
|
35
|
+
本工具已发布�?[MCP 官方注册表](https://registry.modelcontextprotocol.io/servers/io.github.ai-jshook.mcp),支�?Claude Desktop �?MCP 客户端直接发现和安装�?
|
|
36
|
+
在支�?MCP Registry 的客户端中搜�?`ai-jshook-mcp` 即可找到并安装�?
|
|
37
|
+
配置 Claude Desktop 后即可使�?80+ 专业逆向工具 �?[查看配置教程](#快速开�?
|
|
42
38
|
|
|
43
39
|
---
|
|
44
40
|
|
|
45
|
-
## 什么是 JSHook
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### 为什么选择 JSHook?
|
|
50
|
-
|
|
41
|
+
## 什么是 JSHook�?
|
|
42
|
+
JSHook 是一个基�?**MCP (Model Context Protocol)** �?JavaScript 逆向工程工具,通过 **80+ 个专业工�?*,让 Claude、ChatGPT �?AI 助手能够自动化完成复杂的网页分析、调试和逆向任务�?
|
|
43
|
+
### 为什么选择 JSHook�?
|
|
51
44
|
- **AI 原生设计** - 专为 AI 助手优化,自然语言即可操作
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
- **网络拦截** - 捕获所有 HTTP 请求/响应
|
|
45
|
+
- **反检测能�?* - 集成 2024-2025 最新反爬虫技�?- **深度调试** - Chrome DevTools Protocol 完整集成
|
|
46
|
+
- **网络拦截** - 捕获所�?HTTP 请求/响应
|
|
55
47
|
- **智能 Hook** - AI 自动生成 Hook 代码
|
|
56
|
-
-
|
|
57
|
-
|
|
48
|
+
- **验证码识�?* - AI 视觉识别各类验证�?
|
|
58
49
|
---
|
|
59
50
|
|
|
60
51
|
## 核心功能
|
|
61
52
|
|
|
62
|
-
### 1. 浏览器自动化 (35
|
|
63
|
-
|
|
64
|
-
完整的浏览器控制能力,从页面导航到 DOM 操作,从截图到设备模拟。
|
|
53
|
+
### 1. 浏览器自动化 (35 个工�?
|
|
65
54
|
|
|
55
|
+
完整的浏览器控制能力,从页面导航�?DOM 操作,从截图到设备模拟�?
|
|
66
56
|
```javascript
|
|
67
57
|
// 示例:自动化登录流程
|
|
68
58
|
browser_launch()
|
|
69
|
-
stealth_inject() //
|
|
70
|
-
page_navigate(url="https://example.com/login")
|
|
59
|
+
stealth_inject() // 注入反检测脚�?page_navigate(url="https://example.com/login")
|
|
71
60
|
page_type(selector="#username", text="user@example.com")
|
|
72
61
|
page_type(selector="#password", text="********")
|
|
73
62
|
page_click(selector="#loginBtn")
|
|
74
63
|
```
|
|
75
64
|
|
|
76
65
|
**亮点功能**:
|
|
77
|
-
-
|
|
78
|
-
- ✅ AI 视觉验证码识别(滑块/图形/reCAPTCHA)
|
|
79
|
-
- ✅ 智能等待和自动重试
|
|
80
|
-
- ✅ 移动设备模拟
|
|
66
|
+
- �?2024-2025 最新反检测技术(隐藏 webdriver、Canvas指纹处理�?- �?AI 视觉验证码识别(滑块/图形/reCAPTCHA�?- �?智能等待和自动重�?- �?移动设备模拟
|
|
81
67
|
|
|
82
|
-
### 2.
|
|
83
|
-
|
|
84
|
-
基于 Chrome DevTools Protocol,提供 IDE 级别的调试能力。
|
|
68
|
+
### 2. 专业调试�?(38 个工�?
|
|
85
69
|
|
|
70
|
+
基于 Chrome DevTools Protocol,提�?IDE 级别的调试能力�?
|
|
86
71
|
```javascript
|
|
87
|
-
//
|
|
88
|
-
debugger_enable()
|
|
72
|
+
// 示例:调试加密算�?debugger_enable()
|
|
89
73
|
|
|
90
|
-
// 在所有加密API
|
|
91
|
-
xhr_breakpoint_set(urlPattern="*/api/sign*")
|
|
74
|
+
// 在所有加密API调用处暂�?xhr_breakpoint_set(urlPattern="*/api/sign*")
|
|
92
75
|
event_breakpoint_set(eventName="fetch")
|
|
93
76
|
|
|
94
77
|
// 监控关键变量
|
|
@@ -96,50 +79,41 @@ watch_add(expression="window.crypto_params", name="加密参数")
|
|
|
96
79
|
|
|
97
80
|
// 等待断点命中
|
|
98
81
|
debugger_wait_for_paused()
|
|
99
|
-
get_call_stack() //
|
|
100
|
-
watch_evaluate_all() // 查看所有监控变量
|
|
101
|
-
```
|
|
82
|
+
get_call_stack() // 查看调用�?watch_evaluate_all() // 查看所有监控变�?```
|
|
102
83
|
|
|
103
84
|
**亮点功能**:
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
- ✅ Blackboxing(屏蔽第三方库)
|
|
109
|
-
- ✅ 调试会话保存/加载
|
|
85
|
+
- �?代码断点、条件断点、异常断�?- �?XHR/Fetch 断点(拦截网络请求)
|
|
86
|
+
- �?事件断点(点击、定时器、WebSocket�?- �?Watch 表达式、调用栈分析
|
|
87
|
+
- �?Blackboxing(屏蔽第三方库)
|
|
88
|
+
- �?调试会话保存/加载
|
|
110
89
|
|
|
111
|
-
### 3. 网络监控 (6
|
|
112
|
-
|
|
113
|
-
捕获和分析所有 HTTP 流量,支持请求过滤和响应解析。
|
|
90
|
+
### 3. 网络监控 (6 个工�?
|
|
114
91
|
|
|
92
|
+
捕获和分析所�?HTTP 流量,支持请求过滤和响应解析�?
|
|
115
93
|
```javascript
|
|
116
|
-
//
|
|
94
|
+
// 示例:分�?API 请求
|
|
117
95
|
network_enable()
|
|
118
96
|
page_navigate(url="https://api.example.com")
|
|
119
97
|
|
|
120
|
-
// 过滤包含 "api"
|
|
121
|
-
network_get_requests(url="api", method="POST")
|
|
98
|
+
// 过滤包含 "api" 的请�?network_get_requests(url="api", method="POST")
|
|
122
99
|
|
|
123
|
-
//
|
|
124
|
-
network_get_response_body(requestId="xxx")
|
|
100
|
+
// 查看响应�?network_get_response_body(requestId="xxx")
|
|
125
101
|
|
|
126
102
|
// 统计分析
|
|
127
103
|
network_get_stats()
|
|
128
104
|
```
|
|
129
105
|
|
|
130
106
|
**亮点功能**:
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
### 4. AI Hook 生成器 (7 个工具)
|
|
136
|
-
|
|
137
|
-
用自然语言描述需求,AI 自动生成专业的 Hook 代码。
|
|
107
|
+
- �?捕获请求头、POST 数据、响应体
|
|
108
|
+
- �?智能过滤(URL、方法、类型)
|
|
109
|
+
- �?统计分析(请求数、失败率、耗时�?
|
|
110
|
+
### 4. AI Hook 生成�?(7 个工�?
|
|
138
111
|
|
|
112
|
+
用自然语言描述需求,AI 自动生成专业�?Hook 代码�?
|
|
139
113
|
```javascript
|
|
140
114
|
// 示例:Hook Fetch API
|
|
141
115
|
ai_hook_generate({
|
|
142
|
-
description: "
|
|
116
|
+
description: "监控所�?API 请求,记�?URL 和参�?,
|
|
143
117
|
target: { type: "api", name: "fetch" },
|
|
144
118
|
behavior: {
|
|
145
119
|
captureArgs: true,
|
|
@@ -154,38 +128,29 @@ ai_hook_generate({
|
|
|
154
128
|
// 注入 Hook(必须在页面加载前)
|
|
155
129
|
ai_hook_inject(hookId="fetch-hook", method="evaluateOnNewDocument")
|
|
156
130
|
|
|
157
|
-
//
|
|
158
|
-
ai_hook_get_data(hookId="fetch-hook")
|
|
131
|
+
// 获取捕获的数�?ai_hook_get_data(hookId="fetch-hook")
|
|
159
132
|
```
|
|
160
133
|
|
|
161
|
-
|
|
162
|
-
- 🎯 函数 Hook(`btoa`, `atob`, `eval
|
|
163
|
-
|
|
164
|
-
- 🎯 对象方法(`crypto.subtle.encrypt`)
|
|
165
|
-
- 🎯 属性拦截、事件监听
|
|
166
|
-
|
|
167
|
-
### 5. 性能分析 (4 个工具)
|
|
168
|
-
|
|
169
|
-
Web Vitals 指标、代码覆盖率、内存快照。
|
|
134
|
+
**支持�?Hook 类型**:
|
|
135
|
+
- 🎯 函数 Hook(`btoa`, `atob`, `eval`�?- 🎯 API Hook(`fetch`, `XMLHttpRequest`, `WebSocket`�?- 🎯 对象方法(`crypto.subtle.encrypt`�?- 🎯 属性拦截、事件监�?
|
|
136
|
+
### 5. 性能分析 (4 个工�?
|
|
170
137
|
|
|
138
|
+
Web Vitals 指标、代码覆盖率、内存快照�?
|
|
171
139
|
```javascript
|
|
172
140
|
performance_get_metrics(includeTimeline=true)
|
|
173
|
-
performance_start_coverage() //
|
|
174
|
-
// ... 操作页面 ...
|
|
141
|
+
performance_start_coverage() // 启动覆盖率收�?// ... 操作页面 ...
|
|
175
142
|
performance_stop_coverage() // 获取未使用的代码
|
|
176
143
|
performance_take_heap_snapshot() // 内存分析
|
|
177
144
|
```
|
|
178
145
|
|
|
179
|
-
### 6.
|
|
180
|
-
|
|
181
|
-
智能管理 Token 预算和缓存,防止上下文溢出。
|
|
146
|
+
### 6. 缓存与预算管�?(6 个工�?
|
|
182
147
|
|
|
148
|
+
智能管理 Token 预算和缓存,防止上下文溢出�?
|
|
183
149
|
```javascript
|
|
184
150
|
get_token_budget_stats() // 查看 Token 使用情况
|
|
185
151
|
get_cache_stats() // 查看缓存统计
|
|
186
152
|
|
|
187
|
-
// Token
|
|
188
|
-
manual_token_cleanup() // 清理 Token
|
|
153
|
+
// Token 使用�?> 80% �?manual_token_cleanup() // 清理 Token
|
|
189
154
|
smart_cache_cleanup() // 智能清理缓存
|
|
190
155
|
```
|
|
191
156
|
|
|
@@ -195,50 +160,39 @@ smart_cache_cleanup() // 智能清理缓存
|
|
|
195
160
|
|
|
196
161
|
### 🔓 网页逆向
|
|
197
162
|
|
|
198
|
-
-
|
|
163
|
+
- 分析混淆加密�?JavaScript 代码
|
|
199
164
|
- 定位加密算法和签名生成逻辑
|
|
200
165
|
- 提取 API 请求参数
|
|
201
166
|
|
|
202
|
-
###
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- 自动处理验证码(滑块/图形/reCAPTCHA)
|
|
206
|
-
- 捕获动态加载数据
|
|
207
|
-
|
|
208
|
-
### 🛡️ 安全测试
|
|
209
|
-
|
|
210
|
-
- 漏洞挖掘和渗透测试
|
|
211
|
-
- XSS/CSRF 检测
|
|
212
|
-
- API 安全分析
|
|
167
|
+
### 🕷�?爬虫开�?
|
|
168
|
+
- 突破反爬虫检测(webdriver、Canvas指纹�?- 自动处理验证码(滑块/图形/reCAPTCHA�?- 捕获动态加载数�?
|
|
169
|
+
### 🛡�?安全测试
|
|
213
170
|
|
|
214
|
-
|
|
171
|
+
- 漏洞挖掘和渗透测�?- XSS/CSRF 检�?- API 安全分析
|
|
215
172
|
|
|
216
|
-
|
|
217
|
-
- 分析加载性能(Web Vitals)
|
|
218
|
-
- 内存泄漏检测
|
|
173
|
+
### �?性能优化
|
|
219
174
|
|
|
175
|
+
- 识别无用代码(代码覆盖率�?- 分析加载性能(Web Vitals�?- 内存泄漏检�?
|
|
220
176
|
---
|
|
221
177
|
|
|
222
|
-
##
|
|
223
|
-
|
|
178
|
+
## 快速开�?
|
|
224
179
|
### 环境要求
|
|
225
180
|
|
|
226
181
|
- **Node.js**: >= 18.0.0
|
|
227
182
|
- **操作系统**: Windows / macOS / Linux
|
|
228
|
-
- **LLM API**: OpenAI
|
|
183
|
+
- **LLM API**: OpenAI �?Anthropic API Key
|
|
229
184
|
|
|
230
185
|
### 安装方式
|
|
231
186
|
|
|
232
|
-
####
|
|
233
|
-
|
|
234
|
-
无需安装,直接配置即可使用。编辑 Claude Desktop 配置文件 `claude_desktop_config.json`:
|
|
187
|
+
#### 方式一:直接使�?npx(推荐)�?
|
|
188
|
+
无需安装,直接配置即可使用。编�?Claude Desktop 配置文件 `claude_desktop_config.json`:
|
|
235
189
|
|
|
236
190
|
```json
|
|
237
191
|
{
|
|
238
192
|
"mcpServers": {
|
|
239
193
|
"jshook": {
|
|
240
194
|
"command": "npx",
|
|
241
|
-
"args": ["-y", "jshook
|
|
195
|
+
"args": ["-y", "@ai-jshook/mcp"],
|
|
242
196
|
"env": {
|
|
243
197
|
"OPENAI_API_KEY": "sk-...",
|
|
244
198
|
"DEFAULT_LLM_PROVIDER": "openai"
|
|
@@ -251,15 +205,14 @@ smart_cache_cleanup() // 智能清理缓存
|
|
|
251
205
|
#### 方式二:全局安装
|
|
252
206
|
|
|
253
207
|
```bash
|
|
254
|
-
npm install -g jshook
|
|
208
|
+
npm install -g @ai-jshook/mcp
|
|
255
209
|
```
|
|
256
210
|
|
|
257
|
-
|
|
258
|
-
```json
|
|
211
|
+
配置文件�?```json
|
|
259
212
|
{
|
|
260
213
|
"mcpServers": {
|
|
261
214
|
"jshook": {
|
|
262
|
-
"command": "jshook-
|
|
215
|
+
"command": "ai-jshook-mcp",
|
|
263
216
|
"env": {
|
|
264
217
|
"OPENAI_API_KEY": "sk-...",
|
|
265
218
|
"DEFAULT_LLM_PROVIDER": "openai"
|
|
@@ -272,14 +225,13 @@ npm install -g jshook-reverse-tool
|
|
|
272
225
|
#### 方式三:从源码安装(开发者)
|
|
273
226
|
|
|
274
227
|
```bash
|
|
275
|
-
git clone https://github.com/
|
|
228
|
+
git clone https://github.com/715494637/jshook-reverse-tool.git
|
|
276
229
|
cd jshook-reverse-tool
|
|
277
230
|
npm install
|
|
278
231
|
npm run build
|
|
279
232
|
```
|
|
280
233
|
|
|
281
|
-
|
|
282
|
-
```json
|
|
234
|
+
配置文件�?```json
|
|
283
235
|
{
|
|
284
236
|
"mcpServers": {
|
|
285
237
|
"jshook": {
|
|
@@ -296,7 +248,7 @@ npm run build
|
|
|
296
248
|
|
|
297
249
|
### 环境变量配置
|
|
298
250
|
|
|
299
|
-
|
|
251
|
+
�?MCP 配置�?`env` 字段中设置以下变量:
|
|
300
252
|
|
|
301
253
|
**必需配置**:
|
|
302
254
|
```json
|
|
@@ -306,7 +258,7 @@ npm run build
|
|
|
306
258
|
}
|
|
307
259
|
```
|
|
308
260
|
|
|
309
|
-
|
|
261
|
+
或使�?Anthropic:
|
|
310
262
|
```json
|
|
311
263
|
{
|
|
312
264
|
"ANTHROPIC_API_KEY": "sk-ant-...", // Anthropic API Key
|
|
@@ -314,7 +266,7 @@ npm run build
|
|
|
314
266
|
}
|
|
315
267
|
```
|
|
316
268
|
|
|
317
|
-
|
|
269
|
+
**可选配�?*:
|
|
318
270
|
```json
|
|
319
271
|
{
|
|
320
272
|
"PUPPETEER_HEADLESS": "false", // 是否无头模式
|
|
@@ -326,14 +278,10 @@ npm run build
|
|
|
326
278
|
|
|
327
279
|
### 启动使用
|
|
328
280
|
|
|
329
|
-
重启 Claude Desktop,现在可以使用自然语言调用 JSHook
|
|
330
|
-
|
|
281
|
+
重启 Claude Desktop,现在可以使用自然语言调用 JSHook 的所有工具了�?
|
|
331
282
|
```
|
|
332
|
-
你:帮我分析 https://example.com
|
|
333
|
-
|
|
334
|
-
Claude:
|
|
335
|
-
1. 启动浏览器并注入反检测脚本
|
|
336
|
-
2. 访问目标网站
|
|
283
|
+
你:帮我分析 https://example.com 的加密算�?
|
|
284
|
+
Claude�?1. 启动浏览器并注入反检测脚�?2. 访问目标网站
|
|
337
285
|
3. 获取所有脚本,查找加密相关代码
|
|
338
286
|
4. 设置断点拦截加密函数调用
|
|
339
287
|
5. 分析加密逻辑...
|
|
@@ -341,52 +289,45 @@ Claude:
|
|
|
341
289
|
|
|
342
290
|
---
|
|
343
291
|
|
|
344
|
-
##
|
|
345
|
-
|
|
292
|
+
## 典型工作�?
|
|
346
293
|
### 场景 1: 分析加密算法
|
|
347
294
|
|
|
348
295
|
```
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
AI 自动执行:
|
|
352
|
-
1. browser_launch() + stealth_inject()
|
|
296
|
+
用户:帮我分�?https://api.example.com 的签名算�?
|
|
297
|
+
AI 自动执行�?1. browser_launch() + stealth_inject()
|
|
353
298
|
2. network_enable() + debugger_enable()
|
|
354
299
|
3. page_navigate("https://api.example.com")
|
|
355
|
-
4. get_all_scripts()
|
|
356
|
-
5. xhr_breakpoint_set(urlPattern="*/api/*")
|
|
357
|
-
6. watch_add("window.signParams")
|
|
358
|
-
7. 触发请求
|
|
359
|
-
8. 分析调用栈和变量
|
|
300
|
+
4. get_all_scripts() �?找到可疑脚本
|
|
301
|
+
5. xhr_breakpoint_set(urlPattern="*/api/*") �?拦截 API 请求
|
|
302
|
+
6. watch_add("window.signParams") �?监控签名参数
|
|
303
|
+
7. 触发请求 �?debugger_wait_for_paused()
|
|
304
|
+
8. 分析调用栈和变量 �?定位签名算法
|
|
360
305
|
```
|
|
361
306
|
|
|
362
|
-
### 场景 2:
|
|
363
|
-
|
|
307
|
+
### 场景 2: 验证码自动检�?
|
|
364
308
|
```
|
|
365
|
-
|
|
309
|
+
用户:访�?https://login.example.com 并告诉我是否有验证码
|
|
366
310
|
|
|
367
|
-
AI
|
|
368
|
-
1. browser_launch()
|
|
311
|
+
AI 自动执行�?1. browser_launch()
|
|
369
312
|
2. page_navigate("https://login.example.com")
|
|
370
|
-
3. captcha_detect()
|
|
371
|
-
|
|
372
|
-
4. captcha_wait(timeout=300000)
|
|
313
|
+
3. captcha_detect() �?AI 视觉识别
|
|
314
|
+
�?返回: { detected: true, type: "slider", vendor: "geetest" }
|
|
315
|
+
4. captcha_wait(timeout=300000) �?等待用户完成
|
|
373
316
|
```
|
|
374
317
|
|
|
375
318
|
### 场景 3: Hook API 调用
|
|
376
319
|
|
|
377
320
|
```
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
1. ai_hook_generate({
|
|
382
|
-
description: "监控所有 Fetch 请求",
|
|
321
|
+
用户:监控所�?Fetch 请求,记�?URL 和参�?
|
|
322
|
+
AI 自动执行�?1. ai_hook_generate({
|
|
323
|
+
description: "监控所�?Fetch 请求",
|
|
383
324
|
target: { type: "api", name: "fetch" },
|
|
384
325
|
behavior: { captureArgs: true, captureReturn: true }
|
|
385
326
|
})
|
|
386
327
|
2. ai_hook_inject(method="evaluateOnNewDocument")
|
|
387
328
|
3. page_navigate("https://target.com")
|
|
388
329
|
4. 用户操作页面...
|
|
389
|
-
5. ai_hook_get_data()
|
|
330
|
+
5. ai_hook_get_data() �?获取所有捕获的请求
|
|
390
331
|
```
|
|
391
332
|
|
|
392
333
|
---
|
|
@@ -396,35 +337,27 @@ AI 自动执行:
|
|
|
396
337
|
```
|
|
397
338
|
jshook-reverse-tool/
|
|
398
339
|
├── src/
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
│ │ ├── crypto/ # 加密检测
|
|
409
|
-
│ │ └── captcha/ # 验证码识别
|
|
410
|
-
│ ├── services/
|
|
411
|
-
│ │ └── LLMService.ts # AI 服务封装
|
|
412
|
-
│ └── utils/ # 工具函数
|
|
340
|
+
�? ├── index.ts # MCP 服务器入�?�? ├── server/
|
|
341
|
+
�? �? ├── MCPServer.ts # 主服务器�?�? �? ├── *ToolDefinitions.ts # 工具定义
|
|
342
|
+
�? �? └── *ToolHandlers.ts # 工具实现
|
|
343
|
+
�? ├── modules/ # 核心模块
|
|
344
|
+
�? �? ├── collector/ # 浏览器自动化
|
|
345
|
+
�? �? ├── debugger/ # 调试�?�? �? ├── hook/ # Hook 管理
|
|
346
|
+
�? �? ├── crypto/ # 加密检�?�? �? └── captcha/ # 验证码识�?�? ├── services/
|
|
347
|
+
�? �? └── LLMService.ts # AI 服务封装
|
|
348
|
+
�? └── utils/ # 工具函数
|
|
413
349
|
├── docs/ # 文档
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
│ └── 浏览器逆向实战教程.md # 实战案例
|
|
350
|
+
�? ├── MCP功能介绍.md # 完整功能文档
|
|
351
|
+
�? ├── 技术文�?md # 技术实现细�?�? └── 浏览器逆向实战教程.md # 实战案例
|
|
417
352
|
├── test/ # 测试用例
|
|
418
353
|
└── package.json
|
|
419
354
|
```
|
|
420
355
|
|
|
421
356
|
---
|
|
422
357
|
|
|
423
|
-
##
|
|
424
|
-
|
|
358
|
+
## 开发命�?
|
|
425
359
|
```bash
|
|
426
|
-
#
|
|
427
|
-
npm run dev
|
|
360
|
+
# 开发模式(自动重启�?npm run dev
|
|
428
361
|
|
|
429
362
|
# 构建项目
|
|
430
363
|
npm run build
|
|
@@ -432,14 +365,11 @@ npm run build
|
|
|
432
365
|
# 运行测试
|
|
433
366
|
npm test
|
|
434
367
|
|
|
435
|
-
#
|
|
436
|
-
npm run lint
|
|
368
|
+
# 代码检�?npm run lint
|
|
437
369
|
|
|
438
|
-
#
|
|
439
|
-
npm run format
|
|
370
|
+
# 格式化代�?npm run format
|
|
440
371
|
|
|
441
|
-
# 完整检查(lint + build + verify
|
|
442
|
-
npm run check
|
|
372
|
+
# 完整检查(lint + build + verify�?npm run check
|
|
443
373
|
```
|
|
444
374
|
|
|
445
375
|
---
|
|
@@ -455,15 +385,13 @@ npm run check
|
|
|
455
385
|
|
|
456
386
|
### Q: 网络监控没有捕获到请求?
|
|
457
387
|
|
|
458
|
-
**A**:
|
|
459
|
-
```javascript
|
|
388
|
+
**A**: 必须�?`page_navigate` **�?*调用 `network_enable()`,或使用�?```javascript
|
|
460
389
|
page_navigate(url="...", enableNetworkMonitoring=true)
|
|
461
390
|
```
|
|
462
391
|
|
|
463
392
|
### Q: 验证码检测失败?
|
|
464
393
|
|
|
465
|
-
**A**: 确保使用支持 Vision API 的模型(GPT-4o、Claude 3.5 Sonnet
|
|
466
|
-
|
|
394
|
+
**A**: 确保使用支持 Vision API 的模型(GPT-4o、Claude 3.5 Sonnet)。如果使用不支持视觉的模型(�?DeepSeek),会返回截图让你手动分析�?
|
|
467
395
|
### Q: Token 用完了怎么办?
|
|
468
396
|
|
|
469
397
|
**A**:
|
|
@@ -473,43 +401,33 @@ smart_cache_cleanup() // 智能清理缓存
|
|
|
473
401
|
clear_all_caches() // 完全重置(慎用)
|
|
474
402
|
```
|
|
475
403
|
|
|
476
|
-
### Q:
|
|
477
|
-
|
|
404
|
+
### Q: 如何跳过第三方库代码�?
|
|
478
405
|
**A**:
|
|
479
406
|
```javascript
|
|
480
407
|
blackbox_add_common() // 一键屏蔽常见库
|
|
481
|
-
//
|
|
482
|
-
blackbox_add(urlPattern="*jquery*")
|
|
408
|
+
// 或手动添�?blackbox_add(urlPattern="*jquery*")
|
|
483
409
|
```
|
|
484
410
|
|
|
485
411
|
---
|
|
486
412
|
|
|
487
|
-
##
|
|
488
|
-
|
|
489
|
-
|
|
413
|
+
## 安全与法�?
|
|
414
|
+
JSHook 是一�?*合法的逆向工程和安全研究工�?*�?
|
|
415
|
+
### �?合法使用场景
|
|
490
416
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
- 渗透测试授权项目
|
|
494
|
-
- 安全研究和漏洞分析
|
|
495
|
-
- CTF 竞赛和教育培训
|
|
496
|
-
- 自己网站的性能优化
|
|
417
|
+
- 渗透测试授权项�?- 安全研究和漏洞分�?- CTF 竞赛和教育培�?- 自己网站的性能优化
|
|
497
418
|
- 爬虫开发和调试
|
|
498
419
|
|
|
499
|
-
###
|
|
500
|
-
|
|
501
|
-
- 未授权的攻击和破解
|
|
502
|
-
- 大规模爬取他人数据
|
|
503
|
-
- 绕过付费墙和版权保护
|
|
420
|
+
### �?禁止用�?
|
|
421
|
+
- 未授权的攻击和破�?- 大规模爬取他人数�?- 绕过付费墙和版权保护
|
|
504
422
|
- DoS 攻击和供应链投毒
|
|
505
423
|
|
|
506
|
-
|
|
424
|
+
**使用本工具即表示你理解并遵守相关法律法规�?*
|
|
507
425
|
|
|
508
426
|
---
|
|
509
427
|
|
|
510
428
|
## 技术栈
|
|
511
429
|
|
|
512
|
-
-
|
|
430
|
+
- **运行�?*: Node.js 18+, TypeScript 5.0+
|
|
513
431
|
- **浏览器自动化**: Puppeteer, Chrome DevTools Protocol
|
|
514
432
|
- **AI 集成**: OpenAI API, Anthropic API
|
|
515
433
|
- **MCP 协议**: @modelcontextprotocol/sdk
|
|
@@ -520,22 +438,19 @@ JSHook 是一个**合法的逆向工程和安全研究工具**。
|
|
|
520
438
|
|
|
521
439
|
## 贡献
|
|
522
440
|
|
|
523
|
-
|
|
524
|
-
|
|
441
|
+
欢迎贡献代码、报告问题或提出建议�?
|
|
525
442
|
|
|
526
443
|
|
|
527
444
|
|
|
528
|
-
1. Fork
|
|
529
|
-
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
445
|
+
1. Fork 本仓�?2. 创建特性分�?(`git checkout -b feature/AmazingFeature`)
|
|
530
446
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
531
447
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
532
448
|
5. 打开 Pull Request
|
|
533
449
|
|
|
534
450
|
---
|
|
535
451
|
|
|
536
|
-
##
|
|
537
|
-
|
|
538
|
-
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
|
|
452
|
+
## 许可�?
|
|
453
|
+
本项目采�?MIT 许可�?- 详见 [LICENSE](LICENSE) 文件
|
|
539
454
|
|
|
540
455
|
---
|
|
541
456
|
|
|
@@ -544,13 +459,12 @@ JSHook 是一个**合法的逆向工程和安全研究工具**。
|
|
|
544
459
|
- [Puppeteer](https://github.com/puppeteer/puppeteer) - 浏览器自动化
|
|
545
460
|
- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - 调试协议
|
|
546
461
|
- [Model Context Protocol](https://modelcontextprotocol.io/) - AI 工具协议
|
|
547
|
-
- [Babel](https://babeljs.io/) - JavaScript
|
|
548
|
-
|
|
462
|
+
- [Babel](https://babeljs.io/) - JavaScript 编译�?
|
|
549
463
|
---
|
|
550
464
|
|
|
551
465
|
<div align="center">
|
|
552
466
|
|
|
553
|
-
|
|
467
|
+
**如果这个项目对你有帮助,请给一�?�?Star�?*
|
|
554
468
|
|
|
555
469
|
Made with ❤️ by JSHook Team
|
|
556
470
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-jshook/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "AI-powered JavaScript reverse engineering tool with 80+ MCP tools for browser automation, debugging, network monitoring, and intelligent hooking",
|
|
5
|
-
"mcpName": "io.github.
|
|
5
|
+
"mcpName": "io.github.ai-jshook.mcp",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "https://github.com/
|
|
13
|
+
"url": "https://github.com/715494637/jshook-reverse-tool.git"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/715494637/jshook-reverse-tool/issues"
|
|
17
17
|
},
|
|
18
|
-
"homepage": "https://github.com/
|
|
18
|
+
"homepage": "https://github.com/715494637/jshook-reverse-tool#readme",
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "node ./node_modules/typescript/bin/tsc",
|
|
21
21
|
"dev": "tsx watch src/index.ts",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"code-analysis"
|
|
57
57
|
],
|
|
58
58
|
"author": {
|
|
59
|
-
"name": "
|
|
60
|
-
"url": "https://
|
|
59
|
+
"name": "opooo1830",
|
|
60
|
+
"url": "https://www.npmjs.com/~opooo1830"
|
|
61
61
|
},
|
|
62
62
|
"license": "MIT",
|
|
63
63
|
"dependencies": {
|