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에 대한 기본 지원이지만 다른 통합을 위해 확장 가능
예시
이진 분석 보고서 생성
함수 이름 바꾸기
구성 요소
이 저장소에는 두 개의 별도 구성 요소가 포함되어 있습니다.
- HTTP 엔드포인트를 통해 Binary Ninja의 기능을 제공하는 MCP 서버를 제공하는 Binary Ninja 플러그인입니다. MCP 프로토콜을 구현하는 모든 클라이언트에서 사용할 수 있습니다.
- 선호하는 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 | 함수에 대한 주석을 삭제합니다. |
필수 조건
- 바이너리 닌자
- 파이썬 3.12+
- Claude Desktop (또는 선호하는 통합)
설치
바이너리 닌자 플러그인
Binary Ninja의 플러그인 관리자( Plugins > Manage Plugins
)를 통해 플러그인을 설치할 수 있습니다.
플러그인을 수동으로 구성하려면 이 저장소를 Binary Ninja 플러그인 폴더로 복사하면 됩니다.
클로드 데스크톱 브리지(선택 사항)
이 설정은 Claude Desktop을 MCP 클라이언트로 사용하려는 경우에만 필요합니다. 먼저 가상 환경이 구성되어 있는지 확인하세요.
지엑스피1
자동 구성(Mac)
Mac에서는 다음을 실행하여 설정을 자동화할 수 있습니다.
수동 구성
다른 운영 체제에서 또는 Claude Desktop 통합을 수동으로 구성하려면:
Settings > Developer > Edit Config
으로 이동합니다.- 다음 구성을 추가합니다.
참고: /ABSOLUTE/PATH/TO
프로젝트 디렉터리의 실제 절대 경로로 바꾸세요. 설치된 종속성에 접근하려면 가상 환경의 Python 인터프리터를 사용해야 합니다.
용법
클로드 데스크탑
- Binary Ninja를 열고
Binary Ninja MCP
플러그인을 설치하세요. - Binary Ninja를 다시 시작한 다음 바이너리를 엽니다.
- MCP 서버를 시작합니다(
Plugins > MCP Server > Start MCP Server
) - Claude Desktop 실행
Claude Desktop을 열면 통합이 자동으로 사용 가능해집니다.
이제 Claude에게 현재 열려 있는 바이너리에 대한 메시지를 표시할 수 있습니다. 메시지 예시:
- "현재 바이너리에 대한 바이너리 분석 보고서를 생성합니다."
- "현재 바이너리에서 함수 X의 이름을 Y로 바꾸세요."
- "현재 바이너리의 모든 함수를 나열합니다."
- "로드된 바이너리의 상태는 무엇입니까?"
기타 MCP 클라이언트 통합
적절한 통합 계층을 구현하여 브리지를 다른 MCP 클라이언트와 함께 사용할 수 있습니다.
개발
프로젝트 구조는 다음과 같이 구성됩니다.
기여하다
기여를 환영합니다. 풀 리퀘스트를 제출해 주세요.
This server cannot be installed
Binary Ninja의 역엔지니어링 기능과 LLM 지원을 원활하게 통합할 수 있는 서버로, Claude와 같은 AI 도구가 실시간으로 바이너리 분석 기능과 상호 작용할 수 있습니다.