위키득계정 ↗
기술

Triton 바이너리 분석

Triton 바이너리 분석기술
분야
동적 바이너리 분석
API
C플러스플러스와 Python
핵심 기능
기호 실행과 오염 추적
연결
Z3와 Bitwuzla 등
Triton은 동적 기호 실행과 오염 추적 등으로 프로그램의 동작을 조사하는 바이너리 분석 라이브러리다. 분석 도구를 구성하거나 명령어를 에뮬레이션하는 저수준 부품을 제공한다.

명령어의 의미 추적

여러 명령어 집합의 동작을 추상 구문 트리로 표현하고 레지스터나 메모리의 값을 추적한다. 구체 값과 기호 값을 조합해 연산의 관계를 살필 수 있다. GPU 프로그래밍 언어나 추론 서버처럼 동명인 도구와는 별개다. 지원 아키텍처와 실제로 필요한 명령어 의미가 맞는지 확인한다.

분석 부품의 조합

동적 오염 추적과 기호식 단순화 및 표현 합성 같은 기능을 제공한다. LLVM이나 solver 표현으로 연결하는 기능도 있다. 다만 모든 기능이 기본 빌드에서 켜져 있지는 않다. 선택한 인터페이스와 solver 구성을 확인하고 분석할 코드와 외부 환경을 어떻게 공급할지 정한다.

모델과 실행 범위

라이브러리 자체를 임의의 프로그램 전체를 자동 검증하는 완성형 검사기와 혼동하지 않는다. 명령어와 메모리 및 호출 환경을 구성하고 원하는 성질을 검사하는 흐름이 필요하다. 대체한 동작이나 초기 상태가 실제 환경과 다른지 살핀다. 소스 안내는 신뢰성의 한계를 알리므로 결과를 재현하고 중요한 동작은 실제 실행과 비교해 조사한다.

관련 문서

TritonDSE / Angr / S2E / Bitwuzla