
Una piattaforma completa di emulazione e strumentazione binaria.
Zelos (Zeropoint Emulated Lightweight Operating System) è una piattaforma di emulazione binaria basata su Python. Uno degli usi di zelos è valutare rapidamente il comportamento dinamico dei binari tramite riga di comando o script Python. Tutte le syscall vengono emulate per isolare il binario target. Sono supportati binari Linux x86_64 (32 e 64 bit), ARM e MIPS. Unicorn fornisce l'emulazione della CPU.

La documentazione completa è disponibile qui.
Utilizza il gestore di pacchetti pip per installare zelos.
pip install zelos
Per emulare un binario con le opzioni predefinite:
$ zelos my_binary
Per visualizzare le istruzioni in esecuzione, aggiungi il flag --inst:
$ zelos --inst my_binary
Puoi stampare solo la prima volta che ogni istruzione viene eseguita, invece di ogni esecuzione, usando --fasttrace:
$ zelos --inst --fasttrace my_binary
Per impostazione predefinita, le syscall vengono emesse su stdout. Per scrivere le syscall in un file, usa il flag --trace_file:
$ zelos --trace_file path/to/file my_binary
Specifica eventuali argomenti della riga di comando dopo il nome del binario:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos supporta plugin di prima e terza parte. Alcuni plugin degni di nota finora:
zelos in IDA con commenti a livello di istruzione aggiunti.zelos.I pull request sono benvenuti. Per modifiche importanti, apri prima una issue per discutere cosa vorresti cambiare.
Assicurati di aggiornare i test come appropriato.
Per prima cosa, crea un nuovo ambiente virtuale Python. Questo garantirà che non sorgano conflitti di versione dei pacchetti:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Ora clona il repository e spostati nella directory zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Installa una versione editable di zelos nell'ambiente virtuale. Questo rende disponibile import zelos e qualsiasi modifica locale a zelos sarà effettiva immediatamente:
(zelos) $ pip install -e '.[dev]'
A questo punto, i test dovrebbero passare e la documentazione dovrebbe essere generata:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
La documentazione generata si trova in docs/_build/html/.
Installa gli hook pre-commit di zelos per garantire la conformità allo stile del codice:
(zelos) $ pre-commit install
Oltre a essere eseguiti automaticamente ad ogni commit, puoi eseguirli in qualsiasi momento con:
(zelos) $ pre-commit run --all-files
I comandi variano leggermente su Windows:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]