위키득계정 ↗
기술

Revng

Revng기술
프로젝트 표기
rev.ng
분류
바이너리 분석 프레임워크
기반
LLVM과 QEMU 리프팅
상호작용
모델 수정과 분석 재계산
Revng는 LLVM과 QEMU를 기반으로 하는 바이너리 분석 및 디컴파일 프레임워크다. 자동 분석에 사용자의 타입과 모델 수정을 결합해 C 코드 등의 결과를 만든다.

리프팅과 분석의 연결

QEMU를 명령어를 중간 표현으로 옮기는 리프터로 사용하고 LLVM 패스로 분석을 수행한다. 이 설계에서 QEMU를 쓴다는 사실이 대상 코드를 에뮬레이션한다는 뜻은 아니다. 변환과 실행을 구분해서 이해해야 한다.

자동 분석과 수동 정보

바이너리에서 얻은 정보에 사용자가 작성한 모델을 더할 수 있다. 모델의 변화는 관련 분석 결과를 무효화하고 필요할 때 다시 계산하도록 연결된다. 타입과 데이터 구조에 관한 정보가 디컴파일 결과를 개선하는 중요한 입력이 된다.

인터페이스와 자동화

편집기 기반 화면과 Python 또는 TypeScript 연동 경로를 제공한다. 자동화는 로컬이나 네트워크의 API를 통해 구성할 수 있다. 출력된 C가 원래 소스 그대로라는 의미는 아니며, 분석 목적에 맞게 복원된 구조를 검토한다.

관련 문서

RetDec / McSema / Ghidra / BAP