LLM 디컴파일러의 재컴파일 정확도와 실제 동작 간 괴리 분석 — AI 생성 일러스트AI 일러스트
리서치 연구

LLM 디컴파일러의 재컴파일 정확도와 실제 동작 간 괴리 분석

When LLM Decompilers Recompile More and Preserve Less

arXiv9월 4일 발표 · 3분 · 심사 전 논문

LLM 디컴파일러는 기계 코드를 고수준 언어로 복원하지만, 단순히 컴파일되거나 기존 테스트를 통과하는 것만으로는 코드의 정확한 동작을 보장하기 어렵습니다.

세 줄 요약arXiv 원문 기반
  1. 연구진은 'Decompile-Diverge'라는 행동 비교 오라클을 개발하여, 테스트와 무관하게 디컴파일된 코드가 원본과 다르게 작동하는(divergence) 경우를 포착했습니다.
  2. 이는 소프트웨어 역공학 및 보안 분석 분야에 중요한 시사점을 주며, 복원된 코드가 원래의 취약점이나 로직을 정확히 반영하는지 검증할 필요성을 강조합니다.
  3. LLM이 알 수 없는 부분을 임시 플레이스홀더 대신 새로운 타입 등으로 대체하면서 원본과 차이가 발생하므로, 행동 기반 비교가 필수적입니다.

디컴파일은 취약점 탐지나 악성코드 분석 등 보안 작업에 필수적인 고수준 소스 코드 복원 과정입니다. 기존 디컴파일러가 해결하지 못한 부분을 플레이스홀더로 남기는 것과 달리, 기반 디컴파일러는 깔끔하고 관용적인 C 코드를 생성합니다. 그러나 이들 도구를 단순히 재컴파일 가능성이나 기존에 준비된 테스트를 통과하는 여부만으로 평가할 경우 오류가 발생할 수 있습니다. 즉, 함수가 모든 테스트를 통과하더라도 다른 합법적 입력에서는 다르게 작동하거나, 알려진 취약점이 재컴파일된 코드에서 흔적 없이 사라지는 경우가 발견될 수 있습니다.

이러한 격차를 해소하기 위해 연구진은 고정되거나 수작업으로 만든 테스트에 의존하지 않는 행동 비교 오라클인 Decompile-Diverge를 제안했습니다. 이 시스템은 각 함수에 드라이버를 합성하고 참조 코드를 기반으로 퍼징 코퍼스를 성장시킨 후, 디컴파일된 코드가 동일한 입력에서 원본과 다르게 작동하는지(divergence)를 감지합니다.

이 방법론을 통해 테스트 케이스는 통과했지만 원본 코드와 다른 결과를 보이는 후보들이 발견되었습니다. 9가지 구성에 걸친 총 8개 시스템 분석 결과, 전체적으로 4.9%의 차이가 나타났으며 단일 시스템에서는 최대 13%까지 보고되었습니다. 또한, 깃허브 라이브러리 함수 및 CVE 기반 함수를 분석한 결과, 재컴파일 가능성과 행동 일치성 사이에 괴리가 확인되었는데, LLM이 Ghidra의 빌드율을 75%에서 90%로 높인 반면, Matched 비율은 74%에서 62%로 하락하는 현상이 관찰되었습니다.

용어 풀이

LLM
방대한 글을 학습해 문장을 이해하고 만들어 내는 AI 모델. ChatGPT, Claude, Gemini가 여기에 속해요.
원문arXiv · When LLM Decompilers Recompile More and Preserve Less같은 주제 가이드 · 바로 써 보기영어 논문, 초록부터 쉽게 읽기

평일 아침 메일로 받아 보기 ›틀린 곳 알리기

원문 보기arXiv