
Eine umfassende Plattform für Binäremulation und -instrumentierung.
Zelos (Zeropoint Emulated Lightweight Operating System) ist eine auf Python basierende Binäremulationsplattform. Eine Verwendung von zelos besteht darin, das dynamische Verhalten von Binärdateien schnell über die Befehlszeile oder Python-Skripte zu bewerten. Alle Systemaufrufe werden emuliert, um die Zielbinärdatei zu isolieren. Linux x86_64 (32- und 64-Bit), ARM- und MIPS-Binärdateien werden unterstützt. Unicorn stellt die CPU-Emulation bereit.

Die vollständige Dokumentation ist hier verfügbar.
Verwenden Sie den Paketmanager pip, um zelos zu installieren.
pip install zelos
Um eine Binärdatei mit Standardoptionen zu emulieren:
$ zelos my_binary
Um die ausgeführten Anweisungen anzuzeigen, fügen Sie das Flag --inst hinzu:
$ zelos --inst my_binary
Sie können nur das erste Mal drucken, wenn jede Anweisung ausgeführt wird, anstatt jede Ausführung, mit --fasttrace:
$ zelos --inst --fasttrace my_binary
Standardmäßig werden Systemaufrufe auf stdout ausgegeben. Um Systemaufrufe stattdessen in eine Datei zu schreiben, verwenden Sie das Flag --trace_file:
$ zelos --trace_file path/to/file my_binary
Geben Sie alle Kommandozeilenargumente nach dem Binärnamen an:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos unterstützt Erst- und Drittanbieter-Plugins. Einige bemerkenswerte Plugins bisher:
Pull-Requests sind willkommen. Bei größeren Änderungen eröffnen Sie bitte zunächst ein Issue, um zu besprechen, was Sie ändern möchten.
Bitte stellen Sie sicher, dass Sie Tests entsprechend aktualisieren.
Erstellen Sie zunächst eine neue Python-Virtual-Umgebung. Dadurch wird sichergestellt, dass keine Paketversionskonflikte auftreten:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Klonen Sie nun das Repository und wechseln Sie in das Verzeichnis zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Installieren Sie eine editierbare Version von zelos in die Virtual-Umgebung. Dadurch wird import zelos verfügbar, und lokale Änderungen an zelos werden sofort wirksam:
(zelos) $ pip install -e '.[dev]'
An diesem Punkt sollten Tests bestehen und die Dokumentation erstellt werden:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
Die erstellte Dokumentation befindet sich in docs/_build/html/.
Installieren Sie zelos-Pre-Commit-Hooks, um die Einhaltung des Codestils sicherzustellen:
(zelos) $ pre-commit install
Zusätzlich zur automatischen Ausführung bei jedem Commit können Sie sie jederzeit mit folgendem Befehl ausführen:
(zelos) $ pre-commit run --all-files
Die Befehle unterscheiden sich unter Windows geringfügig:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]