위키득계정 ↗
기술

TritonDSE

TritonDSE기술
분야
기호 실행 탐색 라이브러리
기반
Triton
환경
Python과 Linux ELF
구성
로더와 입력 및 탐색 훅
TritonDSE는 Triton에 프로그램 로딩과 경로 탐색 기능을 더하는 Python 라이브러리다. 에뮬레이션 기반 기호 실행을 중심으로 입력을 구성하고 탐색 과정을 제어할 수 있다.

저수준 기능 위의 탐색

Triton에서는 실행할 명령어를 직접 공급해야 하는 반면 TritonDSE는 프로그램을 불러와 진입점에서 탐색하는 상위 기능을 제공한다. 로더와 메모리 구획 및 기본 힙 관리 같은 부품을 결합한다. 로딩이 성공했다는 사실과 프로그램의 모든 외부 동작이 정확하게 모델링되었다는 사실은 구분한다.

입력과 커버리지

표준 입력이나 명령행 인자에 자료를 넣고 블록과 분기 및 경로 같은 커버리지 전략을 사용할 수 있다. 입력 일정은 사용자 정의할 수 있고 훅으로 실행 중 사건을 관찰한다. 커버리지 수치가 높아져도 기대 결과를 확인하는 조건이 빠지면 정확성을 입증하지 못한다. 무엇을 탐색하고 검사했는지 함께 기록한다.

지원 환경의 한계

공식 안내는 Linux와 ELF를 지원하며 C 실행 환경의 일부 기능을 제공한다고 설명한다. 다른 운영체제나 모든 종류의 프로그램에 같은 수준의 지원을 가정하지 않는다. 라이브러리 호출을 대신하는 모델과 실제 동작의 차이를 살핀다. 재생 기능을 사용할 때도 입력과 대상 바이너리 및 설정을 맞추고 탐색에서 얻은 결과가 재현되는지 확인한다.

관련 문서

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