All Projects → 0xbc → Chiasm Shell

0xbc / Chiasm Shell

Licence: mit
Python-based interactive assembler/disassembler CLI, powered by Keystone/Capstone.

Programming Languages

python
139335 projects - #7 most used programming language
assembler
53 projects

Projects that are alternatives of or similar to Chiasm Shell

Android Disassembler
Disassemble ANY files including .so (NDK, JNI), Windows PE(EXE, DLL, SYS, etc), linux binaries, libraries, and any other files such as pictures, audios, etc(for fun)files on Android. Capstone-based disassembler application on android. 안드로이드 NDK 공유 라이브러리, Windows 바이너리, etc,... 리버싱 앱
Stars: ✭ 250 (+941.67%)
Mutual labels:  disassembler, capstone
Kcshell
Simple Python3 based interactive assembly/disassembly shell for various architectures powered by Keystone/Capstone.
Stars: ✭ 104 (+333.33%)
Mutual labels:  disassembler, capstone
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+350%)
Mutual labels:  disassembler, capstone
Fhex
A Full-Featured HexEditor compatible with Linux/Windows/MacOS
Stars: ✭ 225 (+837.5%)
Mutual labels:  disassembler, capstone
Plasma
Plasma is an interactive disassembler for x86/ARM/MIPS. It can generates indented pseudo-code with colored syntax.
Stars: ✭ 2,956 (+12216.67%)
Mutual labels:  disassembler, capstone
Ssh Helper
Easily manage your ssh config.
Stars: ✭ 19 (-20.83%)
Mutual labels:  cli
Cliclick
macOS CLI tool for emulating mouse and keyboard events
Stars: ✭ 917 (+3720.83%)
Mutual labels:  cli
Aruba
Test command-line applications with Cucumber-Ruby, RSpec or Minitest. The most up to date documentation can be found on Cucumber.Pro (https://app.cucumber.pro/projects/aruba)
Stars: ✭ 900 (+3650%)
Mutual labels:  cli
Git2json
Simple tool to get a JSON from your git log.
Stars: ✭ 18 (-25%)
Mutual labels:  cli
Mprislyrics
Small command-line utility that displays lyrics in sync with the currently playing song in a MPRIS2 capable player.
Stars: ✭ 24 (+0%)
Mutual labels:  cli
Hed
vim like hex editor
Stars: ✭ 23 (-4.17%)
Mutual labels:  cli
Mrm
Codemods for your project config files
Stars: ✭ 900 (+3650%)
Mutual labels:  cli
Namecheck
Check your name idea availability with CLI
Stars: ✭ 19 (-20.83%)
Mutual labels:  cli
Fluddy
🤝 A dependency-free command line utility for managing, updating, creating and launching Flask Apps.
Stars: ✭ 23 (-4.17%)
Mutual labels:  cli
Bane
Custom & better AppArmor profile generator for Docker containers.
Stars: ✭ 902 (+3658.33%)
Mutual labels:  cli
Loopy
Loopy is an unofficial cli client for CBA Loop for the lazy bones
Stars: ✭ 23 (-4.17%)
Mutual labels:  cli
Lvartisan
Laravel artisan command for creating view.
Stars: ✭ 18 (-25%)
Mutual labels:  cli
Probe spider
Probe_Spider is a Open Source Intelligence Tool made complete out of Python.
Stars: ✭ 20 (-16.67%)
Mutual labels:  cli
Html Table Cli
Create interactive tables from JSON on the command-line
Stars: ✭ 23 (-4.17%)
Mutual labels:  cli
Clifx
Declarative framework for building command line interfaces
Stars: ✭ 900 (+3650%)
Mutual labels:  cli

chiasm-shell

Latest Release
Python-based interactive assembler/disassembler CLI, powered by Keystone/Capstone.

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
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].