ret2jazzy / disasm.pro

A realtime assembler/disassembler (formerly known as disasm.ninja)
https://disasm.pro/
291 stars 31 forks source link

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:

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

Installation

To Install and run it locally:

git clone https://github.com/ret2got/disasm.pro.git --recursive
cd disasm.pro
cd keystone
mkdir build; cd build
../make-share.sh; sudo make install
cd bindings/python
sudo make install3
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.