이 논문은 실행 파일을 컴파일러 중간표현(LLVM IR)으로 완전히 정적으로 리프팅해 다른 명령어집합(ISA)으로 재컴파일하는 시스템을 제시한다. 기존 방식은 계산된 분기의 목적지를 정적으로 결정할 수 없어 런타임 지원이 필요했지만, 이 연구는 모든 바이트 오프셋을 잠재적 분기 대상으로 간주해 가능한 모든 제어 흐름을 포함하는 슈퍼셋 제어흐름그래프를 브루트포스로 구축한다. x86-64에서 LLVM IR로 리프팅한 뒤 기존 LLVM 백엔드를 그대로 재사용해 AArch64로 완전 정적 크로스 컴파일하는 프로토타입으로 이를 검증했다. 런타임 번역 지원 없이 레거시 바이너리에 보안 완화 기법을 적용하거나 아키텍처를 이전할 수 있는 실용적 경로를 제시한다는 점에서 의미가 크다.
- •모든 바이트 오프셋을 잠재적 분기 대상으로 취급하는 브루트포스 리프팅으로 정적 제어흐름그래프(CFG) 복원의 근본적 한계를 우회
- •계산된 분기는 번역된 제어 흐름 경로를 가리키는 디스패치 테이블 조회로 축소되어 런타임 번역 지원이 불필요
- •x86-64→LLVM IR→AArch64 완전 정적 크로스 컴파일 프로토타입을 기존 LLVM 백엔드 수정 없이 구현 및 검증
- •코드와 데이터를 구분하려는 기존 접근과 달리 전체 바이너리를 무차별적으로 리프팅하는 방식 채택
0단 자동
AI가 규칙대로 쓰고 그대로 게시했습니다. 사람이 따로 보지 않았습니다.
- 규칙 판
- 규칙 판 도입 이전 기사입니다.
- 남기는 것
- 규칙 판 · 모델 · 시각
- 판 기록
- 아직 없습니다.
No Bit Left Behind: Using Brute-Force Lifting to Achieve Fully Static Binary Recompilation
- 1.런타임 지원 없이 완전 정적으로 바이너리 전체를 리프팅하는 이진 재컴파일 시스템 제시
- 2.코드·데이터 구분 없이 모든 바이트 오프셋을 잠재적 분기로 취급하는 무차별 대입 방식 채택
- 3.정적으로 풀리지 않는 계산된 분기는 디스패치 테이블 조회로 환원해 상위집합(superset) 제어흐름그래프 구성
- 4.x86-64→LLVM IR 프로토타입 구현, 기존 LLVM 백엔드 수정 없이 AArch64로 완전 정적 교차컴파일 검증
왜 중요한가?
레거시 바이너리에 보안 패치를 입히거나 다른 아키텍처로 이식하는 작업은 그동안 런타임 보조 장치 없이는 신뢰하기 어려웠는데, 이번 완전 정적 접근은 타깃 환경에 별도 런타임 부담 없이 이를 가능하게 한다.
언급 프로젝트
본문 미리보기
arXiv:2609.16423v1 Announce Type: new Abstract: Binary recompilation is a technique for operating directly on executable code. It promises to automate two important tasks: retrofitting security mitigations onto legacy binaries, and migrating binaries across instruction set architectures (ISAs). Yet today, there is no fully automated system that can reliably lift arbitrary binary executables to a compiler intermediate representation (IR) such as LLVM IR, or that can fully statically and reliably
전체 내용이 궁금하다면?
원문을 직접 읽어보세요
이 글이 만들어진 과정
- 11:24AI 초안



