buzzer-re/Rikugan
A reverse-engineering agent for IDA Pro and Binary Ninja
Rikugan (육안) – AI 기반 리버스 엔지니어링 어시스턴트
소개 – Rikugan은 IDA Pro 또는 Binary Ninja 내에서 실행되는 플러그인/에이전트입니다. 대규모 언어 모델(LLM)을 디스어셈블러 UI에 직접 내장하여 모델과 대화하며 분석 작업을 수행할 수 있습니다. LLM은 추론 엔진으로 사용되며, Rikugan은 60개 이상의 내장 "도구"(예: 함수 이동, 교차 참조 쿼리, 디컴파일, 유형 편집, 스크립트 실행)를 오케스트레이션하여 사용자를 대신해 호출합니다.
작동 방식 –
- 에이전트는 생성기 기반 턴 루프를 실행합니다. 사용자 메시지가 스트리밍된 LLM 응답을 트리거하고, 모델이 tool-call 토큰을 출력하면 Rikugan이 이를 가로채어 해당 내부 도구를 실행한 뒤 결과를 모델에 피드백합니다.
- 오케스트레이터는 먼저 바이너리(임포트, 익스포트, 문자열, 주요 함수)를 매핑하고, 병렬로 작동하는 격리된 하위 에이전트를 생성하여 나중에 결과를 병합할 수 있습니다.
- 컨텍스트(함수 목록, 디컴파일러 출력, IL 등)가 모델에 제공되어 바이너리에 대해 추론할 수 있으며, 에이전트는 데이터베이스 옆의
RIKUGAN.md파일에 메모를 영구적으로 저장할 수 있습니다.
주요 기능
| 기능 | 내용 |
|---|---|
| 60개 이상의 분석 도구 | 내비게이션, 디컴파일러 쿼리, 문자열 추출, 유형 주석, IL/마이크로코드 편집, 스크립트 실행 등. 모든 도구는 실행 전 사용자의 명시적 승인이 필요합니다. |
| 자연어 패치 (실험적) | 평이한 영어로 변경 사항을 설명(/modify …)하면 Rikugan이 관련 코드를 찾아 패치를 생성하고 적용합니다. |
| 난독화 해제 (실험적, Binary Ninja 전용) | 제어 흐름 평탄화, 불투명 술어, MBA, 정크 코드를 감지하고 IL 쓰기를 통해 제거하는 전용 스킬. 일반적인 수동 난독화 해제 시간을 약 3배 단축합니다. |
| 병렬 하위 에이전트 | 오케스트레이터는 여러 격리된 에이전트를 실행하여 바이너리의 다른 부분을 동시에 탐색하고 통합 보고서를 작성할 수 있습니다. |
| 프로필 | LLM이 읽을 수 있는 데이터와 호출할 수 있는 도구에 대한 세밀한 구성 및 사용자 정의 규칙 정의. |
| LLM 제공자 독립적 | Anthropic Claude, MiniMax, Gemini, Kimi, 오픈 소스 모델(LLAMA-70B, GPT-120B), 모든 OpenAI 호환 엔드포인트 및 로컬 Ollama 서버에서 작동합니다. |
| MCP 통합 | Claude Code의 MCP 생태계 스킬과 서버를 재사용할 수 있지만, 외부 MCP 클라이언트에 의존하지 않습니다. |
| 영구 메모리 | 발견 사항은 RIKUGAN.md에 저장되며 후속 세션에서 다시 로드됩니다. |
설치 – 한 줄 스크립트로 IDA, Binary Ninja 또는 둘 다 감지합니다:
# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.ps1 | iex
Rikugan은 IDA에 번들된 PySide6/Shiboken Qt 바인딩에 의존하므로 Windows 사용자는 최신 Visual C++ Redistributable 2015-2022 (x64)를 설치해야 합니다.
일반적인 워크플로우
- IDA Pro 또는 Binary Ninja에서 바이너리를 엽니다.
- Ctrl+Shift+I를 누르면 채팅 창이 나타납니다.
- 자연어로 질문하거나(예: "이 함수는 무엇을 하나요?") 명령(
/deobfuscation,/modify …)을 내립니다. - Rikugan이 LLM의 답변을 스트리밍하고, 요청된 도구를 호출하여 결과를 UI에 직접 반환합니다.
- 생성된
RIKUGAN.md를 검토하여 통찰력을 영구 기록으로 남깁니다.
대상 사용자 – 리버스 엔지니어, 악성코드 분석가, 취약점 연구원 또는 이미 IDA Pro/Binary Ninja를 사용 중이며 디스어셈블러를 떠나지 않고 AI 지원을 통해 내비게이션, 주석, 난독화 해제 속도를 높이고 싶은 분.
제한 사항 / 주의 사항
- 패치 및 난독화 해제 기능은 실험적이며 결과는 수동으로 검증해야 합니다.
- 에이전트는 대상 바이너리를 실행하지 않지만, 사용자가 승인한 스크립트를 호스트 내에서 실행하므로 손상된 스크립트가 호스트 환경에 영향을 줄 수 있습니다.
- 호환되는 LLM 제공자와 인터넷 연결(또는 로컬 Ollama 서버)이 필요하며, 성능과 답변 품질은 선택한 모델에 크게 의존합니다.
- macOS/ARM64 IDA Pro와 Python 3.14 조합에서는 알려진 Shiboken use-after-free 버그가 있으므로 안전을 위해 Python 3.10 유지를 권장합니다.
중요성 – Rikugan은 대규모 언어 모델을 저수준 분석 도구에 직접 내장할 수 있음을 보여주며, 전통적인 수동 방식의 행 단위 리버스 엔지니어링 과정을 대화형 경험으로 변화시킵니다. 자연어를 통해 풍부한 도구 상자를 제공함으로써 난독화 해제 및 바이너리 패치와 같은 복잡한 작업의 장벽을 낮추고 분석가가 제어권을 유지할 수 있도록 합니다.
링크
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트