
Uma plataforma abrangente de emulação binária e instrumentação.
Zelos (Zeropoint Emulated Lightweight Operating System) é uma plataforma de emulação binária baseada em Python. Um uso do zelos é avaliar rapidamente o comportamento dinâmico de binários via linha de comando ou scripts Python. Todas as syscalls são emuladas para isolar o binário alvo. Binários Linux x86_64 (32 e 64 bits), ARM e MIPS são suportados. O Unicorn fornece a emulação da CPU.

A documentação completa está disponível aqui.
Use o gerenciador de pacotes pip para instalar o zelos.
pip install zelos
Para emular um binário com opções padrão:
$ zelos my_binary
Para visualizar as instruções que estão sendo executadas, adicione a flag --inst:
$ zelos --inst my_binary
Você pode imprimir apenas a primeira vez que cada instrução é executada, em vez de todas as execuções, usando --fasttrace:
$ zelos --inst --fasttrace my_binary
Por padrão, as syscalls são exibidas no stdout. Para escrever as syscalls em um arquivo, use a flag --trace_file:
$ zelos --trace_file path/to/file my_binary
Especifique quaisquer argumentos de linha de comando após o nome do binário:
$ zelos my_binary arg1 arg2
import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)
O Zelos suporta plugins próprios e de terceiros. Alguns plugins notáveis até agora:
zelos no IDA com comentários adicionados no nível de instrução.zelos.Pull requests são bem-vindos. Para mudanças importantes, por favor abra uma issue primeiro para discutir o que você gostaria de mudar.
Por favor, certifique-se de atualizar os testes conforme apropriado.
Primeiro, crie um novo ambiente virtual Python. Isso garantirá que não surjam conflitos de versão de pacotes:
$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate
Agora clone o repositório e entre no diretório zelos:
(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos
Instale uma versão editável do zelos no ambiente virtual. Isso torna import zelos disponível, e quaisquer alterações locais no zelos terão efeito imediato:
(zelos) $ pip install -e '.[dev]'
Neste ponto, os testes devem passar e a documentação deve ser construída:
(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html
A documentação construída é encontrada em docs/_build/html/.
Instale os hooks do pre-commit do zelos para garantir conformidade com o estilo de código:
(zelos) $ pre-commit install
Além de serem executados automaticamente a cada commit, você pode executá-los a qualquer momento com:
(zelos) $ pre-commit run --all-files
Comandos variam ligeiramente no Windows:
C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]