Skip to main content
Glama
WhiteNightShadow

camoufox-reverse-mcp

camoufox-reverse-mcp

중문 | 영어

안티 핑거프린팅 브라우저 기반의 MCP Server로, JavaScript 리버스 엔지니어링을 위해 특별히 설계되었습니다.

AI 코딩 어시스턴트(Claude Code, Cursor, Cline 등)가 Camoufox 안티 핑거프린팅 브라우저를 통해 대상 웹사이트에서 인터페이스 파라미터 분석, JS 파일 정적 분석, 동적 중단점 디버깅, 함수 Hook 추적, 네트워크 트래픽 가로채기, JSVMP 바이트코드 분석, 쿠키/스토리지 관리 등의 리버스 작업을 수행할 수 있게 해주는 MCP(Model Context Protocol) 서버입니다.

왜 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: AI 대화창에서 직접 설치 (권장)

AI 코딩 도구(Cursor / Claude Code / Codex 등)의 대화창에 다음을 입력하세요:

帮我安装下这个mcp工具:camoufox-reverse-mcp
项目地址:https://github.com/WhiteNightShadow/camoufox-reverse-mcp

AI가 클론, 의존성 설치, MCP Server 구성의 모든 과정을 자동으로 완료합니다.

방법 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개)

브라우저 제어

도구

설명

launch_browser

Camoufox 안티 핑거프린팅 브라우저 실행

close_browser

브라우저 종료 및 리소스 해제

navigate

지정된 URL로 이동 (pre_inject_hooks, redirect_chain 추적 지원)

reload

페이지 새로고침

take_screenshot

스크린샷 (전체 페이지, 특정 요소 지원)

take_snapshot

페이지 접근성 트리 가져오기 (토큰 효율적)

click / type_text

요소 클릭 / 텍스트 입력

wait_for

요소 나타남 또는 URL 일치 대기

get_page_info

현재 페이지 URL, 제목, 뷰포트 크기 가져오기

JS 실행 및 디버깅

도구

설명

evaluate_js

페이지 컨텍스트에서 임의의 JS 표현식 실행 (다중 전략 JSON 파싱)

스크립트 분석

도구

설명

scripts(action)

스크립트 관리: list 목록 / get 소스 코드 가져오기 / save 로컬 저장

search_code

키워드 검색 (script_url=None 시 전체 검색, URL 지정 시 단일 스크립트 검색, 압축 파일 자동 감지 및 문자 단위 컨텍스트 사용)

Hook 및 추적

도구

설명

hook_function

함수 Hook 또는 추적: mode="intercept" 코드 주입 / mode="trace" 비침습적 추적

inject_hook_preset

사전 설정된 Hook 일괄 주입 (xhr / fetch / crypto / websocket / debugger_bypass / cookie / runtime_probe)

remove_hooks

모든 Hook 제거 및 원본 객체 복구

get_console_logs

페이지 콘솔 출력 가져오기

네트워크 분석

도구

설명

network_capture(action)

네트워크 캡처 제어: start / stop / clear / status

list_network_requests

캡처된 요청 목록 (URL / 도메인 / 메서드 / 타입 / 상태 코드 필터링 지원)

get_network_request

요청 상세 정보 가져오기 (max_body_size로 본문 절단 제어)

get_request_initiator

요청을 발생시킨 JS 호출 스택 가져오기

intercept_request

요청 가로채기: 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 난독화 도구

임의 조합

도구

설명

hook_jsvmp_interpreter

JSVMP 런타임 프로브 (mode="proxy" 전체 커버 / mode="transparent" 서명 안전)

instrumentation(action)

소스 코드 레벨 계측: install 재작성 등록 / log 로그 가져오기 / stop 중지 / reload 재로드 / status 상태 확인

compare_env

브라우저 환경 핑거프린트 수집 (Node.js/jsdom과 비교용)

쿠키 및 스토리지

도구

설명

cookies(action)

쿠키 관리: get / set / delete

get_storage

localStorage / sessionStorage 가져오기

export_state / import_state

전체 브라우저 상태 내보내기 / 가져오기

검증 및 환경

도구

설명

verify_signer_offline

오프라인 서명 함수 검증: 샘플 목록을 전달하여 샘플별 문자 단위 비교, 첫 번째 편차 지점 식별

check_environment

원스톱 자가 진단: MCP 버전, 의존성, 브라우저 상태, camoufox-reverse 커스텀 버전 감지

reset_browser_state

잔여물 정리 (hooks / capture / routes), 브라우저는 닫지 않음

엔진 레이어 속성 추적 (v1.1.0 추가)

camoufox-reverse 커스텀 브라우저가 필요합니다. 설치되지 않은 경우 오류 메시지가 반환되며 다른 도구 사용에는 영향을 주지 않습니다.

도구

설명

trace_property_access

C++ 엔진 레이어 DOM 속성 접근 추적 (JSVMP 탐지 불가). summary/timeline/sequence/search 4가지 뷰 지원. duration=0은 시작 이후 모든 이벤트 읽기, duration>0은 새로운 추적 창 시작. collect_values=True는 브라우저에서 모든 속성의 실제 값을 자동으로 읽음 (큰 값은 파일로 저장)

list_trace_files

로컬의 모든 trace 파일 목록 (사후 분석용)

query_trace_file

지정된 과거 trace 파일 조회, 객체/키워드별 필터링 지원


사용 시나리오 예시

시나리오 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 추가)

camoufox-reverse 커스텀 브라우저 필요

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 환경 위장 시, trace 결과를 사용하여 "어떤 속성을 보완할지" 결정하여 과도한 보완으로 인한 새로운 유출 지점 방지


기술 아키텍처

┌─────────────────────────────────────────────────┐
│           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_browserenable_trace 파라미터 추가.

추가 도구

  • trace_property_access — C++ 엔진 레이어 DOM 속성 접근 추적 (JSVMP 탐지 불가), summary/timeline/sequence/search 4가지 뷰 지원

  • list_trace_files — 로컬 trace 파일 목록

  • query_trace_file — 과거 trace 파일 조회

변경 사항

  • launch_browserenable_trace 파라미터 추가, 활성화 시 CAMOU_CONFIGMOZ_DISABLE_CONTENT_SANDBOX 자동 주입

  • check_environmentcamoufox_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_capture

  • scripts(action=list/get/save) ← list_scripts / get_script_source / save_script

  • search_code(keyword, script_url=None) ← search_code / search_code_in_script

  • hook_function(path, mode=intercept/trace) ← hook_function / trace_function

  • instrumentation(action=install/log/stop/reload/status) ← instrument_jsvmp_source / get_instrumentation_log / stop_instrumentation / reload_with_hooks / get_instrumentation_status

  • cookies(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 recursion 수정

  • remove_hooks: Proxy 객체 완전 복구

  • evaluate_js: BOM / lone surrogate / whitespace 자동 정리

  • instrument_jsvmp_source: CSP 사전 검사

  • navigate: 타임아웃 시 우아한 성능 저하

v0.5.0 — 서명형 안티 크롤링 호환성

  • instrument_jsvmp_source 기본 MCP 측 AST 재작성

  • hook_jsvmp_interpretermode="transparent" 추가

  • 안티 크롤링 유형 결정 테이블 + JSVMP Playbook

v0.4.0 — 범용 JSVMP 적응

  • 소스 코드 레벨 계측, 쿠키 귀인, 런타임 프로브

  • hook_jsvmp_interpreter 다중 경로 커버리지 재작성

v0.3.0 — 안정성 수정

v0.2.0 — Hook 지속성 + JSVMP 분석

v0.1.0 — 초기 버전 (44개 도구)


피드백 / 교류

사용 중 버그를 발견하거나, 새로운 Hook 프리셋을 원하거나, JS 리버스 아이디어를 공유하고 싶으시면 위챗으로 연락주세요:

  • 위챗 ID: han8888v8888

친구 추가 시 「camoufox-reverse」라고 메모를 남겨주시면 빠르게 수락해 드립니다.

라이선스

MIT

Install Server
F
license - not found
A
quality
-
maintenance - not tested

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