Skip to content

Commit 5efba02

Browse files
committed
2.8.1
02/04/2015 - Fixed UI bug with Krakatau/Krakatau Editable view panes. 02/05/2015 - Added CTRL + F.
1 parent 0fb031b commit 5efba02

File tree

9 files changed

+353
-95
lines changed

9 files changed

+353
-95
lines changed
16 MB
Binary file not shown.

README.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Bytecode Viewer is an Advanced Lightweight Java Bytecode Viewer, 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.
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.
22
It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.
33

44
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.
@@ -28,9 +28,11 @@ Contributors:
2828
Afffsdd
2929
If I missed you, please feel free to contact me @Konloch or konloch@gmail.com
3030

31-
Contribution Guide Lines:
31+
Contribution Guide Lines/Coding Conventions:
3232
Packages must start with the.bytecode.club.bytecodeviewer
33-
If code you write can throw an exception, handle it using new the.bytecode.club.bytecodeviewer.ExceptionUI(exception)
33+
If code you write can throw an exception, handle it using new the.bytecode.club.bytecodeviewer.ExceptionUI(exception, "authors@email.com")
34+
All variables must be at the start of each class.
35+
Brackets are meant to be on the same line, I.E. public void main(String[] args) { not (String[] args) <NEWLINE_BREAK> {
3436

3537
Website: https://bytecodeviewer.com
3638
Source Code: https://github.com/konloch/bytecode-viewer
@@ -287,4 +289,7 @@ Changelog:
287289
02/03/2015 - Updated the about window.
288290
02/03/2015 - Dropped JRuby and Jython support (BCV is now roughly 16mb, was 45mb).
289291
02/04/2015 - Added Krakatau Disassembly.
290-
02/04/2015 - Added Krakatau Assembly.
292+
02/04/2015 - Added Krakatau Assembly.
293+
--- 2.8.1 ---:
294+
02/04/2015 - Fixed UI bug with Krakatau/Krakatau Editable view panes.
295+
02/05/2015 - Added CTRL + F.

plugins/Skeleton.rb

Lines changed: 0 additions & 15 deletions
This file was deleted.

plugins/skeleton.py

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,31 @@
6666
* allows the user to handle it completely using ASM.
6767
*
6868
* TODO:
69+
*
70+
* 3.0.0: (RETIREMENT PARTY, WOHOOO)
71+
* maybe just do AMS5 then obfuscate the dex2jar shit.
6972
* The import jar method eats up a lot of memory, look into some how reducing this.
7073
* Add obfuscation:
7174
* - Add integer boxing and other obfuscation methods contra implemented
7275
* - Insert unadded/debug opcodes to try to fuck up decompilers
7376
* - ClassAnylyzterAdapter
74-
* Add progress bars on saving all zips/java decompile jar
7577
* Add the jump/save mark system Ida Pro has.
7678
* Add class annotations to bytecode decompiler.
77-
* Option to make the bytecode pane automatically scroll to where the source code pane is
78-
* Replacing all string field calls with the string instance - would require EZ-Injection to run code?
79-
* Spiffy up the plugin console with red text optional, would require JTextPane, not JTextArea.
79+
* EVERYTHING BUG FREE, CHECK 100%
80+
* add support for all files, and resource loading (images display inside, can be view in hex)
81+
*
82+
*
83+
* 2.9.0:
84+
* make it save the last used main class entry globally, reset on workspace reset
85+
* make it use that global last used inside of export as jar
86+
* remake EZ-Inject plugin as File-Run
87+
* Add Java compiler to attempt to recompile the decompiled Java code
8088
* Add right click on tab > close other tabs > close this tab
81-
* maybe just do AMS5 then obfuscate the dex2jar shit.
89+
* Spiffy up the plugin console with red text optional, would require JTextPane, not JTextArea.
90+
* Option to make the bytecode pane automatically scroll to where the source code pane is
91+
* Add progress bars on saving all zips/java decompile jar
92+
* Take https://github.com/ptnkjke/Java-Bytecode-Editor visualize
93+
*
8294
*
8395
* ----Beta 1.0.0-----:
8496
* 10/4/2014 - Designed a POC GUI, still needs a lot of work.
@@ -309,6 +321,9 @@
309321
* 02/03/2015 - Dropped JRuby and Jython support (BCV is now roughly 16mb, was 45mb).
310322
* 02/04/2015 - Added Krakatau Disassembly.
311323
* 02/04/2015 - Added Krakatau Assembly.
324+
* -----2.8.1-----:
325+
* 02/04/2015 - Fixed UI bug with Krakatau/Krakatau Editable view panes.
326+
* 02/05/2015 - Added CTRL + F.
312327
*
313328
* @author Konloch
314329
*
@@ -317,7 +332,7 @@
317332
public class BytecodeViewer {
318333

319334
/*per version*/
320-
public static String version = "2.8.0";
335+
public static String version = "2.8.1";
321336
public static String krakatauVersion = "2";
322337
/*the rest*/
323338
public static MainViewerGUI viewer = null;

src/the/bytecode/club/bytecodeviewer/api/ExceptionUI.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
public class ExceptionUI extends JFrame {
2525

26+
private static final long serialVersionUID = -5230501978224926296L;
27+
2628
/**
2729
* @param e
2830
* The exception to be shown
@@ -98,6 +100,4 @@ private void setup(String e, String author) {
98100
this.setVisible(true);
99101
}
100102

101-
private static final long serialVersionUID = -5230501978224926296L;
102-
103103
}

src/the/bytecode/club/bytecodeviewer/api/PluginConsole.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public class PluginConsole extends JFrame {
3939
JPanel panel = new JPanel(new BorderLayout());
4040
JScrollPane scrollPane = new JScrollPane();
4141
public JCheckBox check = new JCheckBox("Exact");
42-
42+
final JTextField field = new JTextField();
43+
4344
public PluginConsole(String pluginName) {
4445
this.setIconImages(BytecodeViewer.iconList);
4546
setTitle("Bytecode Viewer - Plugin Console - " + pluginName);
@@ -48,6 +49,17 @@ public PluginConsole(String pluginName) {
4849
getContentPane().add(scrollPane, BorderLayout.CENTER);
4950

5051
scrollPane.setViewportView(textArea);
52+
textArea.addKeyListener(new KeyListener() {
53+
public void keyPressed(KeyEvent e) {
54+
if ((e.getKeyCode() == KeyEvent.VK_F) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
55+
field.requestFocus();
56+
}
57+
58+
BytecodeViewer.viewer.checkKey(e);
59+
}
60+
@Override public void keyReleased(KeyEvent arg0) { }
61+
@Override public void keyTyped(KeyEvent arg0) { }
62+
});
5163

5264
JButton searchNext = new JButton();
5365
JButton searchPrev = new JButton();
@@ -63,7 +75,6 @@ public PluginConsole(String pluginName) {
6375
BytecodeViewer
6476
.b642IMG("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAABnRSTlMANzlYgKhxpRi1AAAATElEQVR42mNgwAZYHIAEExA7qUAYLApMDmCGEwODCojByM/A8FEAyPi/moFh9QewYjCAM1iA+D2KqYwMrIlA6tUGFoa/Z4GMt1hsBgCe1wuKber+SwAAAABJRU5ErkJggg==")));
6577
panel.add(buttonPane, BorderLayout.WEST);
66-
final JTextField field = new JTextField();
6778
panel.add(field, BorderLayout.CENTER);
6879
panel.add(check, BorderLayout.EAST);
6980
searchNext.addActionListener(new ActionListener() {
@@ -93,7 +104,6 @@ public void keyPressed(KeyEvent arg0) {
93104
public void keyTyped(KeyEvent arg0) {
94105
}
95106
});
96-
97107
scrollPane.setColumnHeaderView(panel);
98108
this.setLocationRelativeTo(null);
99109
}

0 commit comments

Comments
 (0)