
포괄적인 바이너리 에뮬레이션 및 계측 플랫폼.
Zelos (Zeropoint Emulated Lightweight Operating System)는 파이썬 기반의 바이너리 에뮬레이션 플랫폼입니다. Zelos의 한 가지 용도는 명령줄 또는 파이썬 스크립트를 통해 바이너리의 동적 동작을 신속하게 평가하는 것입니다. 모든 시스템 호출은 에뮬레이션되어 대상 바이너리를 격리합니다. Linux x86_64 (32비트 및 64비트), ARM 및 MIPS 바이너리가 지원됩니다. Unicorn이 CPU 에뮬레이션을 제공합니다.

패키지 관리자 pip를 사용하여 zelos를 설치합니다.
pip install zelos
기본 옵션으로 바이너리를 에뮬레이트하려면:
$ zelos my_binary
실행 중인 명령어를 보려면 --inst 플래그를 추가합니다:
$ zelos --inst my_binary
--fasttrace를 사용하면 모든 실행이 아닌 각 명령어가 처음 실행될 때만 출력할 수 있습니다:
$ zelos --inst --fasttrace my_binary
기본적으로 시스템 호출은 stdout에 출력됩니다. 대신 파일에 기록하려면 --trace_file 플래그를 사용합니다:
$ zelos --trace_file path/to/file my_binary
바이너리 이름 뒤에 명령줄 인수를 지정합니다:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos는 자체 및 타사 플러그인을 지원합니다. 지금까지 주목할 만한 플러그인은 다음과 같습니다:
zelos 실행 추적을 명령어 수준 주석과 함께 강조 표시합니다.zelos에서 기호 실행을 활성화합니다.Pull 요청을 환영합니다. 주요 변경 사항이 있는 경우 논의를 위해 먼저 이슈를 열어 주시기 바랍니다.
적절히 테스트를 업데이트해 주세요.
먼저 새 Python 가상 환경을 생성합니다. 이렇게 하면 패키지 버전 충돌이 발생하지 않습니다:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
이제 저장소를 클론하고 zelos 디렉터리로 이동합니다:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
가상 환경에 편집 가능한 버전의 zelos를 설치합니다. 이렇게 하면 import zelos를 사용할 수 있으며, zelos의 로컬 변경 사항이 즉시 적용됩니다:
(zelos) $ pip install -e '.[dev]'
이 시점에서 테스트가 통과하고 문서가 빌드되어야 합니다:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
빌드된 문서는 docs/_build/html/에서 확인할 수 있습니다.
코드 스타일 준수를 위해 zelos pre-commit 훅을 설치합니다:
(zelos) $ pre-commit install
매 커밋 시 자동 실행되는 것 외에도 언제든지 다음 명령으로 실행할 수 있습니다:
(zelos) $ pre-commit run --all-files
Windows에서는 명령어가 약간 다릅니다:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]