Skip to main content

Cemu is a simple assembly/dissembly/emulation IDE that provides an easy Plug-n-Play environment to start playing with many architectures (currently supports x86-{32,64}, ARM, AARCH64, MIPS, MIPS64, SPARC and PPC).

Project description

Logo

CEmu : The Cheap (Assembly) Emulator

Code style: black Licence MIT Python-Version 3.10 CEmu on PyPI CEmu on Discord Downloads

Description

Writing assembly is fun. Assembly is the lowest language (humanly understandable) available to communicate with computers, and is crucial to understand the internal mechanisms of any machine. Unfortunately, setting up an environment to write, compile and run assembly for various architectures (x86, ARM, MIPS, SPARC) has always been painful. CEmu is an attempt to fix this by providing GUI, CLI and library that allows to write and test assembly quickly.

CEmu is built upon:

And the GUI is powered by in a Qt6.

It allows to test binary samples, check your shellcodes or even simply learn how to write assembly code, all of this for the following architectures:

  • x86-32 / x86-64
  • ARM / AArch64
  • MIPS / MIPS64
  • SPARC / SPARC64
  • PPC (but not emulation)

CEmu was mostly tested to work on Linux and Windows, but should work on MacOS.

Installation

Notes

Since version 0.2.2, cemu is now Python3 only for simplicity and mostly also due to the fact that Python2 is not developed any longer. If your current installation of cemu is <= 0.2.1 and on Python2, please uninstall it and install it using Python3.

In addition, Python >= 3.10 is required, starting 0.6.

Quick install with PIP

Last stable from PyPI:

pip3 install cemu

Last stable from Github:

git clone https://github.com/hugsy/cemu
cd cemu
pip3 install --upgrade .

For 99% of cases, that's all you need to do. cemu will be installed in the associated Scripts directory:

  • On Linux by default the executable will be found as /usr/local/bin/cemu if installed as root, ~/.local/bin/cemu for non-root
  • On Windows, %PYTHON_DIR%\Scripts\cemu.exe if installed with privileges, %APPDATA%\Python\Python310\Scripts\cemu.exe if not

Usage

As a GUI

After installing with pip, simply run the executable, or invoke via Python

python -m cemu

This should produce a GUI similar to this:

cemu-gui cemu-gui

In the terminal

python -m cemu cli

From where you'll end up in a REPL, allowing you to build and run the emulation environment.

cemu-cli

As a Library

$ python
>>> import cemu

Then use the provided API to build and run your environment.

Contribution

cemu was created and maintained by myself, @_hugsy_, but kept fresh thanks to all the contributors.

contributors-img

If you just like the tool, consider dropping on Discord (or Twitter or other) a simple "thanks", it is always very appreciated. And if you can, consider sponsoring me - it really helps dedicating time and resources to the projects!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cemu-0.8.0.tar.gz (573.3 kB view details)

Uploaded Source

Built Distribution

cemu-0.8.0-py3-none-any.whl (587.0 kB view details)

Uploaded Python 3

File details

Details for the file cemu-0.8.0.tar.gz.

File metadata

  • Download URL: cemu-0.8.0.tar.gz
  • Upload date:
  • Size: 573.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for cemu-0.8.0.tar.gz
Algorithm Hash digest
SHA256 112e0b10dd7eeaae539bda932648c73e3d463bb21cad6fdf7660d453ece08074
MD5 b8176c23bfdc8f54b8e86bf1564bfe21
BLAKE2b-256 f44f29c03e2a77e31e21c1d24e28ded2f8971f98489c76bcc72906d6032f2c2d

See more details on using hashes here.

File details

Details for the file cemu-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: cemu-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 587.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for cemu-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c64de54145a5e7ea34bed56aae0bb5611e50ef8b50385e9bee4fcd0c4508714a
MD5 694cc1b3b068ec519c407b43f27c3370
BLAKE2b-256 df6b7d0dbeafcc3d4873707ba91641069891b0a4cbe884474a5ecb856d9303a4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page