All Projects → Despector → Despector

Despector / Despector

Licence: mit
Java / Kotlin Decompiler and AST Library

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Despector

Replica
Ghidra Analysis Enhancer 🐉
Stars: ✭ 194 (+53.97%)
Mutual labels:  decompiler, reverse-engineering
Dnpatch
.NET Patcher library using dnlib
Stars: ✭ 249 (+97.62%)
Mutual labels:  decompiler, reverse-engineering
Hexraystoolbox
Hexrays Toolbox - Find code patterns within the Hexrays AST
Stars: ✭ 202 (+60.32%)
Mutual labels:  decompiler, reverse-engineering
Fernflower
Unofficial mirror of FernFlower Java decompiler (All pulls should be submitted upstream)
Stars: ✭ 2,380 (+1788.89%)
Mutual labels:  decompiler, reverse-engineering
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+647.62%)
Mutual labels:  decompiler, reverse-engineering
Lucid
An Interactive Hex-Rays Microcode Explorer
Stars: ✭ 188 (+49.21%)
Mutual labels:  decompiler, reverse-engineering
Recaf
The modern Java bytecode editor
Stars: ✭ 3,374 (+2577.78%)
Mutual labels:  decompiler, reverse-engineering
Rebel Framework
Advanced and easy to use penetration testing framework 💣🔎
Stars: ✭ 183 (+45.24%)
Mutual labels:  decompiler, reverse-engineering
Pbtk
A toolset for reverse engineering and fuzzing Protobuf-based apps
Stars: ✭ 791 (+527.78%)
Mutual labels:  decompiler, reverse-engineering
Decomp
Components of a decompilation pipeline.
Stars: ✭ 343 (+172.22%)
Mutual labels:  decompiler, reverse-engineering
Rellic
Rellic produces goto-free C output from LLVM bitcode
Stars: ✭ 234 (+85.71%)
Mutual labels:  decompiler, reverse-engineering
Termux Apktool
Decompile and Recompile android aplication use termux without openjdk installed
Stars: ✭ 53 (-57.94%)
Mutual labels:  decompiler, reverse-engineering
Boomerang
Boomerang Decompiler - Fighting the code-rot :)
Stars: ✭ 265 (+110.32%)
Mutual labels:  decompiler, reverse-engineering
Protodec
Protobuf decompiler
Stars: ✭ 37 (-70.63%)
Mutual labels:  decompiler, reverse-engineering
Jremapper
Remapping tool for compiled java programs.
Stars: ✭ 97 (-23.02%)
Mutual labels:  decompiler, reverse-engineering
Capa
The FLARE team's open-source tool to identify capabilities in executable files.
Stars: ✭ 1,981 (+1472.22%)
Mutual labels:  reverse-engineering
Openmf Archived
Abandoned C++ version. Contains useful format utils and parsers.
Stars: ✭ 123 (-2.38%)
Mutual labels:  reverse-engineering
Java Disassembler
The Java Disassembler
Stars: ✭ 114 (-9.52%)
Mutual labels:  reverse-engineering
Shinrameter
Tera DPS Meter
Stars: ✭ 112 (-11.11%)
Mutual labels:  reverse-engineering
Sonyheadphonesclient
A {Windows, macOS, Linux} client recreating the functionality of the Sony Headphones app
Stars: ✭ 123 (-2.38%)
Mutual labels:  reverse-engineering

Despector

A java / kotlin decompilation tool and AST library.

The main goal of this library was to construct a complete Abstract Source Tree (AST) for a java class file including nodes for all instructions. It is built of top of ASM which has AST elements for methods but stops there and provides a simple opcode list.

While not as useful for modifying source and reconstruction a java class file this fill AST is very useful for decompiling and for code analysis where you would like to search for patterns on a statement rather than an opcode level.

For support and discussion see our Development/Support Chat on irc.esper.net in the #decompiler channel.

Kotlin

At this time the kotlin support is quite new and all features are not set supported and bugs in the output are to be expected.

Usage as a Decompiler

java -jar Despector.jar <--config=[path]> <--lang=[java|kotlin]> [sources...] [destination]

  • The --config= allows you to define a config file for certain decompilation settings.
  • The --lang= forces the output to be in a particular language. Normal behaviour is to attempt to determine the class files source language from its contents.

Issues

This decompiler is still under heavy development and issues will happen. If you encounter any incorrect output please open an issue in the Issue Tracker. At a minimum include the expected and encountered output. A compiled class demonstrating the issue would also be extemely helpful.

Feature Requests

Feature requests are always welcome and can be made in the Issue Tracker with as much information as possible.

Configuration file

Here is a sample configuration file. It is optional but allows you to control decompilation settings such as formatting. If you would like more settings open a feature request in the Issue Tracker. The configuration file uses the HOCON configuration format.

# Despector decompiler configuration:

# Cleanup configuration
cleanup {
    # Cleanup operations to apply before emitting
    operations=[]
}
# Targeted cleanup operations
"cleanup_sections"=[]
# Emitter configuration
emitter {
    # Whether to emit synthetic members
    emit-synthetics=false
    # The path of the formatter configuration
    formatting-path="run/eclipse_formatter.xml"
    # One of: eclipse,intellij
    formatting-type=eclipse
    # The path of the import order configuration
    import-order-path="run/eclipse.importorder"
}
# Kotlin specific configuration
kotlin {
    # Whether to replace strings containing new lines with raw strings
    replace-multiline-strings=true
}
# Prints out opcodes of a method when it fails to decompile.
print-opcodes-on-error=true
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].