Skip to content

Commit b6886a1

Browse files
committed
Readme
1 parent cbdad6e commit b6886a1

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# JDA - The Java Disassembler
2+
3+
Java Disassembler (JDA) is a fork of Bytecode Viewer (BCV) that adds advanced code analysis features. The basic principles of BCV are maintained; however, many aspects are different.
4+
5+
## Motivation
6+
The main reason JDA was forked was that BCV was becoming too large and cumbersome, with many redundant, unused, or
7+
useless features. The issue with removing them is that there could be many BCV users that relied on such features.
8+
Because of this, it is more appropriate to fork JDA as a separate project. Additionally, BCV's development has
9+
stagnated, and the last official build is from July 2015. It has since grown increasingly difficult and arcane to
10+
compile BCV from source, and full jars often range into 20Mb in size. It has become necessary to fork BCV in order
11+
to make large-scale changes.
12+
13+
In addition to the growing power and complexity of commercial obfuscation programs for Java, it has become increasingly
14+
necessary to develop improved reverse engineering and static analysis tools. For this reason, JDA has been developed
15+
in order to provide professional-quality static analysis tools for JVM-based languages.
16+
17+
## Scope
18+
With that in mind, JDA's goal is to be a light-weight yet powerful Java static disassembler. BCV suffered from a
19+
multitude of issues, but a large one was that it tried to be a dynamic reverse engineering tool (debugger) as well
20+
as a static tool (disassembler) at the same time, only succeeding partially in the latter. JDA's role is to provide
21+
a platform and interface for the core features such as analysis and disassembly. Additionally, many useless
22+
or irrelevant features have been removed. JDA's scope as a program currently is to be a platform for reverse engineering
23+
tools to be built on top of.
24+
25+
In the future, JDA will have powerful static analysis tools, such as control and data flow analysis, code contraction
26+
(copy and constant propagation), whole binary cross referencing (xrefs), and an IR engine. However, these standard
27+
core utilities will be distributed separately as a plugin.

src/main/resources/intro.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<html>
22
<body style="width:800px; font-family: Arial, sans-serif;">
33
<p>
4-
<b>Java DisAssembler (JDA)</b> is a fork of Bytecode Viewer (BCV) that adds advanced code analysis features. The
4+
<b>Java Disassembler (JDA)</b> is a fork of Bytecode Viewer (BCV) that adds advanced code analysis features. The
55
basic principles of BCV are maintained; however, many aspects are different.
66
</p>
77
<p>

0 commit comments

Comments
 (0)