zeropointdynamics / Zelos

Licence: agpl-3.0
A comprehensive binary emulation and instrumentation platform.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Zelos

Binee
Binee: binary emulation environment
Stars: ✭ 408 (+36.91%)
Mutual labels:  binary, emulation, binary-analysis, malware
Qiling
Qiling Advanced Binary Emulation Framework
Stars: ✭ 2,816 (+844.97%)
Mutual labels:  binary, emulator, malware
Freki
🐺 Malware analysis platform
Stars: ✭ 285 (-4.36%)
Mutual labels:  binary-analysis, malware, malware-analysis
Simplify
Android virtual machine and deobfuscator
Stars: ✭ 3,865 (+1196.98%)
Mutual labels:  emulator, malware, malware-analysis
Replica
Ghidra Analysis Enhancer 🐉
Stars: ✭ 194 (-34.9%)
Mutual labels:  binary, binary-analysis, malware-analysis
Simpleator
Simpleator ("Simple-ator") is an innovative Windows-centric x64 user-mode application emulator that leverages several new features that were added in Windows 10 Spring Update (1803), also called "Redstone 4", with additional improvements that were made in Windows 10 October Update (1809), aka "Redstone 5".
Stars: ✭ 260 (-12.75%)
Mutual labels:  emulator, malware, malware-analysis
awesome-executable-packing
A curated list of awesome resources related to executable packing
Stars: ✭ 720 (+141.61%)
Mutual labels:  malware, malware-analysis, binary-analysis
decrypticon
Java-layer Android Malware Simplifier
Stars: ✭ 17 (-94.3%)
Mutual labels:  emulator, malware, malware-analysis
freki
🐺 Malware analysis platform
Stars: ✭ 327 (+9.73%)
Mutual labels:  malware, malware-analysis, binary-analysis
Docker Cuckoo
Cuckoo Sandbox Dockerfile
Stars: ✭ 289 (-3.02%)
Mutual labels:  malware, malware-analysis
khedgb
Experiments in Game Boy emulation
Stars: ✭ 15 (-94.97%)
Mutual labels:  emulator, emulation
MalScan
A Simple PE File Heuristics Scanners
Stars: ✭ 41 (-86.24%)
Mutual labels:  malware, malware-analysis
retro-computing
🤓🕹💾 This hobby project contains software implementations of old microprocessors and complete computer systems. I'm very interested in retrocomputing and this is how I learn about the inner workings of these old, classic and amazing computers and game consoles.
Stars: ✭ 15 (-94.97%)
Mutual labels:  emulator, emulation
instrumentation
Assorted pintools
Stars: ✭ 24 (-91.95%)
Mutual labels:  binary, binary-analysis
flare-emu
No description or website provided.
Stars: ✭ 561 (+88.26%)
Mutual labels:  emulation, malware-analysis
FEX
A fast usermode x86 and x86-64 emulator for Arm64
Stars: ✭ 650 (+118.12%)
Mutual labels:  emulator, emulation
Kotlin-Gameboy-Emulator
A GameBoy emulator written in Kotlin
Stars: ✭ 12 (-95.97%)
Mutual labels:  emulator, emulation
MalwareHashDB
Malware hashes for open source projects.
Stars: ✭ 31 (-89.6%)
Mutual labels:  malware, malware-analysis
Malware-Machine-Learning
Malware Machine Learning
Stars: ✭ 26 (-91.28%)
Mutual labels:  malware, malware-analysis
Emuloader
Emuloader is an application that allows easy management of game backups locally or on the cloud and one-click installs of emulator enivronments
Stars: ✭ 55 (-81.54%)
Mutual labels:  emulator, emulation

PyPI Build Status codecov Documentation Status PyPI - Python Version License: AGPL v3 Code style: black

Zelos

Zelos (Zeropoint Emulated Lightweight Operating System) is a python-based binary emulation platform. One use of zelos is to quickly assess the dynamic behavior of binaries via command-line or python scripts. All syscalls are emulated to isolate the target binary. Linux x86_64 (32- and 64-bit), ARM and MIPS binaries are supported. Unicorn provides CPU emulation.

Image

Full documentation is available here.

Installation

Use the package manager pip to install zelos.

pip install zelos

Basic Usage

Command-line

To emulate a binary with default options:

$ zelos my_binary

To view the instructions that are being executed, add the --inst flag:

$ zelos --inst my_binary

You can print only the first time each instruction is executed, rather than every execution, using --fasttrace:

$ zelos --inst --fasttrace my_binary

By default, syscalls are emitted on stdout. To write syscalls to a file instead, use the --trace_file flag:

$ zelos --trace_file path/to/file my_binary

Specify any command line arguments after the binary name:

$ zelos my_binary arg1 arg2

Programmatic

import zelos

z = zelos.Zelos("my_binary")
z.start(timeout=3)

Plugins

Zelos supports first- and third-party plugins. Some notable plugins thus far:

  • crashd crash analyzer combining execution trace, dataflow and memory sanitization.
  • overlay (ida plugin): highlights zelos execution trace in IDA with instruction-level comments added.
  • angr integration: enables symbolic execution in zelos.
  • zdbserver: remote control and debugging of emulated binaries.
  • syscall limiter: demonstrates event hooking and provides syscall-based execution and termination options.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Local Development Environment

First, create a new python virtual environment. This will ensure no package version conflicts arise:

$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate

Now clone the repository and change into the zelos directory:

(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos

Install an editable version of zelos into the virtual environment. This makes import zelos available, and any local changes to zelos will be effective immediately:

(zelos) $ pip install -e '.[dev]'

At this point, tests should pass and documentation should build:

(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html

Built documentation is found in docs/_build/html/.

Install zelos pre-commit hooks to ensure code style compliance:

(zelos) $ pre-commit install

In addition to automatically running every commit, you can run them anytime with:

(zelos) $ pre-commit run --all-files

Windows Development:

Commands vary slightly on Windows:

C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]

License

AGPL v3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].