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 a bundled GUI application that empowers users to write assembly and test it by compiling it to bytecode and executing it in an QEMU-based emulator.
CEmu combines all the advantages of a basic assembly IDE, compilation and execution environment, by relying on the great libraries Keystone, Unicorn and Capstone libraries in a Qt6 powered GUI.
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.
Notes
Since version 0.2.2, cemu
is now Python3 only for simplicity (and also due to the fact that Python2 will soon cease to exist). 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.8 is required, starting 0.6
.
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\Python39\Scripts\cemu.exe
if not
cemu
was created and maintained by myself, @_hugsy_
, but kept fresh thanks to all the contributors.