by ret2jazzy

ret2jazzy / disasm.pro

A realtime assembler/disassembler (formerly known as disasm.ninja)

211 Stars 22 Forks Last release: Not found 67 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


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 analyzing tiny snippets of code (mostly during CTFs) and shellcoding, which led to this.

I know there are other online assemblers/disassemblers out there, but none of them fit my exact needs.


It currently supports 5 architectures:

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

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


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

python3 ninja.py


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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.