CEmu


NameCEmu JSON
Version 0.8.0 PyPI version JSON
download
home_pageNone
SummaryCemu 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).
upload_time2024-08-02 15:46:19
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords aarch64 arm assembly disassembly emulation mips powerpc sparc x64 x86
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img alt="Logo" src="src/cemu/img/new_logo.png" width=20%>
</p>

<h2 align="center">CEmu : The Cheap (Assembly) Emulator</h2>

<p align="center">
  <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
  <a href="https://github.com/hugsy/cemu/blob/master/LICENSE"><img alt="Licence MIT" src="https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000?style=plastic"></a>
  <img alt="Python-Version 3.10" src="https://img.shields.io/pypi/pyversions/cemu.svg">
  <a href="https://pypi.org/project/cemu/"><img alt="CEmu on PyPI" src="https://img.shields.io/pypi/v/cemu.svg"></a>
  <a href="https://discord.gg/qBn9MbG9vp"><img alt="CEmu on Discord" src="https://img.shields.io/badge/Discord-CEmu-green"></a>
  <a href="https://pepy.tech/project/cemu"><img alt="Downloads" src="https://static.pepy.tech/badge/cemu"></a>
</p>


## 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:
 * [Keystone](https://github.com/keystone-engine/keystone) for compiling assembly to bytecode
 * [Capstone](https://github.com/aquynh/capstone) for disassembling bytecode
 * [Unicorn](https://github.com/unicorn-engine/unicorn/) for the emulation

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:

```bash
pip3 install cemu
```

Last stable from Github:

```bash
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

```bash
python -m cemu
```

This should produce a GUI similar to this:

![cemu-gui](src/cemu/img/cemu-windows-light.png)
![cemu-gui](src/cemu/img/cemu-windows-dark.png)

### In the terminal

```bash
python -m cemu cli
```

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

![cemu-cli](https://i.imgur.com/SyRJmI5.png)

### As a Library

```bash
$ python
>>> import cemu
```

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

## Contribution ##

`cemu` was created and maintained by myself, [`@_hugsy_`](https://twitter.com/_hugsy_), but kept fresh thanks to [all the contributors](https://github.com/hugsy/cemu/graphs/contributors).

[ ![contributors-img](https://contrib.rocks/image?repo=hugsy/cemu) ](https://github.com/hugsy/cemu/graphs/contributors)

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](https://github.com/hugsy/sponsors) - it really helps dedicating time and resources to the projects!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "CEmu",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "aarch64, arm, assembly, disassembly, emulation, mips, powerpc, sparc, x64, x86",
    "author": null,
    "author_email": "hugsy <hugsy@blah.cat>",
    "download_url": "https://files.pythonhosted.org/packages/f4/4f/29c03e2a77e31e21c1d24e28ded2f8971f98489c76bcc72906d6032f2c2d/cemu-0.8.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img alt=\"Logo\" src=\"src/cemu/img/new_logo.png\" width=20%>\n</p>\n\n<h2 align=\"center\">CEmu : The Cheap (Assembly) Emulator</h2>\n\n<p align=\"center\">\n  <a href=\"https://github.com/psf/black\"><img alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"></a>\n  <a href=\"https://github.com/hugsy/cemu/blob/master/LICENSE\"><img alt=\"Licence MIT\" src=\"https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000?style=plastic\"></a>\n  <img alt=\"Python-Version 3.10\" src=\"https://img.shields.io/pypi/pyversions/cemu.svg\">\n  <a href=\"https://pypi.org/project/cemu/\"><img alt=\"CEmu on PyPI\" src=\"https://img.shields.io/pypi/v/cemu.svg\"></a>\n  <a href=\"https://discord.gg/qBn9MbG9vp\"><img alt=\"CEmu on Discord\" src=\"https://img.shields.io/badge/Discord-CEmu-green\"></a>\n  <a href=\"https://pepy.tech/project/cemu\"><img alt=\"Downloads\" src=\"https://static.pepy.tech/badge/cemu\"></a>\n</p>\n\n\n## Description\n\nWriting 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.\n\n**CEmu** is built upon:\n * [Keystone](https://github.com/keystone-engine/keystone) for compiling assembly to bytecode\n * [Capstone](https://github.com/aquynh/capstone) for disassembling bytecode\n * [Unicorn](https://github.com/unicorn-engine/unicorn/) for the emulation\n\nAnd the GUI is powered by in a Qt6.\n\nIt allows to test binary samples, check your shellcodes or even simply learn how to write assembly code, all of this for the following architectures:\n\n  - x86-32 / x86-64\n  - ARM / AArch64\n  - MIPS / MIPS64\n  - SPARC / SPARC64\n  - PPC (but not emulation)\n\n`CEmu` was mostly tested to work on Linux and Windows, but should work on MacOS.\n\n\n## Installation ##\n\n__Notes__\n\nSince 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.\n\nIn addition, Python >= 3.10 is required, starting `0.6`.\n\n\n### Quick install with PIP ###\n\nLast stable from PyPI:\n\n```bash\npip3 install cemu\n```\n\nLast stable from Github:\n\n```bash\ngit clone https://github.com/hugsy/cemu\ncd cemu\npip3 install --upgrade .\n```\n\nFor 99% of cases, that's all you need to do. `cemu` will be installed in the associated `Scripts` directory:\n * On Linux by default the executable will be found as `/usr/local/bin/cemu` if installed as root, `~/.local/bin/cemu` for non-root\n * On Windows, `%PYTHON_DIR%\\Scripts\\cemu.exe` if installed with privileges, `%APPDATA%\\Python\\Python310\\Scripts\\cemu.exe` if not\n\n## Usage\n\n### As a GUI\n\nAfter installing with `pip`, simply run the executable, or invoke via Python\n\n```bash\npython -m cemu\n```\n\nThis should produce a GUI similar to this:\n\n![cemu-gui](src/cemu/img/cemu-windows-light.png)\n![cemu-gui](src/cemu/img/cemu-windows-dark.png)\n\n### In the terminal\n\n```bash\npython -m cemu cli\n```\n\nFrom where you'll end up in a REPL, allowing you to build and run the emulation environment.\n\n![cemu-cli](https://i.imgur.com/SyRJmI5.png)\n\n### As a Library\n\n```bash\n$ python\n>>> import cemu\n```\n\nThen use the provided API to build and run your environment.\n\n## Contribution ##\n\n`cemu` was created and maintained by myself, [`@_hugsy_`](https://twitter.com/_hugsy_), but kept fresh thanks to [all the contributors](https://github.com/hugsy/cemu/graphs/contributors).\n\n[ ![contributors-img](https://contrib.rocks/image?repo=hugsy/cemu) ](https://github.com/hugsy/cemu/graphs/contributors)\n\nIf you just like the tool, consider dropping on Discord (or Twitter or other) a simple *\"thanks\"*, it is always very appreciated.\nAnd if you can, consider [sponsoring me](https://github.com/hugsy/sponsors) - it really helps dedicating time and resources to the projects!\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "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).",
    "version": "0.8.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/hugsy/cemu/issues",
        "Homepage": "https://github.com/hugsy/cemu"
    },
    "split_keywords": [
        "aarch64",
        " arm",
        " assembly",
        " disassembly",
        " emulation",
        " mips",
        " powerpc",
        " sparc",
        " x64",
        " x86"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "df6b7d0dbeafcc3d4873707ba91641069891b0a4cbe884474a5ecb856d9303a4",
                "md5": "694cc1b3b068ec519c407b43f27c3370",
                "sha256": "c64de54145a5e7ea34bed56aae0bb5611e50ef8b50385e9bee4fcd0c4508714a"
            },
            "downloads": -1,
            "filename": "cemu-0.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "694cc1b3b068ec519c407b43f27c3370",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 586956,
            "upload_time": "2024-08-02T15:46:17",
            "upload_time_iso_8601": "2024-08-02T15:46:17.674173Z",
            "url": "https://files.pythonhosted.org/packages/df/6b/7d0dbeafcc3d4873707ba91641069891b0a4cbe884474a5ecb856d9303a4/cemu-0.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f44f29c03e2a77e31e21c1d24e28ded2f8971f98489c76bcc72906d6032f2c2d",
                "md5": "b8176c23bfdc8f54b8e86bf1564bfe21",
                "sha256": "112e0b10dd7eeaae539bda932648c73e3d463bb21cad6fdf7660d453ece08074"
            },
            "downloads": -1,
            "filename": "cemu-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b8176c23bfdc8f54b8e86bf1564bfe21",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 573265,
            "upload_time": "2024-08-02T15:46:19",
            "upload_time_iso_8601": "2024-08-02T15:46:19.505471Z",
            "url": "https://files.pythonhosted.org/packages/f4/4f/29c03e2a77e31e21c1d24e28ded2f8971f98489c76bcc72906d6032f2c2d/cemu-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-02 15:46:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hugsy",
    "github_project": "cemu",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cemu"
}
        
Elapsed time: 4.67812s