Binary Ninja MCP

by fosdickio
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

바이너리 닌자 MCP

이 저장소에는 Binary Ninja 플러그인, MCP 서버, 그리고 Binary Ninja의 기능을 사용자가 선호하는 LLM 클라이언트와 원활하게 통합할 수 있는 브리지가 포함되어 있습니다.

특징

  • Binary Ninja와 MCP 클라이언트 간의 원활한 실시간 통합
  • AI 지원을 통한 향상된 역엔지니어링 워크플로
  • MCP 클라이언트로서 Claude Desktop에 대한 기본 지원이지만 다른 통합을 위해 확장 가능

예시

이진 분석 보고서 생성

함수 이름 바꾸기

구성 요소

이 저장소에는 두 개의 별도 구성 요소가 포함되어 있습니다.

  1. HTTP 엔드포인트를 통해 Binary Ninja의 기능을 제공하는 MCP 서버를 제공하는 Binary Ninja 플러그인입니다. MCP 프로토콜을 구현하는 모든 클라이언트에서 사용할 수 있습니다.
  2. 선호하는 MCP 클라이언트를 Binary Ninja MCP 서버에 연결하는 별도의 MCP 브리지 구성 요소입니다. Claude Desktop이 기본 통합 경로이지만, MCP 서버는 다른 클라이언트와 함께 사용할 수 있습니다.

지원되는 통합

다음 표에서는 현재 Binary Ninja와 어떤 통합이 지원되는지 자세히 설명합니다.

기능설명
get_binary_status로드된 바이너리의 현재 상태를 가져옵니다.
list_classes프로그램의 모든 네임스페이스/클래스 이름을 나열합니다.
list_data_items정의된 데이터 레이블과 값을 나열합니다.
list_exports내보낸 함수/심볼을 나열합니다.
list_imports프로그램에서 가져온 심볼을 나열합니다.
list_methods프로그램의 모든 함수 이름을 나열하세요.
list_namespaces프로그램의 모든 비전역 네임스페이스를 나열합니다.
list_segments프로그램의 모든 메모리 세그먼트를 나열합니다.
rename_data지정된 주소의 데이터 레이블 이름을 바꿉니다.
rename_function현재 이름을 사용하는 함수의 이름을 사용자가 정의한 새 이름으로 변경합니다.
search_functions_by_name주어진 부분 문자열이 포함된 함수를 검색합니다.
decompile_function특정 함수를 이름으로 디컴파일하고 디컴파일된 C 코드를 반환합니다.
set_comment특정 주소에 댓글을 설정합니다.
set_function_comment함수에 대한 주석을 설정합니다.
get_comment특정 주소로 댓글을 받아보세요.
get_function_comment함수에 대한 주석을 가져옵니다.
delete_comment특정 주소의 댓글을 삭제합니다.
delete_function_comment함수에 대한 주석을 삭제합니다.

필수 조건

설치

바이너리 닌자 플러그인

Binary Ninja의 플러그인 관리자( Plugins > Manage Plugins )를 통해 플러그인을 설치할 수 있습니다.

플러그인을 수동으로 구성하려면 이 저장소를 Binary Ninja 플러그인 폴더로 복사하면 됩니다.

클로드 데스크톱 브리지(선택 사항)

이 설정은 Claude Desktop을 MCP 클라이언트로 사용하려는 경우에만 필요합니다. 먼저 가상 환경이 구성되어 있는지 확인하세요.

지엑스피1

자동 구성(Mac)

Mac에서는 다음을 실행하여 설정을 자동화할 수 있습니다.

./scripts/setup_claude_desktop.py

수동 구성

다른 운영 체제에서 또는 Claude Desktop 통합을 수동으로 구성하려면:

  1. Settings > Developer > Edit Config 으로 이동합니다.
  2. 다음 구성을 추가합니다.
{ "mcpServers": { "binary_ninja_mcp": { "command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python", "args": [ "/ABSOLUTE/PATH/TO/binary_ninja_mcp/bridge/binja_mcp_bridge.py" ] } } }

참고: /ABSOLUTE/PATH/TO 프로젝트 디렉터리의 실제 절대 경로로 바꾸세요. 설치된 종속성에 접근하려면 가상 환경의 Python 인터프리터를 사용해야 합니다.

용법

클로드 데스크탑

  1. Binary Ninja를 열고 Binary Ninja MCP 플러그인을 설치하세요.
  2. Binary Ninja를 다시 시작한 다음 바이너리를 엽니다.
  3. MCP 서버를 시작합니다( Plugins > MCP Server > Start MCP Server )
  4. Claude Desktop 실행

Claude Desktop을 열면 통합이 자동으로 사용 가능해집니다.

이제 Claude에게 현재 열려 있는 바이너리에 대한 메시지를 표시할 수 있습니다. 메시지 예시:

  • "현재 바이너리에 대한 바이너리 분석 보고서를 생성합니다."
  • "현재 바이너리에서 함수 X의 이름을 Y로 바꾸세요."
  • "현재 바이너리의 모든 함수를 나열합니다."
  • "로드된 바이너리의 상태는 무엇입니까?"

기타 MCP 클라이언트 통합

적절한 통합 계층을 구현하여 브리지를 다른 MCP 클라이언트와 함께 사용할 수 있습니다.

개발

프로젝트 구조는 다음과 같이 구성됩니다.

binary_ninja_mcp/ ├── bridge/ # MCP client integration ├── plugin/ # Binary Ninja plugin ├── scripts/ │ └── setup_claude_desktop.py # Setup script for Claude Desktop

기여하다

기여를 환영합니다. 풀 리퀘스트를 제출해 주세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Binary Ninja의 역엔지니어링 기능과 LLM 지원을 원활하게 통합할 수 있는 서버로, Claude와 같은 AI 도구가 실시간으로 바이너리 분석 기능과 상호 작용할 수 있습니다.

  1. Features
    1. Examples
      1. Generating a Binary Analysis Report
      2. Renaming Functions
    2. Components
      1. Supported Integrations
        1. Prerequisites
          1. Installation
            1. Binary Ninja Plugin
            2. Claude Desktop Bridge (Optional)
          2. Usage
            1. Claude Desktop
            2. Other MCP Client Integrations
          3. Development
            1. Contributing
              ID: 2ezqrix216