Skip to content
A realtime assembler/disassembler (formerly known as disasm.ninja)
Branch: master
Clone or download
Latest commit d7eb532 Jul 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Rebrand Jul 12, 2019
keystone @ a359093 Re-added submodule Jul 10, 2019
.gitignore Hax working Apr 3, 2019
.gitmodules Re-added submodule Jul 10, 2019
README.md Rebrand Jul 12, 2019
ninja.py Fixed the segfault somewhat Jul 4, 2019
requirements.txt Update requirements.txt Jul 9, 2019

README.md

disasm.pro

Formerly known as disasm.ninja, It's a multi-architecture realtime assembler/disassembler with line-to-line correlation. A live version is currently up at https://disasm.pro/

What and Why

It is basically a nice frontend of my keystone fork (for line-to-line assembling) and capstone. I don't normally do frontend development but I wanted something for quickly assembling/disassembling tiny snippets of code (mostly during CTFs), so I ended up writing this.

I know there are other online assemblers/disassemblers out there, but none of them had all the features I required.

Support

It currently supports 5 architectures:

  • x86/64
  • ARMv8
  • MIPS
  • Sparc
  • PowerPC

Most typical assembler directives are also supported. Macros are not fully supported.

Installation

To Install and run it locally:

  • Git clone with submodules
git clone https://github.com/ret2got/disasm.pro.git --recursive
cd disasm.pro
  • Build and Install the keystone fork (It's a submodule)
cd keystone
mkdir build; cd build
../make-share.sh; sudo make install
  • Install the Python3 bindings
cd bindings/python
sudo make install3
  • Install Python dependencies
pip3 install -r requirements.txt

Now you can run it by executing the ninja.py

python3 ninja.py

Bugs/Issues

If you stumble upon any bugs or somehow get it to segfault, please file an issue.

You can’t perform that action at this time.