LLM 지원 디컴파일: 전략과 도구의 진화

이 글은 LLM 지원 디컴파일, 특히 Nintendo 64 게임인 Snowboard Kids 2의 디컴파일에 Claude를 사용하는 데 있어 직면한 과제와 전략을 논의합니다. 초기에는 일회성 디컴파일을 통해 일치하는 코드를 약 25%에서 58%로 향상시켰습니다. 그러나 진행이 둔화되면서 접근 방식을 변경하여 최종적으로 약 75%의 함수 일치율에 도달했습니다.
핵심 전략 중 하나는 일치하지 않는 함수 중 어떤 것을 먼저 처리할지 우선순위를 정하는 것이었습니다. 초기에는 명령어 수나 제어 흐름 복잡성과 같은 특징을 기반으로 난이도를 추정하는 로지스틱 회귀 모델을 사용했습니다. 이 방법이 정체기에 접어들자, 어셈블리 명령어의 텍스트 임베딩을 통한 함수 유사도 탐색이 효과적임이 입증되었습니다. 이는 유사한 일치 함수를 계산하여 유용한 참조 자료를 제공함으로써 Claude의 디컴파일 성능을 향상시켰습니다.
유사도를 계산하기 위해 벡터 임베딩이 논의되었는데, 이는 RAG 시스템에서 빠른 검색을 위해 자주 사용됩니다. 그러나 수천 개의 후보만 있는 프로젝트에서는 정밀한 유사도 계산이 가능했습니다. 초기에는 정규화된 명령어 n-그램, 제어 흐름 패턴, 메모리 접근 오프셋 및 구조적 메트릭을 고려한 복합 유사도 점수를 사용했으나, 이후 Coddog의 더 간단한 방법인 연산 코드 시퀀스에 대한 제한된 레벤슈타인 거리 계산이 동등한 효과를 보이며 복잡성을 줄였습니다.
gfxdis.f3dex2 및 decomp-permuter와 같은 전문 도구도 Claude의 성능을 향상시켰습니다. 특히 F3Dex2 라이브러리의 사용은 N64의 Reality Display Processor(RDP) 마이크로코드를 다루는 것을 더 관리하기 쉽게 만들어 맞춤형 리버스 엔지니어링의 필요성을 피할 수 있었습니다.
📖 전체 출처 읽기: HN LLM Tools
👀 See Also

AI 코딩 에이전트, 배포 단계에서 좌절: Cowork 사용자, 샌드박스·권한·컨텍스트 손실 문제 직면
Cowork로 Next.js 앱을 개발하는 한 개발자가 AI 에이전트가 코드를 성공적으로 작성했지만, 샌드박스 제한, GitHub 푸시 문제, 세션 컨텍스트 손실로 인해 배포에 실패했다고 보고합니다.

Claude Cowork 예약 작업으로 LinkedIn 아웃리치 자동화하기
한 개발자가 LinkedIn Sales Navigator에 접속하여 프로필을 읽고 최근 게시물을 확인하며 맞춤형 접근 메시지를 작성하는 방식으로 매일 10개의 맞춤형 LinkedIn 메시지를 자동으로 보내도록 예약된 Claude Cowork 작업을 구축했습니다.

한 개발자가 AI 에이전트 시스템의 16가지 아키텍처 약점을 어떻게 해결했는가
한 개발자가 OpenClaw AI 에이전트 시스템에서 발견한 16가지 아키텍처 문제를 문서화하고, 명시적 레이어 정의, 게이트웨이 인증, 증거 기반 실행 등의 구체적인 해결책을 구현했습니다.

개발자가 클로드에 지속적 메모리와 스킬 구성 기능을 갖춘 맞춤형 비즈니스 시스템 구축
한 개발자가 Claude Pro를 기반으로 기본적인 작업을 넘어서는 맞춤형 시스템을 구축했습니다. 이 시스템은 정의된 입력/출력을 가진 13개의 맞춤형 스킬, 세션 간 지속되는 메모리, 자동화된 일일 브리핑, 그리고 작업을 연쇄적 또는 병렬적으로 실행하는 스킬 조합을 특징으로 합니다. 이 시스템은 Supabase, Cloudflare Pages, 그리고 바닐라 HTML/CSS/JS 위에서 실행됩니다.