Skip to content

Commit 4e28a1a

Browse files
authored
Merge pull request #187 from ItzSomebody/master
2.9.8 Build + Some updates of my own.
2 parents d6603da + e95897f commit 4e28a1a

513 files changed

Lines changed: 35011 additions & 37037 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33
.project
44
*.iml
55
.idea/
6-
target/
7-
dependency-reduced-pom.xml
8-
6+
out/
7+
.DS_Store

BytecodeViewer 2.9.8-fatjar.jar

-23.1 MB
Binary file not shown.

BytecodeViewer 2.9.8.jar

-1.2 MB
Binary file not shown.

BytecodeViewer 3.0.0-preview2.jar

-25.3 MB
Binary file not shown.

README.txt renamed to CHANGELOG.md

Lines changed: 11 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,5 @@
1-
Bytecode Viewer is an Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger and more.
2-
It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.
3-
4-
There is also a plugin system that will allow you to interact with the loaded classfiles, for example you can write a String deobfuscator, a malicious code searcher, or something else you can think of.
5-
You can either use one of the pre-written plugins, or write your own. It supports groovy scripting. Once a plugin is activated, it will execute the plugin with a ClassNode ArrayList of every single class loaded in BCV, this allows the user to handle it completely using ASM.
6-
7-
Code from various projects has been used, including but not limited to:
8-
J-RET by WaterWolf
9-
JHexPane by Sam Koivu
10-
RSynaxPane by Robert Futrell
11-
Commons IO by Apache
12-
ASM by OW2
13-
FernFlower by Stiver
14-
Procyon by Mstrobel
15-
CFR by Lee Benfield
16-
CFIDE by Bibl
17-
Smali by JesusFreke
18-
Dex2Jar by pxb1..?
19-
Krakatau by Storyyeller
20-
JD GUI/JD Core by The Java-Decompiler Team
21-
Enjarify by Storyyeller
22-
23-
Contributors:
24-
Konloch
25-
Bibl
26-
Fluke
27-
Righteous
28-
sahitya-pavurala
29-
priav03
30-
Afffsdd
31-
Szperak
32-
Zooty
33-
samczsun
34-
If I missed you, please feel free to contact me @Konloch or konloch@gmail.com
35-
36-
Contribution Guide Lines/Coding Conventions:
37-
Packages must start with the.bytecode.club.bytecodeviewer
38-
If code you write can throw an exception, handle it using new the.bytecode.club.bytecodeviewer.ExceptionUI(exception, "authors@email.com")
39-
All variables must be at the start of each class.
40-
Brackets are meant to be on the same line, I.E. public void main(String[] args) { not (String[] args) <NEWLINE_BREAK> {
41-
42-
Website: https://bytecodeviewer.com
43-
Source Code: https://github.com/konloch/bytecode-viewer
44-
Bin/Archive: https://github.com/konloch/bytecode-viewer/releases
45-
Java Docs: https://the.bytecode.club/docs/bytecode-viewer/
46-
License (Copyleft): https://raw.githubusercontent.com/Konloch/bytecode-viewer/master/LICENSE
47-
Report Bugs (or below): https://github.com/Konloch/bytecode-viewer/issues
48-
Discussion Forum: https://the.bytecode.club/forumdisplay.php?fid=69
49-
50-
Key Features:
51-
Krakatau Integration for Bytecode assembly/disassembly.
52-
Smali/BakSmali Integration - You can now edit class files/dex files via smali!
53-
APK/DEX Support - Using Dex2Jar and Jar2Dex it's able to load and save APKs with ease!
54-
Java Decompiler - It utilizes FernFlower, Procyon and CFR for decompilation.
55-
Bytecode Decompiler - A modified version of CFIDE's.
56-
Hex Viewer - Powered by JHexPane.
57-
Each Decompiler/Editor/Viewer is toggleable, you can also select what will display on each pane.
58-
Fully Featured Search System - Search through strings, functions, variables and more!
59-
A Plugin System With Built In Plugins - (Show All Strings, Malicious Code Scanner, String Decrypters, etc)
60-
Fully Featured Scripting System That Supports Groovy.
61-
EZ-Inject - Graphically insert hooks and debugging code, invoke main and start the program.
62-
Recent Files & Recent Plugins.
63-
And more! Give it a try for yourself!
64-
65-
Command Line Input:
66-
-help Displays the help menu
67-
-list Displays the available decompilers
68-
-decompiler <decompiler> Selects the decompiler, procyon by default
69-
-i <input file> Selects the input file (Jar, Class, APK, ZIP, DEX all work automatically)
70-
-o <output file> Selects the output file (Java or Java-Bytecode)
71-
-t <target classname> Must either be the fully qualified classname or "all" to decompile all as zip
72-
-nowait Doesn't wait for the user to read the CLI messages
73-
74-
Are you a Java Reverse Engineer? Do you want to learn?
75-
Join The Bytecode Club Today!
76-
https://the.bytecode.club
77-
781
Changelog:
2+
```
793
--- Beta 1.0.0 ---:
804
10/4/2014 - Designed a POC GUI, still needs a lot of work.
815
10/4/2014 - Started importing J-RET's backend.
@@ -417,4 +341,13 @@ Changelog:
417341
07/30/2015 - Removed Janino Compiler & moved to Javac, it can now compile decompiled classes again.
418342
07/30/2015 - Affssdd fixed the File Navigator Pane's Quick Class Search.
419343
07/30/2015 - Fixed a process leak in KrakatauDisassembler.
420-
07/30/2015 - Started working on converting all the decompilers to launch in their own process in an effort to reduce BCV resources (only for non-fatjar version).
344+
07/30/2015 - Started working on converting all the decompilers to launch in their own process in an effort to reduce BCV resources (only for non-fatjar version).
345+
--- 2.9.10 ---;
346+
1/30/2018 - Reverted back to what seemed like a stable 2.9.9 build and screwed around with it.
347+
1/31/2018 - That build was bugged, screw this and let's start over back from 2.9.8.
348+
1/31/2018 - Fixed CFR not showing (bug from 2.9.9)
349+
1/31/2018 - Beefed up Bytecode decompiler.
350+
1/31/2018 - Fomatted all the classes so GitHub doesn't show them as a mess.
351+
1/31/2018 - Made Krakatau and Enjarify work offline (assuming you have the libraries).
352+
1/31/2018 - Added stackframes remover.
353+
```

CONTRIBUTING.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Contribution Guide Lines/Coding Conventions:
2+
* Packages must start with the.bytecode.club.bytecodeviewer
3+
* If code you write can throw an exception, handle it using new the.bytecode.club.bytecodeviewer.ExceptionUI(exception, "authors@email.com")
4+
* All variables must be at the start of each class.
5+
* Brackets are meant to be on the same line, I.E. public void main(String[] args) { not (String[] args) <NEWLINE_BREAK> {

LICENSE

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,4 +618,57 @@ an absolute waiver of all civil liability in connection with the
618618
Program, unless a warranty or assumption of liability accompanies a
619619
copy of the Program in return for a fee.
620620

621-
END OF TERMS AND CONDITIONS
621+
END OF TERMS AND CONDITIONS
622+
623+
How to Apply These Terms to Your New Programs
624+
625+
If you develop a new program, and you want it to be of the greatest
626+
possible use to the public, the best way to achieve this is to make it
627+
free software which everyone can redistribute and change under these terms.
628+
629+
To do so, attach the following notices to the program. It is safest
630+
to attach them to the start of each source file to most effectively
631+
state the exclusion of warranty; and each file should have at least
632+
the "copyright" line and a pointer to where the full notice is found.
633+
634+
Bytecode Viewer - Java & Android Reverse Engineering Suite
635+
Copyright (C) 2014 Kalen "Konloch" Kinloch - http://bytecodeviewer.com - http://the.bytecode.club
636+
637+
This program is free software: you can redistribute it and/or modify
638+
it under the terms of the GNU General Public License as published by
639+
the Free Software Foundation, either version 3 of the License, or
640+
(at your option) any later version.
641+
642+
This program is distributed in the hope that it will be useful,
643+
but WITHOUT ANY WARRANTY; without even the implied warranty of
644+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645+
GNU General Public License for more details.
646+
647+
You should have received a copy of the GNU General Public License
648+
along with this program. If not, see <http://www.gnu.org/licenses/>.
649+
650+
Also add information on how to contact you by electronic and paper mail.
651+
652+
If the program does terminal interaction, make it output a short
653+
notice like this when it starts in an interactive mode:
654+
655+
Bytecode Viewer(BCV) Copyright (C) 2014 Kalen "Konloch" Kinloch - http://bytecodeviewer.com - http://the.bytecode.club
656+
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657+
This is free software, and you are welcome to redistribute it
658+
under certain conditions; type `show c' for details.
659+
660+
The hypothetical commands `show w' and `show c' should show the appropriate
661+
parts of the General Public License. Of course, your program's commands
662+
might be different; for a GUI interface, you would use an "about box".
663+
664+
You should also get your employer (if you work as a programmer) or school,
665+
if any, to sign a "copyright disclaimer" for the program, if necessary.
666+
For more information on this, and how to apply and follow the GNU GPL, see
667+
<http://www.gnu.org/licenses/>.
668+
669+
The GNU General Public License does not permit incorporating your program
670+
into proprietary programs. If your program is a subroutine library, you
671+
may consider it more useful to permit linking proprietary applications with
672+
the library. If this is what you want to do, use the GNU Lesser General
673+
Public License instead of this License. But first, please read
674+
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

README.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Bytecode Viewer
2+
3+
Bytecode Viewer is an Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger and more.
4+
It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.
5+
6+
There is also a plugin system that will allow you to interact with the loaded classfiles, for example you can write a String deobfuscator, a malicious code searcher, or something else you can think of.
7+
You can either use one of the pre-written plugins, or write your own. It supports groovy scripting. Once a plugin is activated, it will execute the plugin with a ClassNode ArrayList of every single class loaded in BCV, this allows the user to handle it completely using ASM.
8+
9+
Code from various projects has been used, including but not limited to:
10+
* J-RET by WaterWolf
11+
* JHexPane by Sam Koivu
12+
* RSynaxPane by Robert Futrell
13+
* Commons IO by Apache
14+
* ASM by OW2
15+
* FernFlower by Stiver
16+
* Procyon by Mstrobel
17+
* CFR by Lee Benfield
18+
* CFIDE by Bibl
19+
* Smali by JesusFreke
20+
* Dex2Jar by pxb1..?
21+
* Krakatau by Storyyeller
22+
* JD GUI/JD Core by The Java-Decompiler Team
23+
* Enjarify by Storyyeller
24+
25+
Contributors:
26+
* Konloch
27+
* Bibl
28+
* Fluke
29+
* Righteous
30+
* sahitya-pavurala
31+
* priav03
32+
* Afffsdd
33+
* Szperak
34+
* Zooty
35+
* samczsun
36+
* ItzSomebody
37+
* If I missed you, please feel free to contact me @Konloch or konloch@gmail.com
38+
39+
Website: https://bytecodeviewer.com
40+
41+
Source Code: https://github.com/konloch/bytecode-viewer
42+
43+
Bin/Archive: https://github.com/konloch/bytecode-viewer/releases
44+
45+
Java Docs: https://the.bytecode.club/docs/bytecode-viewer/
46+
47+
License (Copyleft): https://raw.githubusercontent.com/Konloch/bytecode-viewer/master/LICENSE
48+
49+
Report Bugs (or below): https://github.com/Konloch/bytecode-viewer/issues
50+
51+
Discussion Forum: https://the.bytecode.club/forumdisplay.php?fid=69
52+
53+
Key Features:
54+
* Krakatau Integration for Bytecode assembly/disassembly.
55+
* Smali/BakSmali Integration - You can now edit class files/dex files via smali!
56+
* APK/DEX Support - Using Dex2Jar and Jar2Dex it's able to load and save APKs with ease!
57+
* Java Decompiler - It utilizes FernFlower, Procyon and CFR for decompilation.
58+
* Bytecode Decompiler - A modified version of CFIDE's.
59+
* Hex Viewer - Powered by JHexPane.
60+
* Each Decompiler/Editor/Viewer is toggleable, you can also select what will display on each pane.
61+
* Fully Featured Search System - Search through strings, functions, variables and more!
62+
* A Plugin System With Built In Plugins - (Show All Strings, Malicious Code Scanner, String Decrypters, etc)
63+
* Fully Featured Scripting System That Supports Groovy.
64+
* EZ-Inject - Graphically insert hooks and debugging code, invoke main and start the program.
65+
* Recent Files & Recent Plugins.
66+
* And more! Give it a try for yourself!
67+
68+
Command Line Input:
69+
```
70+
-help Displays the help menu
71+
-list Displays the available decompilers
72+
-decompiler <decompiler> Selects the decompiler, procyon by default
73+
-i <input file> Selects the input file (Jar, Class, APK, ZIP, DEX all work automatically)
74+
-o <output file> Selects the output file (Java or Java-Bytecode)
75+
-t <target classname> Must either be the fully qualified classname or "all" to decompile all as zip
76+
-nowait Doesn't wait for the user to read the CLI messages
77+
```
78+
79+
Are you a Java Reverse Engineer? Do you want to learn?
80+
81+
Join The Bytecode Club Today!
82+
83+
https://the.bytecode.club

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.9.8
1+
2.9.10

libs/Krakatau-10.zip

273 KB
Binary file not shown.

0 commit comments

Comments
 (0)