x64dbg-MCP Server: 런타임 설치 없이 x64dbg를 AI 어시스턴트에 연결하는 Zig 기반 플러그인

x64dbg-MCP Server 소개

바이너리를 분석하는 작업은 대부분 손이 많이 가는 반복으로 채워집니다. 진입점에 중단점을 걸고, 몇 개의 명령을 넘기고, 레지스터를 확인하고, 특정 주소의 메모리를 덤프하고, 다시 실행합니다. 이 과정을 AI 어시스턴트에게 맡기려면 디버거를 프로그램으로 조작할 통로가 필요한데, 지금까지 그 통로를 만드는 방법은 대개 디버거 위에 파이썬이나 .NET 같은 별도 런타임을 얹는 것이었습니다. 분석 대상이 악성코드인 환경에서 분석 도구 자체의 의존성을 늘리는 선택은 부담이 됩니다.

x64dbg-MCP Server는 그 통로를 x64dbg 안에서 도는 네이티브 플러그인 하나로 만듭니다. 디버거의 기능을 HTTP 위에 MCP(Model Context Protocol) 규격으로 열어, MCP를 지원하는 어떤 AI 어시스턴트든 연결해 중단점을 걸고 코드를 단계 실행하며 메모리를 읽고 레지스터를 덤프할 수 있게 합니다. 저자는 이 플러그인을 Zig로 작성해 의존성이 없는 단일 바이너리로 만들었고, 리눅스나 macOS, WSL(Windows Subsystem for Linux)을 포함한 어떤 호스트에서든 x32와 x64 양쪽 플러그인을 한 번에 교차 컴파일할 수 있다고 밝히고 있습니다.

전송 계층은 MCP 2024-11-05 규격의 Streamable HTTP와 SSE(Server-Sent Events) 두 가지를 모두 지원하며 JSON-RPC 2.0으로 통신합니다. 최신 클라이언트와 구형 클라이언트를 모두 받아들이려는 선택이고, 실제 설정도 클라이언트 설정 파일에 HTTP 주소와 인증 헤더를 적는 것으로 끝납니다. 저장소는 x64dbg 플러그인 폴더에 파일을 넣는 것 외에 별도의 설치 절차를 요구하지 않습니다.

x64dbg-MCP Server가 기존 디버거 자동화와 다른 점

개발 도구를 MCP 서버로 감싸 에이전트에게 여는 방식은 이제 낯선 접근이 아닙니다. 브라우저 쪽에서는 Chrome DevTools MCP (:pytorch::kr: Chrome DevTools MCP: AI 코딩 에이전트를 위한 Chrome의 공식 MCP 공개 미리보기 출시)가 같은 형태로 공개되어 있습니다. x64dbg-MCP Server가 이들과 다른 점은 실행 위치와 의존성입니다:

항목 별도 프로세스 방식의 브릿지 x64dbg-MCP Server
실행 위치 디버거 바깥의 별도 프로세스 x64dbg 프로세스 주소 공간 안
디버거 접근 방식 프로세스 간 통신과 폴링 x64bridge.dllx64dbg.dll 심볼을 런타임에 해석해 직접 호출
추가 런타임 파이썬 또는 .NET 등 없음, 단일 네이티브 바이너리
아키텍처 대응 아키텍처별 별도 준비 한 번의 빌드로 x32와 x64 동시 생성

플러그인은 x64dbg가 켜질 때 함께 적재되어 백그라운드 스레드에서 HTTP 서버를 띄웁니다. MCP 클라이언트가 보낸 JSON-RPC 요청은 각각 x64dbg SDK 호출로 그대로 이어지고, 그래서 폴링도 외부 프로세스도 필요하지 않습니다.

x64dbg-MCP Server가 여는 80개 도구

노출되는 도구의 수는 원문 안에서 표기가 엇갈립니다. 기능 요약 항목은 84개, 도구 절의 첫 줄은 72개라고 적고 있는데, 실제로 도구 표에 나열된 항목은 80개이고 저장소의 src/mcp/tools.zig에 정의된 도구 이름도 80개입니다. 요약 문구가 갱신되지 않은 것으로 보이므로, 정확한 수가 필요하면 소스를 확인하는 편이 안전합니다.

80개 가운데 11개는 디버깅 세션이 없어도 항상 쓸 수 있고, 나머지 69개는 활성 디버그 세션을 요구합니다. 성격별로 묶으면 다음과 같이 여섯 갈래로 나뉩니다:

다만 갈래별 개수보다 눈여겨볼 것은 어떤 종류의 조작까지 열려 있는가입니다. DisassembleReadMemory 같은 조회 도구만 연 것이 아니라, WriteMemToAddress로 메모리를 패치하고 Assemble로 명령을 삽입하며 AllocateMemory로 대상 프로세스에 메모리를 할당하는 쓰기 계열까지 함께 열려 있습니다. 언패킹 분석에 쓰이는 DetectOEP와 원본 진입점 탐지, DumpModule을 통한 모듈 덤프처럼 악성코드 분석에서 자주 쓰이는 동작도 도구로 올라와 있습니다. 함께 제공되는 이벤트 콜백 22종은 예외와 중단점, DLL 적재와 스레드 생성 같은 디버거 사건을 클라이언트가 받아 볼 수 있게 합니다.

x64dbg-MCP Server의 인증과 네트워크 노출

이 플러그인은 디버거를 완전히 제어할 수 있는 통로를 네트워크 인터페이스 위에 여는 것이므로, 설정에서 확인해야 할 항목이 일반적인 MCP 서버보다 많습니다. 인증은 선택이 아니라 강제입니다. 최초 실행 시 베어러 토큰이 자동 생성되고 모든 요청에 그 토큰이 필요하며, 유효한 토큰이 없는 요청은 401 Unauthorized로 거절됩니다. 토큰은 설정 대화상자의 생성 버튼으로 교체할 수 있고, 설정은 x64dbg 실행 파일 옆의 mcp_config.json에 저장됩니다.

바인딩 주소는 기본값이 넓게 잡혀 있습니다. x64는 0.0.0.0:9094, x32는 0.0.0.0:9095로 뜨며, 0.0.0.0은 모든 인터페이스에서 요청을 받습니다. WSL이나 원격 장비에서 붙어야 하는 경우를 위한 기본값이므로, 한 대에서만 쓴다면 설정 대화상자에서 127.0.0.1로 바꿔 두는 편이 맞습니다. 저장소도 이 서버를 신뢰할 수 없는 네트워크에 노출하지 말라고 명시하면서, 베어러 토큰 인증이 강제되더라도 통신 자체는 암호화되지 않은 HTTP라는 점을 함께 밝히고 있습니다.

저장소는 이 도구가 정당한 리버스 엔지니어링과 악성코드 분석, 보안 연구, 교육 목적으로만 쓰이도록 의도되었다고 적고 있으며, 어떤 소프트웨어를 디버깅하거나 분석하기 전에 적절한 권한을 확보하라고 안내합니다.

x64dbg-MCP Server는 누구에게 맞는가

이미 x64dbg를 주력 디버거로 쓰면서 반복적인 조회와 단계 실행을 AI 어시스턴트에게 넘기고 싶은 윈도우 리버스 엔지니어링 분석가에게 이 플러그인이 가장 잘 맞습니다. 특히 격리된 분석 장비에 파이썬이나 .NET 런타임을 추가로 설치하기 어려운 환경이라면 단일 바이너리라는 성질이 그대로 이점이 됩니다.

반대로 디스어셈블 결과를 읽어 의미를 복원하는 정적 분석이 목적이라면 x64dbg-MCP Server는 적절한 선택지가 아닙니다. 이 플러그인이 여는 것은 실행 중인 프로세스를 다루는 동적 디버깅 기능이며, 바이너리에서 소스 수준의 의미를 되살리는 문제는 LLM4Decompile (:pytorch::kr: LLM4Decompile, LLM을 활용한 바이너리 디컴파일(decompile)에 대한 연구) 같은 다른 계열의 연구가 다루는 영역입니다. x64dbg 자체가 윈도우 전용이므로 다른 운영체제의 바이너리를 분석하는 경우에도 선택지가 되지 않습니다.

x64dbg-MCP Server 설치와 설정

배포본을 받았다면 dist/ 안의 내용을 x64dbg 루트 폴더에 복사한 뒤 x64dbg를 실행하면 됩니다. dist/의 구조가 x64dbg의 폴더 구조를 그대로 따르고 있어서, 한 번의 복사로 x32와 x64 플러그인이 각자 자리에 들어갑니다. MCP 서버는 x64dbg가 켜질 때 자동으로 시작합니다.

소스에서 직접 빌드하려면 Zig 0.16-dev 이상이 필요하며, 윈도우와 WSL, 리눅스, macOS 어디서든 빌드할 수 있습니다:

zig build -Doptimize=ReleaseSafe --prefix dist

MCP 클라이언트 설정 파일에는 다음과 같이 등록합니다. 권장되는 Streamable HTTP 방식입니다:

{
  "mcpServers": {
    "x64dbg": {
      "type": "http",
      "url": "http://localhost:9094/",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

구형 클라이언트라면 urlhttp://localhost:9094/sse로 두고 typesse로 바꾸면 됩니다. 바인딩 주소와 포트, 토큰은 x64dbg의 Plugins > x64dbg-MCP Server > Configure MCP Server... 메뉴에서 바꿀 수 있으며, 저장하면 서버가 자동으로 다시 시작되어 변경 사항이 즉시 반영됩니다.

x64dbg-MCP Server의 라이선스

x64dbg-MCP Server는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:github: x64dbg-MCP Server 프로젝트 GitHub 저장소

:wrapped_gift: x64dbg-MCP Server 배포본 내려받기

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

이 도구를 직접 설치해 사용해보셨다면, :pytorch:파이토치 한국 사용자 모임:south_korea: 회원들을 위해 경험이나 팁을 댓글로 남겨주세요! :folded_hands: