여러 버전의 소프트웨어를 리버스 엔지니어링하는 과정이 너무 고통스러워서 이 프로젝트를 만들었음
핵심은 정규화된 함수 해싱 시스템으로, 함수의 논리적 구조(명령어, 피연산자, 제어 흐름)를 기준으로 해시를 생성함
덕분에 바이너리가 리빌드되거나 리베이스되어도 동일한 함수는 동일한 해시를 가지며, 모든 주석과 타입, 이름이 자동으로 이전됨
Ghidra용 MCP 브리지로 110개의 도구를 포함하며, Claude, Claude Code, 또는 다른 MCP 클라이언트와 통합 가능함
Diablo II의 여러 패치 버전으로 검증했고, 1,300개 이상의 함수 주석을 자동으로 이전할 수 있었음
Docker 기반의 headless 모드로 CI 통합도 가능함
v2.0.0에서는 로컬호스트 전용 바인딩, 타임아웃 설정, 라벨 삭제, .env 설정 등을 추가했음
해싱 접근법이나 MCP 설계에 대해 논의 환영임
Ghidra의 기본 FunctionID나 BinDiff 플러그인과 비교했을 때 어떤 점이 다른지 궁금함
ReVa와 비교하면 어떤지 궁금함
설치 가이드가 불완전한 것 같음. Ghidra에서 설치 후 재시작했는데 Tools 메뉴에 GhidraMCP가 보이지 않음
직접 사용해보려 했는데 Ghidra에서 플러그인을 인식하지 못함
GH Discussions가 소통 채널로 맞는지 궁금함
다른 Ghidra MCP 서버들(pyghidra-mcp, ReVa, GhidrAssistMCP 등)과의 차이가 궁금함
Android 바이너리 디컴파일 지원 여부가 궁금함
LaurieWired의 Ghidra MCP 서버를 사용해봤는데, 바이너리 분석과 키젠 생성이 너무 재미있고 간단했음
이번 MCP 서버도 꼭 써볼 예정임
예전에 만든 소프트웨어가 더 이상 존재하지 않는 서버로 인증을 요청해서 설치가 불가능했는데, 직접 Ghidra MCP를 만들어보려다 실패했음
이런 타이밍에 이 프로젝트가 올라와서 신기함
이 브랜치는 LaurieWired/GhidraMCP의 main보다 110 커밋 앞서 있음
회사 동료가 Claude와 함께 Ghidra를 써서 River Ride 게임을 해킹한 걸 보고 나도 시도해봤음
PowerPC용 옛 게임을 Apple Silicon으로 포팅했는데, 여러 MCP를 써봤지만 Claude Code는 코드를 자주 날조했음
결국 Cursor + GPT 5.2 Codex의 headless 모드로 가장 좋은 결과를 얻었음
나도 리버스 엔지니어링을 실험 중인데, GPT-5.2 Codex가 Claude보다 훨씬 뛰어남
예를 들어 1,300줄짜리 C64-SID 파일을 30분 만에 완전 복원함
현재 C64 게임 전체를 역공학하는 멀티 에이전트 시스템을 만들고 있음 예시 코드 참고
AI를 이용한 리버스 엔지니어링은 과소평가되고 있음
나는 Android 앱에서 암호화 키 추출에 성공했는데, 키가 셰이더 안에 숨겨져 있었고 실제로 셰이더를 실행해야 얻을 수 있었음
친구와 함께 오래된 Unity 게임을 Claude에 주었더니, 완전한 TypeScript 포트를 만들어줬음
지금은 브라우저에서 멀티플레이 기능을 추가 중임
셰이더에서 키를 추출했다는 게 흥미로움. 구체적인 방법을 더 들을 수 있을지 궁금함
나도 MCP와 여러 도구를 연결해 바이너리에서 소스 코드 복원과 취약점 탐지를 시도했는데, 실제 소스와 거의 일치했음
LaurieWired의 15개 도구 버전을 몇 달째 사용 중인데, 앱 내부 구조가 완전히 투명하게 보이는 느낌임
버그 추적, 플러그인 제작, 앱 수정까지 가능함
Objective-C 코드에는 Hopper Disassembler도 함께 사용함
관련 논문: Full recompilation with LLMs and Ghidra
앱 리버스 엔지니어링을 OSS와 동일시하는 건 GitHub 직원으로서 좋은 인상은 아님
LLM을 이용한 리버스 엔지니어링은 정말 과소평가됨
30년 된 게임을 복원 중인데, Ghidra 디컴파일 결과와 심볼 정보를 RAG 방식으로 모델에 주면 놀라운 결과가 나옴
Gemini 3 Flash 같은 저가 모델도 충분히 쓸 만함
하지만 Gemini는 종종 불완전한 의사코드를 생성함
함수의 일부를 생략하거나 switch 블록 내부를 주석으로만 남김
반면 Claude Opus나 Qwen3-30B-A3B는 훨씬 완성도 높은 코드를 냄
Gemini의 큰 컨텍스트 창이 장점이지만, PCode의 장황함 때문에 실제로는 제약이 많음
MCP에 너무 많은 도구를 연결하면 성능이 떨어진다고 생각했는데, 이건 좋은 설계로 보이지 않음
요즘은 lazy loading으로 MCP 도구 문제를 어느 정도 해결함
다만 여전히 API 변환 중심의 도구들은 LLM과의 호환성이 떨어짐
vibecoded 기반의 스킬형 도구가 훨씬 효율적일 것 같음
리버스 엔지니어는 아니지만, Claude Code와 Ghidra MCP를 이용해 랜섬웨어 복호화기를 개선했음
수 테라바이트의 데이터를 복구했을 때 정말 초능력을 얻은 기분이었음
“그 초능력으로 암호화기도 더 신뢰성 있게 만들 수 있었던 거 아님?”이라는 농담을 들었음
AI가 바이너리 분석에서 초인적 능력을 발휘할 수 있다고 생각함
지금은 생산성이 낮고 지루한 작업이지만, AI 덕분에 보안 감사나 공급망 공격 방어에도 활용될 수 있음
Hacker News 의견들
여러 버전의 소프트웨어를 리버스 엔지니어링하는 과정이 너무 고통스러워서 이 프로젝트를 만들었음
핵심은 정규화된 함수 해싱 시스템으로, 함수의 논리적 구조(명령어, 피연산자, 제어 흐름)를 기준으로 해시를 생성함
덕분에 바이너리가 리빌드되거나 리베이스되어도 동일한 함수는 동일한 해시를 가지며, 모든 주석과 타입, 이름이 자동으로 이전됨
Ghidra용 MCP 브리지로 110개의 도구를 포함하며, Claude, Claude Code, 또는 다른 MCP 클라이언트와 통합 가능함
Diablo II의 여러 패치 버전으로 검증했고, 1,300개 이상의 함수 주석을 자동으로 이전할 수 있었음
Docker 기반의 headless 모드로 CI 통합도 가능함
v2.0.0에서는 로컬호스트 전용 바인딩, 타임아웃 설정, 라벨 삭제, .env 설정 등을 추가했음
해싱 접근법이나 MCP 설계에 대해 논의 환영임
설치 가이드가 불완전한 것 같음. Ghidra에서 설치 후 재시작했는데 Tools 메뉴에 GhidraMCP가 보이지 않음
GH Discussions가 소통 채널로 맞는지 궁금함
LaurieWired의 Ghidra MCP 서버를 사용해봤는데, 바이너리 분석과 키젠 생성이 너무 재미있고 간단했음
이번 MCP 서버도 꼭 써볼 예정임
이런 타이밍에 이 프로젝트가 올라와서 신기함
회사 동료가 Claude와 함께 Ghidra를 써서 River Ride 게임을 해킹한 걸 보고 나도 시도해봤음
PowerPC용 옛 게임을 Apple Silicon으로 포팅했는데, 여러 MCP를 써봤지만 Claude Code는 코드를 자주 날조했음
결국 Cursor + GPT 5.2 Codex의 headless 모드로 가장 좋은 결과를 얻었음
예를 들어 1,300줄짜리 C64-SID 파일을 30분 만에 완전 복원함
현재 C64 게임 전체를 역공학하는 멀티 에이전트 시스템을 만들고 있음
예시 코드 참고
AI를 이용한 리버스 엔지니어링은 과소평가되고 있음
나는 Android 앱에서 암호화 키 추출에 성공했는데, 키가 셰이더 안에 숨겨져 있었고 실제로 셰이더를 실행해야 얻을 수 있었음
지금은 브라우저에서 멀티플레이 기능을 추가 중임
LaurieWired의 15개 도구 버전을 몇 달째 사용 중인데, 앱 내부 구조가 완전히 투명하게 보이는 느낌임
버그 추적, 플러그인 제작, 앱 수정까지 가능함
Objective-C 코드에는 Hopper Disassembler도 함께 사용함
관련 논문: Full recompilation with LLMs and Ghidra
LLM을 이용한 리버스 엔지니어링은 정말 과소평가됨
30년 된 게임을 복원 중인데, Ghidra 디컴파일 결과와 심볼 정보를 RAG 방식으로 모델에 주면 놀라운 결과가 나옴
Gemini 3 Flash 같은 저가 모델도 충분히 쓸 만함
함수의 일부를 생략하거나 switch 블록 내부를 주석으로만 남김
반면 Claude Opus나 Qwen3-30B-A3B는 훨씬 완성도 높은 코드를 냄
Gemini의 큰 컨텍스트 창이 장점이지만, PCode의 장황함 때문에 실제로는 제약이 많음
MCP에 너무 많은 도구를 연결하면 성능이 떨어진다고 생각했는데, 이건 좋은 설계로 보이지 않음
다만 여전히 API 변환 중심의 도구들은 LLM과의 호환성이 떨어짐
리버스 엔지니어는 아니지만, Claude Code와 Ghidra MCP를 이용해 랜섬웨어 복호화기를 개선했음
수 테라바이트의 데이터를 복구했을 때 정말 초능력을 얻은 기분이었음
AI가 바이너리 분석에서 초인적 능력을 발휘할 수 있다고 생각함
지금은 생산성이 낮고 지루한 작업이지만, AI 덕분에 보안 감사나 공급망 공격 방어에도 활용될 수 있음
MOOLLM의 “skill-snitch”는 다른 스킬의 동작을 감시하고, “cursor-mirror”는 Cursor 내부 상태를 완전히 들여다봄
이런 스킬들은 서로 조합과 재귀 호출이 가능해 MCP보다 훨씬 빠른 “speed of light” 방식으로 작동함
관련 자료: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
왜 CLI 기반으로 만들지 않았는지 궁금함. 요즘 LLM과 에이전트들은 CLI를 더 잘 다루는 것 같음