plasma-disassembler / Plasma

Licence: gpl-3.0
Plasma is an interactive disassembler for x86/ARM/MIPS. It can generates indented pseudo-code with colored syntax.

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Plasma

Capstone
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.
Stars: ✭ 5,374 (+81.8%)
Mutual labels:  disassembler, arm, x86, x86-64, mips, reverse-engineering
Unicorn
Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, X86)
Stars: ✭ 4,934 (+66.91%)
Mutual labels:  arm, x86, x86-64, mips, reverse-engineering
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (-96.35%)
Mutual labels:  arm, x86-64, disassembler, capstone, x86
Keystone
Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings
Stars: ✭ 1,654 (-44.05%)
Mutual labels:  arm, x86, x86-64, mips, reverse-engineering
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (-68.13%)
Mutual labels:  disassembler, arm, x86, x86-64, reverse-engineering
Keypatch
Multi-architecture assembler for IDA Pro. Powered by Keystone Engine.
Stars: ✭ 939 (-68.23%)
Mutual labels:  arm, x86, x86-64, mips, reverse-engineering
Bap
Binary Analysis Platform
Stars: ✭ 1,385 (-53.15%)
Mutual labels:  disassembler, arm, x86, mips, reverse-engineering
Rop Tool
A tool to help you write binary exploits
Stars: ✭ 590 (-80.04%)
Mutual labels:  arm, x86, x86-64, mips
asm2cfg
Python command-line tool and GDB extension to view and save x86, ARM and objdump assembly files as control-flow graph (CFG) pdf files
Stars: ✭ 42 (-98.58%)
Mutual labels:  arm, x86-64, disassembler, x86
Arm now
arm_now is a qemu powered tool that allows instant setup of virtual machines on arm cpu, mips, powerpc, nios2, x86 and more, for reverse, exploit, fuzzing and programming purpose.
Stars: ✭ 719 (-75.68%)
Mutual labels:  arm, x86, x86-64, mips
Reverse Engineering
This repository contains some of the executables that I've cracked.
Stars: ✭ 29 (-99.02%)
Mutual labels:  arm, x86, x86-64, reverse-engineering
Edb Debugger
edb is a cross-platform AArch32/x86/x86-64 debugger.
Stars: ✭ 2,019 (-31.7%)
Mutual labels:  capstone, x86, x86-64, reverse-engineering
Cemu
Cheap EMUlator: lightweight multi-architecture assembly playground
Stars: ✭ 666 (-77.47%)
Mutual labels:  capstone, arm, x86-64, mips
Redasm
The OpenSource Disassembler
Stars: ✭ 1,042 (-64.75%)
Mutual labels:  disassembler, arm, mips, reverse-engineering
X64dbg
An open-source x64/x32 debugger for windows.
Stars: ✭ 37,825 (+1179.6%)
Mutual labels:  disassembler, x86, x86-64, reverse-engineering
Fhex
A Full-Featured HexEditor compatible with Linux/Windows/MacOS
Stars: ✭ 225 (-92.39%)
Mutual labels:  disassembler, capstone, reverse-engineering
Holodec
Decompiler for x86 and x86-64 ELF binaries
Stars: ✭ 195 (-93.4%)
Mutual labels:  disassembler, x86, x86-64
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 (-91.54%)
Mutual labels:  disassembler, capstone, arm
Zydis
Fast and lightweight x86/x86-64 disassembler and code generation library
Stars: ✭ 2,168 (-26.66%)
Mutual labels:  disassembler, x86-64, x86
bmod
bmod parses binaries for modification/patching and disassembles machine code sections.
Stars: ✭ 12 (-99.59%)
Mutual labels:  x86-64, disassembler, x86

PLASMA

The old project name was Reverse.

PLASMA is an interactive disassembler. It can generate a more readable assembly (pseudo code) with colored syntax. You can write scripts with the available Python api (see an example below). The project is still in big development.

wiki : TODO list and some documentation.

It supports :

  • architectures : x86{64}, ARM, MIPS{64} (partially for ARM and MIPS)
  • formats : ELF, PE, RAW

Warning: until structures and type definitions are not implemented, the database compatibility could be broken.

Requirements

  • python >= 3.4
  • capstone, tested with 4.0-alpha5
  • python-pyelftools
  • pefile + python3-future
  • python-msgpack >= 0.4.6
  • c++filt (available in the binutils Linux package)
  • terminal should support UTF8 and 256 colors (if not, use the option --nocolor)

Optional :

  • python-qt4 used for the memory map
  • keystone for the script asm.py

Installation

./install.sh

Or if you have already installed requirements with the previous command:

./install.sh --update

Check tests :

make
....................................................................................
84/84 tests passed successfully in 2.777975s
analyzer tests...
...

Pseudo-decompilation of functions

$ plasma -i tests/server.bin
>> v main
# you can press tab to show the pseudo decompilation
# | to split the window
# See the command help for all shortcuts

plasma

Take the control of the flow graph by inverting conditional jumps:

plasma

Scripting (Python API)

See more on the wiki for the API.

Some examples (these scripts are placed in plasma/scripts) :

$ plasma -i FILE
plasma> py !strings.py             # print all strings
plasma> py !xrefsto.py FUNCTION    # xdot call graph
plasma> py !crypto.py              # detect some crypto constants
plasma> py !asm.py CODE            # assemble with keystone
plasma> py !disasm.py HEX_STRING   # disassemble a buffer
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].