camoufox-reverse-mcp
camoufox-reverse-mcp
MCP-сервер на базе антифингерпринт-браузера, специально разработанный для реверс-инжиниринга JavaScript.
MCP-сервер (Model Context Protocol), позволяющий ИИ-ассистентам (Claude Code, Cursor, Cline и др.) использовать антифингерпринт-браузер Camoufox для проведения операций реверс-инжиниринга на целевых сайтах: анализ параметров API, статический анализ JS-файлов, динамическая отладка с точками останова, отслеживание через перехват функций (Hook), перехват сетевого трафика, анализ байт-кода JSVMP, управление Cookie/хранилищем и многое другое.
Почему стоит выбрать Camoufox?
Характеристика | chrome-devtools-mcp | camoufox-reverse-mcp |
Браузерный движок | Chrome (Puppeteer) | Firefox (Camoufox) |
Решение для защиты | Нет | Подмена отпечатков на уровне движка C++ |
Возможности отладки | Ограничены (нет точек останова) | Playwright + JS Hook |
Анализ JSVMP | Нет | Инструментация интерпретатора + переписывание исходного кода |
Персистентность Hook | Не поддерживается | Персистентность на уровне контекста, автоперевнедрение после навигации |
Ключевые преимущества:
Camoufox модифицирует информацию об отпечатках на уровне C++, а не через патчи на уровне JS, что делает его необнаружимым в корне.
Изоляция песочницы протокола Juggler делает Playwright полностью невидимым для JS на странице.
BrowserForge генерирует отпечатки на основе статистического распределения реального трафика, а не случайным образом.
Способен стабильно работать на сайтах с сильной защитой от парсинга, таких как RS, AK, JY, CF и др.
Перехват (Hook) использует
Object.definePropertyс защитой от перезаписи, поэтому скрипты страницы не могут восстановить исходные методы.
Быстрый старт
Способ 1: Прямая установка через диалог с ИИ (рекомендуется)
Введите в диалоговом окне вашего инструмента для кодинга (Cursor / Claude Code / Codex и т.д.):
帮我安装下这个mcp工具:camoufox-reverse-mcp
项目地址:https://github.com/WhiteNightShadow/camoufox-reverse-mcpИИ автоматически выполнит все процессы: клонирование, установку зависимостей и настройку MCP-сервера.
Способ 2: Ручная установка
git clone https://github.com/WhiteNightShadow/camoufox-reverse-mcp.git
cd camoufox-reverse-mcp
pip install -e .Настройка клиента
{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": ["-m", "camoufox_reverse_mcp"]
}
}
}{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": ["-m", "camoufox_reverse_mcp", "--headless"]
}
}
}{
"mcpServers": {
"camoufox-reverse": {
"command": "python",
"args": [
"-m", "camoufox_reverse_mcp",
"--proxy", "http://127.0.0.1:7890",
"--geoip",
"--humanize"
]
}
}
}Обзор доступных инструментов (35)
Управление браузером
Инструмент | Описание |
| Запуск антифингерпринт-браузера Camoufox |
| Закрытие браузера, освобождение ресурсов |
| Навигация по указанному URL (поддерживает pre_inject_hooks, отслеживание redirect_chain) |
| Обновление страницы |
| Скриншот (поддерживает всю страницу, указанные элементы) |
| Получение дерева доступности страницы (эффективно по токенам) |
| Клик по элементу / ввод текста |
| Ожидание появления элемента или совпадения URL |
| Получение URL текущей страницы, заголовка, размеров области просмотра |
Выполнение и отладка JS
Инструмент | Описание |
| Выполнение произвольного JS-выражения в контексте страницы (многостратегический парсинг JSON) |
Анализ скриптов
Инструмент | Описание |
| Управление скриптами: |
| Поиск по ключевым словам ( |
Hook и отслеживание
Инструмент | Описание |
| Hook или отслеживание функций: |
| Внедрение предустановленных Hook в один клик (xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe) |
| Удаление всех Hook и восстановление исходных объектов |
| Получение вывода console страницы |
Сетевой анализ
Инструмент | Описание |
| Управление захватом сети: |
| Список захваченных запросов (поддерживает фильтрацию по URL / домену / методу / типу / коду состояния) |
| Получение полных деталей запроса ( |
| Получение стека вызовов JS, инициировавшего запрос |
| Перехват запроса: log / block / modify / mock / stop |
Реверс-анализ JSVMP
Таблица соответствия типа защиты → пути инструмента
Тип защиты
Пример
✅ Рекомендуемый путь
❌ Запрещено
Сигнатурный (окружение как подпись)
RS 5/6, AK sensor_data
instrumentation(action="install")
pre_inject_hooks,hook_jsvmp_interpreter(mode="proxy")Поведенческий (подпись параметров)
TK JSVMP, JY gt4
hook_jsvmp_interpreter(mode="proxy")—
Чистая обфускация
Обычные инструменты обфускации JS
Любая комбинация
—
Инструмент | Описание |
| Зонд среды выполнения JSVMP ( |
| Инструментация на уровне исходного кода: |
| Сбор отпечатков окружения браузера для сравнения с Node.js/jsdom |
Cookie и хранилище
Инструмент | Описание |
| Управление Cookie: |
| Получение localStorage / sessionStorage |
| Экспорт / импорт полного состояния браузера |
Проверка и окружение
Инструмент | Описание |
| Офлайн-проверка функции подписи: передача списка образцов, посимвольное сравнение, локализация первой точки отклонения |
| Комплексная самопроверка: версия MCP, зависимости, состояние браузера, проверка кастомной версии camoufox-reverse |
| Очистка остатков (hooks / capture / routes), без закрытия браузера |
Отслеживание свойств на уровне движка (добавлено в v1.1.0)
Требуется кастомная версия браузера camoufox-reverse. Если не установлена, возвращает ошибку, не влияя на работу других инструментов.
Инструмент | Описание |
| Отслеживание доступа к свойствам DOM на уровне движка C++ (необнаружимо для JSVMP). Поддерживает четыре вида: summary/timeline/sequence/search. |
| Список всех локальных файлов трассировки (для последующего анализа) |
| Запрос указанного исторического файла трассировки, поддерживает фильтрацию по объекту/ключевому слову |
Примеры сценариев использования
Сценарий 1: Реверс параметров подписи интерфейса входа
1. launch_browser()
2. inject_hook_preset("xhr")
3. inject_hook_preset("crypto")
4. navigate("https://example.com/login")
5. type_text("#username", "test") → click("#login-btn")
6. list_network_requests(method="POST")
7. get_request_initiator(request_id=3) ← 定位签名函数
8. search_code("sign") ← 搜索签名代码
9. hook_function("window.getSign", mode="trace")
10. reload() → get_console_logs() ← 收集追踪数据Сценарий 2: Универсальный реверс JSVMP (RS / AK / собственные VMP)
1. launch_browser()
2. network_capture(action="start")
3. navigate("https://target-site.com/")
4. list_network_requests(resource_type="script") ← 找到 VMP 脚本
5. instrumentation(action="install", url_pattern="**/vmp_target*.js", mode="ast")
6. inject_hook_preset("cookie", persistent=True)
7. instrumentation(action="reload") ← 让插桩生效
8. instrumentation(action="log", type_filter="tap_get") ← 看 VMP 读了什么环境
9. instrumentation(action="log", type_filter="tap_method") ← 看 VMP 调了什么 API
10. compare_env() ← 收集环境用于 Node.js 补齐Сценарий 3: Проверка кода протокола
1. launch_browser() → navigate("https://target.com")
2. network_capture(action="start")
3. # 触发目标操作,收集带签名的请求
4. reqs = list_network_requests(url_filter="api/search")
5. # 提取样本
6. verify_signer_offline(
signer_code="(s) => ({'X-Bogus': mySign(s.url)})",
samples=[{"id": "r1", "input": {...}, "expected": {"X-Bogus": "..."}}]
)👉 Полный список типов защиты и рабочих процессов см. в docs/JSVMP_PLAYBOOK.md
Сценарий 4: Отслеживание отпечатков окружения JSVMP на уровне движка (добавлено в v1.1.0)
1. launch_browser(enable_trace=True) ← 启动带 C++ 追踪的浏览器
2. navigate("https://www.douyin.com/video/xxx") ← JSVMP 执行,事件自动记录
3. trace_property_access(duration=0, mode="summary", collect_values=True)
→ 返回 JSVMP 实际读取的 42 个 DOM 属性、访问频次、以及真实值
→ 小值内联返回,大值(Canvas/WebGL/Cookie 等)自动保存到
~/.cache/camoufox-reverse/values/ 目录
# 按时间线查看属性访问节奏
4. trace_property_access(duration=0, mode="timeline", bucket_ms=500)
# 按对象过滤
5. trace_property_access(duration=0, filter_object="webgl")
# 搜索特定属性
6. trace_property_access(duration=0, mode="search", search_query="cookie")Отличие от compare_env:
trace_property_access: отслеживает свойства, которые JSVMP фактически считывает (точно, уровень C++, необнаружимо)compare_env: собирает все свойства окружения браузера (полный объем, уровень JS)При подмене окружения (путь B) результаты трассировки определяют, «какие свойства нужно дополнить», чтобы избежать утечек из-за избыточных дополнений.
Техническая архитектура
┌─────────────────────────────────────────────────┐
│ AI 编码助手 (Cursor / Claude) │
│ ↕ MCP (stdio) │
├─────────────────────────────────────────────────┤
│ camoufox-reverse-mcp (35 tools) │
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │Navigation│ Script │Debugging │ Hooking │ │
│ │ │ Analysis │ │ │ │
│ ├──────────┼──────────┼──────────┼──────────┤ │
│ │ Network │ JSVMP │ Cookie │ Verify │ │
│ │ Capture │ Analysis │ Storage │ Signer │ │
│ ├──────────┴──────────┴──────────┴──────────┤ │
│ │ ★ PropertyTracer (trace_property_access) │ │
│ │ C++ 引擎层 DOM 属性追踪(JSVMP 不可检测) │ │
│ └───────────────────────────────────────────┘ │
│ ↕ Playwright API │
├─────────────────────────────────────────────────┤
│ Camoufox (反指纹 Firefox, Juggler 协议) │
│ C++ 引擎级指纹伪造 · BrowserForge 真实指纹分布 │
└─────────────────────────────────────────────────┘История обновлений
v1.1.0 (2026-04-22) — Отслеживание свойств на уровне движка
Добавлено 3 инструмента, в
launch_browserдобавлен параметрenable_trace.
Новые инструменты
trace_property_access— отслеживание доступа к свойствам DOM на уровне движка C++ (необнаружимо для JSVMP), поддерживает четыре вида: summary/timeline/sequence/searchlist_trace_files— список локальных файлов трассировкиquery_trace_file— запрос исторических файлов трассировки
Изменения
В
launch_browserдобавлен параметрenable_trace, при включении автоматически внедряютсяCAMOU_CONFIGиMOZ_DISABLE_CONTENT_SANDBOXВ
check_environmentдобавлено полеcamoufox_reverseдля проверки состояния установки кастомного браузера
Зависимости
Требуется кастомная версия браузера camoufox-reverse (опционально, если не установлена, не влияет на остальные 32 инструмента)
v1.0.0 (2026-04-18) — Оптимизация инструментов + возвращение к набору инструментов для чистого JS-реверса
Мажорная версия: 80 → 32 инструмента, количество токенов схемы сокращено вдвое. Удалены системы архивов сессий/утверждений, возвращение к позиционированию как инструмента для чистого JS-реверса.
Объединение инструментов (v0.9.0)
network_capture(action=start/stop/clear/status)← start/stop_network_capturescripts(action=list/get/save)← list_scripts / get_script_source / save_scriptsearch_code(keyword, script_url=None)← search_code / search_code_in_scripthook_function(path, mode=intercept/trace)← hook_function / trace_functioninstrumentation(action=install/log/stop/reload/status)← instrument_jsvmp_source / get_instrumentation_log / stop_instrumentation / reload_with_hooks / get_instrumentation_statuscookies(action=get/set/delete)← get_cookies / set_cookies / delete_cookies
Удаленные инструменты
Система архивов сессий (7): start/stop_reverse_session, list_sessions, get_session_snapshot, attach_domain_readonly, export/import_session
Система утверждений (4): add/verify/list/remove_assertion
Неактуальные инструменты (37): trace_property_access, freeze_prototype, find_dispatch_loops, get_page_content, bypass_debugger_trap, check_detection, get_fingerprint_info, dump_jsvmp_strings, evaluate_js_handle, add_init_script, set_breakpoint_via_hook, get_breakpoint_data и др.
Новое
verify_signer_offline— проверка функции подписи без состояния (замена verify_against_session)
Исправление ошибок (v0.8.1)
evaluate_js: многостратегический парсинг JSON (очистка управляющих символов, распаковка двойного кодирования)navigate: очистка сетевого кэша по умолчанию для предотвращения загрязнения запросов между навигациямиget_network_request: параметрmax_body_sizeуправляет обрезкой тела (по умолчанию 5000)launch_browser: диагностика остаточного состояния при already_running
Удаленная зависимость: tldextract (использовалась только для сессий)
Философия дизайна: MCP — это чистый набор инструментов (stateless), он не занимается управлением рабочими процессами. Память/накопление аналитических проектов относятся к уровню навыков и рабочей области пользователя.
v0.6.0 — Исправление ошибок в реальных задачах
hook_jsvmp_interpreter(mode="proxy"): исправлена рекурсия Proxy, приводившая кtoo much recursionremove_hooks: реальное восстановление объекта Proxyevaluate_js: автоматическая очистка BOM / lone surrogate / whitespaceinstrument_jsvmp_source: предварительная проверка CSPnavigate: изящная деградация при тайм-ауте
v0.5.0 — Совместимость с сигнатурной защитой
instrument_jsvmp_sourceпо умолчанию переписывает AST на стороне MCPВ
hook_jsvmp_interpreterдобавленmode="transparent"Таблица принятия решений по типам защиты + JSVMP Playbook
v0.4.0 — Универсальная адаптация JSVMP
Инструментация на уровне исходного кода, атрибуция Cookie, зонды среды выполнения
Переписывание с многопутевым покрытием в hook_jsvmp_interpreter
v0.3.0 — Исправления стабильности
v0.2.0 — Персистентность Hook + анализ JSVMP
v0.1.0 — Начальная версия (44 инструмента)
Обратная связь / Общение
Если вы столкнулись с багами, хотите новые пресеты Hook или хотите обсудить идеи реверс-инжиниринга JS, добро пожаловать в WeChat:
WeChat ID:
han8888v8888
При добавлении в друзья, пожалуйста, укажите «camoufox-reverse» для быстрого подтверждения.
Лицензия
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhiteNightShadow/camoufox-reverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server