mcpField
J
jshook-reverse

jshook-reverse

github.com/wuji66dde開発271120 回インストール37 週間前に更新
リポジトリ

jshook-reverse について

jshook-reverseは、JavaScriptのリバース解析向けコマンドラインツールです。ウェブスクリプトや暗号処理、実行時の挙動を調べるため、コード収集・難読化解除、ブラウザー制御、CDPデバッグ、ページ操作を組み合わせます。

主な機能

  1. 01ページ内スクリプトの収集と検索
  2. 02AIによる難読化解除と要約
  3. 03暗号アルゴリズムとパラメーターの検出
  4. 04CDPによるブレークポイント設定
  5. 05ブラウザー自動化とDOM検査

活用シーン

  1. 01難読化されたJavaScriptの処理を分析
  2. 02ウェブページの暗号パラメーター生成を追跡
  3. 03ページスクリプトやネットワークリクエストをデバッグ
  4. 04ブラウザー上のページ操作を自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wuji66dde/jshook-skill --skill jshook-reverse

インストール後、Claude Code で/jshook-reverseを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.env.example
package-lock.json
package.json
.gitignore
skill.json
LICENSE
src/modules/analyzer/
AISummarizer.ts
CodeAnalyzer.ts
src/modules/browser/
BrowserModeManager.ts
src/modules/collector/
CodeCache.ts
PageController.ts
SmartCodeCollector.ts
DOMInspector.ts
CodeCollector.ts
CodeCompressor.ts
src/modules/crypto/
CryptoDetectorEnhanced.ts
CryptoDetector.ts
CryptoRules.ts
src/modules/debugger/
EventBreakpointManager.ts
BlackboxManager.ts
ScriptManager.ts
DebuggerManager.ts
RuntimeInspector.ts
WatchExpressionManager.ts
XHRBreakpointManager.ts
src/modules/deobfuscator/
ASTOptimizer.ts
Deobfuscator.ts
AdvancedDeobfuscator.ts
JSVMPDeobfuscator.ts

詳細

プロジェクトの README より

JavaScript逆向工程专家

资深JavaScript逆向工程专家,精通浏览器自动化、代码分析和反混淆。

核心能力

  • 逆向工程:混淆代码分析、VM破解、Webpack解包、AST转换
  • 浏览器自动化:Puppeteer/CDP、反检测、指纹伪造
  • 加密识别:AES/RSA/MD5/SHA识别、参数提取、算法还原
  • 反爬虫绕过:Canvas/WebGL指纹、WebDriver隐藏、行为模拟
  • 调试分析:CDP调试、断点分析、动态追踪、Hook注入
  • Hook注入:函数拦截、网络监控、属性劫持、事件追踪、反调试绕过
  • 反检测伪装:Stealth脚本注入、指纹伪造、平台预设、WebDriver隐藏
  • DOM检查:元素查询、结构分析、可点击元素定位
  • 页面控制:导航、点击、输入、截图、性能监控

工作原理

所有命令通过执行 node dist/skill.js <command> [args] 来调用工具。

功能特性

  • 智能代码收集 - 支持摘要/优先级/增量模式,防止Token溢出
  • AI驱动反混淆 - 支持20+种混淆类型,自动还原代码
  • 代码语义理解 - AI辅助分析业务逻辑和加密算法
  • AI代码摘要 - 单文件/批量/项目级摘要,自动检测加密/API/混淆特征
  • 加密算法检测 - 自动识别AES/RSA/MD5/SHA和自定义算法
  • 浏览器自动化 - 自动检测和启动Chrome/Edge,支持任意盘符
  • 反检测伪装 - 16项反检测功能,5种平台预设,Canvas/WebGL/AudioContext指纹伪造
  • CDP调试器 - 完整的断点管理、执行控制、变量查看
  • 脚本管理 - 脚本列表、源码获取、模式查找、内容搜索
  • 运行时分析 - 表达式求值、作用域变量、动态追踪
  • 统计和缓存 - 完善的缓存机制和统计信息
  • 高性能 - 智能压缩、增量收集、按需加载

工具详情

代码收集
工具说明功能
collect_code智能代码收集自动收集页面内联脚本、外部脚本、动态加载脚本、智能摘要模式(防止Token溢出)、优先级模式(关键词优先)、增量模式(按需获取)
search_in_scripts搜索关键词正则表达式搜索、上下文行数控制、最大匹配数限制、高亮显示匹配结果
代码分析
工具说明功能
deobfuscateAI驱动的代码反混淆支持20+种混淆类型、变量名还原、控制流平坦化还原、字符串解密、死代码消除
understandAI辅助的代码语义理解业务逻辑分析、加密算法识别、API调用分析、数据流追踪
summarizeAI生成代码摘要单文件AI摘要生成、批量文件并发摘要、项目级摘要分析、加密/API/混淆特征检测、安全风险评估、复杂度评估和建议
detect_crypto检测和分析加密算法标准算法识别(AES/RSA/MD5/SHA)、自定义算法检测、参数提取、密钥定位
浏览器控制
工具说明功能
browser_launch启动浏览器自动检测Chrome/Edge、支持任意盘符(C-Z)、多浏览器选择、CDP远程调试连接、反检测脚本注入
browser_status获取浏览器状态连接状态、当前页面信息、CDP会话状态
browser_close关闭浏览器优雅断开连接、清理CDP会话、进程管理
调试分析
工具说明功能
debugger_control调试器控制和状态管理启用/禁用调试器、获取调试器状态、初始化高级功能、Watch表达式管理、XHR断点管理、事件断点管理
breakpoint_manager断点管理按URL设置断点、按脚本ID设置断点、条件断点支持、断点列表查看、断点删除和清除
execution_control执行控制暂停执行、继续执行、单步进入(Step Into)、单步跳过(Step Over)、单步跳出(Step Out)
runtime_evaluator运行时表达式求值在当前上下文求值表达式、访问全局变量、访问局部变量、执行任意JavaScript代码
variable_inspector变量查看和作用域分析查看当前作用域变量、查看调用帧变量、对象属性展开、变量类型识别
script_manager脚本管理和源码获取列出所有已加载脚本、获取脚本源码、按URL模式查找脚本、脚本内容搜索、支持内联和外部脚本
反检测伪装
工具说明功能
stealth_inject注入反检测脚本5种平台预设、Chrome 131+ UA字符串、隐藏navigator.webdriver、模拟window.chrome对象、Canvas/WebGL/AudioContext指纹噪声、navigator属性一致性、Permissions/Battery/MediaDevices/Notifications/NetworkInformation API模拟、document.hasFocus()覆盖、16项独立可控功能
stealth_presets平台预设管理windows-chrome (Win10+Chrome131)、mac-chrome (macOS+Chrome131)、mac-safari (macOS+Safari18.2)、linux-chrome (Linux+Chrome131)、windows-edge (Win10+Edge131)
数据管理
工具说明功能
stats获取统计信息缓存统计(文件数、大小、命中率)、压缩统计(压缩率、节省空间)、收集统计(URL数、文件数)
clear清除所有数据清除文件缓存、清除压缩缓存、重置收集状态

命令参考

代码收集与搜索
# 收集代码
collect <url>
collect <url> --smart-mode=summary
collect <url> --smart-mode=priority --priorities=encrypt,sign
collect <url> --compress --max-total-size=5000000

# 搜索脚本
search <keyword>
search "X-Bogus" --context=10
search "function.*encrypt" --regex --max-matches=50
代码分析
# AI反混淆
deobfuscate <code>

# 代码理解
understand <code>
understand <code> --focus=security

# AI摘要
summarize code <code>
summarize collected
summarize collected --batch

# 加密检测
detect-crypto <code>
浏览器控制
browser launch          # 自动检测并启动
browser status          # 查看状态
browser close           # 关闭浏览器
调试器
# 调试器控制
debugger enable
debugger disable
debugger status
debugger init-advanced  # 初始化Watch/XHR/Event/Blackbox

# 断点管理
breakpoint set-url https://example.com/app.js 100
breakpoint set-url https://example.com/app.js 100 0 'x > 10'  # 条件断点
breakpoint set-script <scriptId> <line>
breakpoint list
breakpoint remove <id>
breakpoint clear

# 执行控制
debug-step pause
debug-step resume
debug-step into         # 单步进入
debug-step over         # 单步跳过
debug-step out          # 单步跳出

# 表达式求值
debug-eval window.location.href
debug-eval document.cookie
debug-eval JSON.stringify(userData)

# 变量查看
debug-vars
debug-vars <callFrameId>
脚本管理
script list             # 列出所有已加载脚本
script get <scriptId>   # 获取脚本源码
script find *app.js     # 按URL模式查找
script search encrypt   # 搜索脚本内容
Hook注入
# 快速生成
hook generate function encryptData
hook generate fetch */api/*
hook generate xhr *sign*
hook generate property window.navigator
hook generate cookie
hook generate websocket
hook generate eval
hook generate timer

# 管理
hook list
hook remove <id>
hook enable <id>
hook disable <id>
hook clear
hook anti-debug         # 反调试绕过
hook export json
hook-data               # 查看捕获数据
hook-data <hookId>
hook-types              # 列出Hook类型
监视表达式
watch add "window.location.href" "当前URL"
watch add "userData.token"
watch list
watch evaluate          # 求值所有监视表达式
watch remove <id>
watch export
watch import <json>
watch clear
XHR断点
xhr-breakpoint set */api/*
xhr-breakpoint set *sign*
xhr-breakpoint list
xhr-breakpoint remove <id>
xhr-breakpoint clear
事件断点
event-breakpoint set click
event-breakpoint set-mouse       # 所有鼠标事件
event-breakpoint set-keyboard    # 所有键盘事件
event-breakpoint set-timer       # 定时器事件
event-breakpoint set-websocket   # WebSocket事件
event-breakpoint list
event-breakpoint remove <id>
event-breakpoint clear
脚本黑盒化
blackbox set *jquery*.js
blackbox set *node_modules/*
blackbox set-common     # 黑盒化常用库
blackbox list
blackbox remove <pattern>
blackbox clear
反检测伪装
stealth inject                          # 默认注入
stealth inject-preset windows-chrome    # 平台预设
stealth inject-preset mac-safari
stealth inject-preset mac-chrome
stealth inject-preset linux-chrome
stealth inject-preset windows-edge
stealth set-ua windows                  # 设置User-Agent
stealth presets                         # 列出预设
stealth status                          # 注入状态
stealth features                        # 列出所有功能

反检测功能(16项):

功能说明
hideWebdriver隐藏 navigator.webdriver 属性
mockChrome模拟 window.chrome 对象
canvasNoiseCanvas 会话级随机种子指纹噪声
webglVendor覆盖 WebGL 厂商和渲染器
audioNoiseAudioContext 指纹噪声
navigatorProps一致的平台/厂商/核心数/内存
permissionsAPI修复 Permissions API 检测
batteryAPI模拟 Battery API
mediaDevices模拟媒体设备
notifications模拟 Notifications API
networkInfo模拟网络信息 API
hasFocus覆盖 document.hasFocus()
DOM检查器
dom query #login-button
dom query-all .product-item 20
dom structure 3 true            # 深度3,包含文本
dom clickable 登录               # 按文本查找可点击元素
dom style #header
dom wait .loading-spinner 5000  # 等待元素出现
页面控制器
page navigate https://example.com
page reload
page back
page forward
page click #submit-button
page type #username admin
page select #country US
page hover .menu-item
page scroll 0 500
page wait-selector .result
page wait-nav
page eval document.title
page url
page title
page content
page screenshot output.png
page metrics
工具命令
stats                   # 收集和缓存统计
stats --type=cache
clear                   # 清除所有数据

逆向工程工作流

核心理念

逆向的本质:理解需求 → 定位目标 → 分析实现 → 复现逻辑

核心技巧:从结果反推过程

  • 看到加密参数 → 反推生成函数
  • 看到混淆代码 → 反推原始逻辑
  • 看到网络请求 → 反推调用链路
标准流程
1. 启动浏览器并收集
   browser launch
   collect https://target.com

2. 快速侦查
   search "encrypt"
   search "sign"
   search "token"
   detect-crypto <suspicious_code>

3. 定位目标函数
   script list
   script find *app*.js
   script search "X-Bogus"

4. 动态分析
   debugger enable
   breakpoint set-url https://target.com/app.js 1234
   xhr-breakpoint set */api/sign*
   debug-step pause → into → over
   debug-vars
   debug-eval <expression>

5. Hook监控
   hook generate function encryptData
   hook generate fetch */api/*
   hook-data

6. 反混淆与理解
   deobfuscate <obfuscated_code>
   understand <clean_code> --focus=security

7. 复现逻辑
   根据分析结果,复现加密/签名逻辑

最佳实践

  1. 使用智能摘要模式避免数据过大
  2. 优先收集关键代码(encrypt、crypto、sign)
  3. 使用增量模式按需获取
  4. 从结果反推过程,避免盲目调试
  5. 使用断点和变量查看进行动态分析
  6. 使用dom命令定位页面元素,避免盲目点击
  7. 使用page命令进行页面交互和自动化操作

环境要求

  • Node.js >= 18.0.0
  • 浏览器:Chrome 或 Edge(自动检测)
  • 依赖:puppeteer、openai 或 anthropic(AI功能)

配置

环境变量配置在 .env 文件中:

变量说明
OPENAI_API_KEYOpenAI API密钥(可选)
ANTHROPIC_API_KEYAnthropic API密钥(可选)
DEFAULT_LLM_PROVIDER默认LLM提供商(openai/anthropic)
REMOTE_DEBUGGING_PORT远程调试端口(默认9222)

故障排除

浏览器启动失败
  • 检查Chrome/Edge是否已安装
  • 检查端口9222是否被占用
  • 尝试使用外部浏览器模式
AI分析失败
  • 检查API密钥是否配置正确
  • 检查网络连接
  • 检查API配额是否充足
DOM查询失败
  • 确保浏览器已启动
  • 确保页面已加载完成
  • 检查选择器是否正确

コメント