위키득계정 ↗
기술

SymQEMU

SymQEMU기술
분류
바이너리 기호 실행 도구
기반
QEMU와 SymCC
대표 대상
x86-64 Linux 사용자 프로그램
활용
입력 생성과 혼합 퍼징
SymQEMU는 QEMU와 SymCC 런타임을 바탕으로 바이너리를 기호 분석하는 도구다. 소스를 기호 실행용으로 다시 컴파일하는 대신 에뮬레이션 환경에서 테스트 입력을 생성한다.

바이너리에서 분석 시작하기

SymCC는 컴파일 과정에서 분석 코드를 넣지만 SymQEMU는 바이너리를 에뮬레이션하며 기호 실행 기능을 제공한다. 따라서 소스 재컴파일 여부가 두 도구를 구분하는 중요한 차이다. 분석할 파일의 형식과 실행 환경은 별도로 맞춰야 한다.

분기 조건으로 입력 만들기

실행하면서 입력에 따라 달라지는 조건을 분석하고 다른 동작을 유도하는 입력을 생성한다. SymCC의 설정과 퍼징 보조 도구를 활용하는 혼합 퍼징 경로도 있다. 입력 생성 기능은 실행 환경과 런타임의 지원 범위 안에서 해석해야 한다.

아키텍처 지원 확인

대표 빌드 구성은 64비트 x86 사용자 모드이며 AArch64는 실험적 지원으로 안내된다. 다른 비트 폭이나 아키텍처가 자동으로 같은 수준에서 동작한다고 가정하면 안 된다. QEMU 기반이라는 사실과 모든 QEMU 대상을 지원한다는 주장은 구분한다.

관련 문서

SymCC / S2E / Angr / Triton 바이너리 분석