mrexodia/ida-pro-mcp

AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.

해결하는 문제

이 프로젝트는 IDA Pro 디어셈블러 및 디컴파일러를 대규모 언어 모델(LLM)에 연결하는 모델 컨텍스트 프로토콜(MCP) 서버를 제공합니다. 이를 통해 "바이브 리버싱"이 가능해지며, AI 에이전트가 IDA Pro의 바이너리 데이터베이스를 인터랙티브하게 분석, 이름 변경, 주석 추가, 수정하여 리버스 엔지니어링 작업을 지원할 수 있습니다.

작동 방식

서버는 MCP 호환 클라이언트(Claude, Cursor, VS Code 등)와 IDA Pro 사이의 브리지 역할을 합니다. 주로 두 가지 모드로 작동합니다:

  1. GUI 모드: 실행 중인 IDA Pro GUI 인스턴스에 연결합니다.
  2. 헤드리스 모드: idalib를 사용하여 데이터베이스 워커를 분리된 프로세스로 관리하여, GUI 없이도 LLM이 바이너리를 열고 분석할 수 있도록 합니다.

LLM에 디컴파일, 디스어셈블리, 크로스리퍼런싱, 메모리 읽기, 어셈블리 패치, 디버거 제어 등 포괄적인 도구를 제공합니다. 또한 IDB 메타데이터, 세그먼트, 타입 정보를 탐색할 수 있는 읽기 전용 리소스도 제공합니다.

대상 사용자

변수 이름 변경, 함수 논리 문서화, 오브스큐레이트된 코드 내 패턴 식별과 같은 바이너리 분석의 반복적인 작업을 LLM을 활용해 자동화하고 싶은 리버스 엔지니어 및 보안 연구자.

주요 특징

  • 포괄적인 도구 세트: 디컴파일, 패치 적용, 타입 선언, 고급 제어 흐름 분석을 위한 도구 포함.
  • 헤드리스 분석: idalib 지원으로 스케일링 가능한 백그라운드 바이너리 분석 가능.
  • 디버거 통합: 스텝, 브레이크포인트, 레지스터 검사 등을 제어할 수 있는 선택적 확장 기능.
  • pyridazine 안전한 API: 강타입 매개변수와 배치 우선 설계로 다수의 작업을 효율적으로 처리하고, 커서 기반 페이지네이션으로 토큰 오버플로우를 줄입니다.
  • Python 실행: py_eval을 통해 LLM이 IDA 컨텍스트 내에서 임의의 Python 코드를 실행할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트