
Una plataforma integral de emulación e instrumentación binaria.
Zelos (Zeropoint Emulado Ligero Operativo Sistema) es una plataforma de emulación de binarios basada en Python. Un uso de zelos es evaluar rápidamente el comportamiento dinámico de binarios mediante la línea de comandos o scripts de Python. Todas las llamadas al sistema se emulan para aislar el binario objetivo. Se admiten binarios Linux x86_64 (32 y 64 bits), ARM y MIPS. Unicorn proporciona la emulación de CPU.

La documentación completa está disponible aquí.
Utilice el gestor de paquetes pip para instalar zelos.
pip install zelos
Para emular un binario con opciones predeterminadas:
$ zelos my_binary
Para ver las instrucciones que se están ejecutando, agregue la bandera --inst:
$ zelos --inst my_binary
Puede imprimir solo la primera vez que se ejecuta cada instrucción, en lugar de cada ejecución, usando --fasttrace:
$ zelos --inst --fasttrace my_binary
Por defecto, las llamadas al sistema se emiten en stdout. Para escribirlas en un archivo en su lugar, use la bandera --trace_file:
$ zelos --trace_file path/to/file my_binary
Especifique cualquier argumento de línea de comandos después del nombre del binario:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
Zelos admite plugins de primera y tercera parte. Algunos plugins notables hasta ahora:
zelos en IDA con comentarios a nivel de instrucción añadidos.zelos.Las solicitudes de extracción son bienvenidas. Para cambios importantes, abra un issue primero para discutir lo que le gustaría cambiar.
Asegúrese de actualizar las pruebas según corresponda.
Primero, cree un nuevo entorno virtual de Python. Esto asegurará que no surjan conflictos de versiones de paquetes:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Ahora clone el repositorio y cambie al directorio zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Instale una versión editable de zelos en el entorno virtual. Esto hace que import zelos esté disponible, y cualquier cambio local en zelos será efectivo de inmediato:
(zelos) $ pip install -e '.[dev]'
En este punto, las pruebas deberían pasar y la documentación debería compilarse:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
La documentación compilada se encuentra en docs/_build/html/.
Instale los ganchos pre-commit de zelos para garantizar el cumplimiento del estilo de código:
(zelos) $ pre-commit install
Además de ejecutarse automáticamente en cada commit, puede ejecutarlos en cualquier momento con:
(zelos) $ pre-commit run --all-files
Los comandos varían ligeramente en Windows:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]