CLI for assembly/disassembly powered by Keystone/Capstone.
Project description
Why did you make this?
I wanted to quickly view some opcodes with metasm-shell.rb, but I didn’t have a Metasploit install handy. I didn’t really want to mess around with Ruby either, so I figured that writing my own replacement was a good excuse to play with Keystone and Capstone.
How do I install it?
pip install chiasm-shell
# OR
mkvirtualenv chiasm-shell # optional
git clone https://github.com/0xbc/chiasm-shell
cd chiasm-shell
python setup.py install # assumes you have Capstone and Keystone
# build toolchains installed, which includes CMake.
How do I run it?
chiasm-shell
# or, from the repo base directory:
python -m chiasm_shell.chiasm_shell
How do I use it?
When the prompt is asm>, you’re using the interactive assembler backend (Keystone).
Input one or more assembly statements separated by a semi-colon. x86 uses Intel syntax only at the moment.
When the prompt is disasm>, you’re using the interactive disassembler backend (Capstone).
Input one or more bytes represented by \xXX, where XX is a hex value.
To switch backends, use switch asm or switch disasm.
To change architecture, use setarch <arch> <mode(s)>.
e.g. setarch x86 64.
You can use more than one mode, separated by spaces.
Use lsarch and lsmode to view supported architectures and modes for the current backend
At the moment, you need to know what modes are relevant to each architecture - check the Keystone/Capstone source if you’re not sure.
Type help to see a list of commands; help <cmd> to see the docstring for cmd.
Example usages
asm> inc eax; xor ebx, ebx \x40\x31\xdb
disasm> \x40\x31\xdb 0x1000: inc eax 0x1001: xor ebx, ebx
It’s broken/I have a suggestion/etc.
Please get in touch/raise an issue/PR/etc!
Known Issues
None at this time.
TODO
Syntax highlighting and/or tab completion for assembly
Intelligent mode selection
Support different input/output formats
Test suite
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file chiasm-shell-1.0.0a9.tar.gz
.
File metadata
- Download URL: chiasm-shell-1.0.0a9.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40d0133ca11b5c230781c64d61a96619420c5af121264fe894d8a07abab7d50e |
|
MD5 | b1f8107c5452fa473ba0da8c72541ddb |
|
BLAKE2b-256 | b3950f03301ac21703fc2542b55cd227957f36d5a71404d389968ea80224f633 |