위키득계정 ↗
기술

Unicorn

Unicorn기술
분류
CPU 에뮬레이터 프레임워크
기반
QEMU
실행 방식
JIT 기반 에뮬레이션
주요 대상
기계 명령과 CPU 상태
Unicorn은 여러 아키텍처의 CPU 명령을 에뮬레이션하는 프레임워크다. QEMU를 기반으로 하며 레지스터와 메모리 상태 및 실행 훅을 제어하는 API를 제공한다.

명령 실행을 구성하기

분석할 코드를 메모리에 놓고 레지스터와 시작 주소를 준비해 실행한다. 같은 바이트라도 초기 레지스터와 메모리 내용에 따라 결과가 달라진다. 따라서 작은 코드 조각을 시험할 때도 필요한 실행 상태를 명확히 해야 한다.

관찰과 제어

명령 실행과 메모리 접근 등의 수준에서 계측을 구성할 수 있다. 실행을 관찰하는 기능은 분석 도구를 만들 때 유용하다. 실제 장치의 전체 운영체제와 주변 환경을 자동으로 제공하는 기능과는 구별된다.

CPU와 운영체제의 경계

Unicorn은 CPU 명령 실행에 초점을 둔다. 실행 파일 로더와 동적 라이브러리, 시스템 호출 같은 높은 수준의 환경은 추가 계층이 필요하다. Qiling처럼 이를 보완하는 프레임워크와 연결할 때도 각 계층의 지원 범위를 구분한다.

관련 문서

Qiling / Capstone / Keystone / SymQEMU