Need help with disasm.pro?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

ret2jazzy
231 Stars 25 Forks 67 Commits 1 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

# 325,428
ctf-wri...
Shell
Elixir
Haxe
57 commits
# 565,305
Shell
Elixir
Common ...
Haxe
5 commits

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

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.

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.