
Une plateforme complète d'émulation et d'instrumentation binaire.
Zelos (Zeropoint Emulated Lightweight Operating System) est une plateforme d'émulation de binaires basée sur Python. Une utilisation de zelos est d'évaluer rapidement le comportement dynamique des binaires via la ligne de commande ou des scripts Python. Tous les appels système sont émulés pour isoler le binaire cible. Les binaires Linux x86_64 (32 et 64 bits), ARM et MIPS sont pris en charge. Unicorn fournit l'émulation du CPU.

La documentation complète est disponible ici.
Utilisez le gestionnaire de paquets pip pour installer zelos.
pip install zelos
Pour émuler un binaire avec les options par défaut :
$ zelos my_binary
Pour afficher les instructions en cours d'exécution, ajoutez le drapeau --inst :
$ zelos --inst my_binary
Vous pouvez afficher uniquement la première exécution de chaque instruction, plutôt que chaque exécution, en utilisant --fasttrace :
$ zelos --inst --fasttrace my_binary
Par défaut, les appels système sont affichés sur la sortie standard. Pour les écrire dans un fichier à la place, utilisez le drapeau --trace_file :
$ zelos --trace_file chemin/vers/fichier my_binary
Spécifiez les arguments de la ligne de commande après le nom du binaire :
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos prend en charge les plugins internes et tiers. Quelques plugins notables à ce jour :
zelos dans IDA avec des commentaires ajoutés au niveau des instructions.zelos.Les demandes d'extraction sont les bienvenues. Pour les modifications majeures, veuillez d'abord ouvrir un ticket pour discuter de ce que vous souhaitez changer.
Assurez-vous de mettre à jour les tests en conséquence.
Tout d'abord, créez un nouvel environnement virtuel Python. Cela garantira qu'aucun conflit de version de paquet ne survienne :
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Clonez maintenant le dépôt et placez-vous dans le répertoire zelos :
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Installez une version editable de zelos dans l'environnement virtuel. Cela rend import zelos disponible, et toute modification locale de zelos sera effective immédiatement :
(zelos) $ pip install -e '.[dev]'
À ce stade, les tests devraient réussir et la documentation devrait se construire :
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
La documentation construite se trouve dans docs/_build/html/.
Installez les hooks pre-commit de zelos pour garantir la conformité du style de code :
(zelos) $ pre-commit install
En plus de s'exécuter automatiquement à chaque commit, vous pouvez les exécuter à tout moment avec :
(zelos) $ pre-commit run --all-files
Les commandes varient légèrement sous Windows :
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]