Skip to content

Commit c4ec1b4

Browse files
authored
Merge pull request #377 from ThexXTURBOXx/master
Optimizations
2 parents c6ab84f + 4f66739 commit c4ec1b4

58 files changed

Lines changed: 299 additions & 473 deletions

Some content is hidden

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

.github/workflows/maven.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
strategy:
1616
matrix:
17-
java: [ '8', '11', '17-ea' ] # LTS versions
17+
java: [ '8', '11', '17' ] # LTS versions
1818

1919
steps:
2020
- uses: actions/checkout@v2

install/launch4j_config.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,35 @@
1414
<lib>w32api/libshell32.a</lib>
1515
<jar>H:\Repo\BCV\bytecode-viewer\BytecodeViewer 2.9.8.jar</jar>
1616
<outfile>H:\Repo\BCV\bytecode-viewer\BytecodeViewer.exe</outfile>
17-
<errTitle></errTitle>
18-
<cmdLine></cmdLine>
17+
<errTitle/>
18+
<cmdLine/>
1919
<chdir>.</chdir>
2020
<priority>normal</priority>
21-
<downloadUrl>http://java.com/download</downloadUrl>
22-
<supportUrl></supportUrl>
21+
<downloadUrl>https://java.com/de/download/</downloadUrl>
22+
<supportUrl/>
2323
<stayAlive>false</stayAlive>
2424
<restartOnCrash>false</restartOnCrash>
25-
<manifest></manifest>
25+
<manifest/>
2626
<icon>H:\Repo\BCV\bytecode-viewer\BCV Icon.ico</icon>
2727
<jre>
28-
<path></path>
28+
<path/>
2929
<bundledJre64Bit>false</bundledJre64Bit>
3030
<bundledJreAsFallback>false</bundledJreAsFallback>
3131
<minVersion>1.7.0_00</minVersion>
32-
<maxVersion></maxVersion>
32+
<maxVersion/>
3333
<jdkPreference>preferJre</jdkPreference>
3434
<runtimeBits>64/32</runtimeBits>
3535
</jre>
3636
<versionInfo>
3737
<fileVersion>0.2.9.7</fileVersion>
38-
<txtFileVersion>http://the.bytecode.club</txtFileVersion>
38+
<txtFileVersion>https://the.bytecode.club/</txtFileVersion>
3939
<fileDescription>Bytecode Viewer</fileDescription>
40-
<copyright>http://bytecodeviewer.com</copyright>
40+
<copyright>https://bytecodeviewer.com/</copyright>
4141
<productVersion>0.2.9.6</productVersion>
42-
<txtProductVersion>http://the.bytecode.club</txtProductVersion>
42+
<txtProductVersion>https://the.bytecode.club/</txtProductVersion>
4343
<productName>Bytecode Viewer</productName>
44-
<companyName></companyName>
44+
<companyName/>
4545
<internalName>BCV</internalName>
4646
<originalFilename>Bytecode_Viewer.exe</originalFilename>
4747
</versionInfo>
48-
</launch4jConfig>
48+
</launch4jConfig>

plugins/Skeleton.gy

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import the.bytecode.club.bytecodeviewer.api.*;
2-
import java.util.ArrayList;
3-
import org.objectweb.asm.tree.ClassNode;
4-
import the.bytecode.club.bytecodeviewer.decompilers.*;
1+
import org.objectweb.asm.tree.ClassNode
2+
import the.bytecode.club.bytecodeviewer.api.Plugin
3+
import the.bytecode.club.bytecodeviewer.api.PluginConsole
54

6-
public class Skeleton extends Plugin {
5+
class Skeleton extends Plugin {
76

87
@Override
9-
public void execute(ArrayList<ClassNode> classNodesList) {
10-
PluginConsole gui = new PluginConsole("Skeleton");
11-
gui.setVisible(true);
12-
gui.appendText("executed skeleton");
8+
void execute(List<ClassNode> classNodesList) {
9+
PluginConsole gui = new PluginConsole("Skeleton")
10+
gui.setVisible(true)
11+
gui.appendText("executed skeleton")
1312
}
14-
}
13+
14+
}
Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,54 @@
1-
import the.bytecode.club.bytecodeviewer.api.*
2-
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialog;
3-
4-
import java.util.ArrayList;
5-
import java.lang.reflect.Field;
6-
import org.objectweb.asm.tree.ClassNode;
1+
import org.objectweb.asm.tree.ClassNode
72
import org.objectweb.asm.tree.FieldNode
3+
import the.bytecode.club.bytecodeviewer.api.BCV
4+
import the.bytecode.club.bytecodeviewer.api.Plugin
5+
import the.bytecode.club.bytecodeviewer.api.PluginConsole
6+
import the.bytecode.club.bytecodeviewer.gui.components.MultipleChoiceDialog
7+
8+
import java.lang.reflect.Field
89

9-
import static the.bytecode.club.bytecodeviewer.Constants.nl;
10+
import static the.bytecode.club.bytecodeviewer.Constants.nl
1011

1112
/**
1213
* This is an example of a string decrypter plugin
1314
*/
14-
public class ExampleStringDecrypter extends Plugin {
15+
class ExampleStringDecrypter extends Plugin {
1516

1617
@Override
17-
public void execute(ArrayList<ClassNode> classNodesList) {
18-
PluginConsole gui = new PluginConsole("Example String Decrypter");
18+
void execute(List<ClassNode> classNodesList) {
19+
PluginConsole gui = new PluginConsole("Example String Decrypter")
1920

2021
MultipleChoiceDialog dialog = new MultipleChoiceDialog("Bytecode Viewer - WARNING",
2122
"WARNING: This will load the classes into the JVM and execute the initialize function"
2223
+ nl + "for each class. IF THE FILE YOU'RE LOADING IS MALICIOUS, DO NOT CONTINUE.",
23-
new String[]{"Continue", "Cancel"});
24+
new String[]{"Continue", "Cancel"})
2425

2526
if(dialog.promptChoice() == 0)
2627
{
2728
for(ClassNode cn : classNodesList)
2829
{
29-
BCV.getClassNodeLoader().addClass(cn);
30+
BCV.getClassNodeLoader().addClass(cn)
3031

3132
for(Object o : cn.fields.toArray())
3233
{
33-
FieldNode f = (FieldNode) o;
34-
if(f.name.equals("z")) {// && f.desc.equals("([Ljava/lang/String;)V")) {
34+
FieldNode f = (FieldNode) o
35+
if(f.name == "z") {// && f.desc.equals("([Ljava/lang/String;)V")) {
3536
try
3637
{
3738
for(Field f2 : BCV.getClassNodeLoader().nodeToClass(cn).getFields())
3839
{
39-
String s = f2.get(null);
40-
if(s != null && !s.empty())
41-
gui.appendText(cn+":"+s);
40+
String s = f2.get(null)
41+
if(s != null && !s.empty)
42+
gui.appendText(cn + ":" + s)
4243
}
43-
} catch(Exception | StackOverflowError e) {}
44+
} catch(Exception | StackOverflowError ignored) {}
4445
}
4546
}
4647

4748
}
4849

49-
gui.setVisible(true);
50+
gui.setVisible(true)
5051
}
5152
}
52-
}
53+
54+
}

pom.xml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,25 @@
3030
<commons-text.version>1.9</commons-text.version>
3131
<darklaf.version>2.7.3</darklaf.version>
3232
<darklaf-extensions-rsta.version>0.3.4</darklaf-extensions-rsta.version>
33-
<decompiler-fernflower.version>5.2.0.Final</decompiler-fernflower.version>
34-
<dex2jar.version>v36</dex2jar.version>
35-
<fernflower.version>981e35a</fernflower.version>
33+
<decompiler-fernflower.version>5.2.1.Final</decompiler-fernflower.version>
34+
<dex2jar.version>v41</dex2jar.version>
35+
<fernflower.version>eda981d</fernflower.version>
3636
<gson.version>2.8.9</gson.version>
3737
<guava.version>31.0.1-jre</guava.version>
3838
<imgscalr-lib.version>4.2</imgscalr-lib.version>
39-
<jadx.version>1.3.0</jadx.version>
39+
<jadx.version>1.3.1</jadx.version>
4040
<janino.version>3.1.6</janino.version>
4141
<jd-gui.version>1.6.6bcv</jd-gui.version>
4242
<jgraphx.version>3.4.1.3</jgraphx.version>
4343
<js.version>21.2.0</js.version>
4444
<objenesis.version>3.2</objenesis.version>
4545
<paged-data.version>0.2.0</paged-data.version>
4646
<procyon.version>0.5.36</procyon.version>
47-
<rsyntaxtextarea.version>3.1.4</rsyntaxtextarea.version>
47+
<rsyntaxtextarea.version>3.1.5</rsyntaxtextarea.version>
4848
<semantic-version.version>2.1.1</semantic-version.version>
4949
<slf4j.version>1.7.32</slf4j.version>
5050
<smali.version>2.5.2</smali.version>
51-
<snakeyaml.version>1.29</snakeyaml.version>
51+
<snakeyaml.version>1.30</snakeyaml.version>
5252
<treelayout.version>1.0.3</treelayout.version>
5353
<webp-imageio.version>0.2.2</webp-imageio.version>
5454
<xpp3.version>1.1.4c</xpp3.version>
@@ -288,22 +288,32 @@
288288
<version>${xpp3.version}</version>
289289
</dependency>
290290
<dependency>
291-
<groupId>com.github.skylot.jadx</groupId>
291+
<groupId>io.github.skylot</groupId>
292292
<artifactId>jadx-core</artifactId>
293293
<version>${jadx.version}</version>
294294
</dependency>
295295
<dependency>
296-
<groupId>com.github.skylot.jadx</groupId>
296+
<groupId>io.github.skylot</groupId>
297297
<artifactId>jadx-java-convert</artifactId>
298298
<version>${jadx.version}</version>
299+
<exclusions>
300+
<exclusion>
301+
<groupId>com.android.tools</groupId>
302+
<artifactId>r8</artifactId>
303+
</exclusion>
304+
<exclusion>
305+
<groupId>com.jakewharton.android.repackaged</groupId>
306+
<artifactId>dalvik-dx</artifactId>
307+
</exclusion>
308+
</exclusions>
299309
</dependency>
300310
<dependency>
301-
<groupId>com.github.skylot.jadx</groupId>
311+
<groupId>io.github.skylot</groupId>
302312
<artifactId>jadx-dex-input</artifactId>
303313
<version>${jadx.version}</version>
304314
</dependency>
305315
<dependency>
306-
<groupId>com.github.skylot.jadx</groupId>
316+
<groupId>io.github.skylot</groupId>
307317
<artifactId>jadx-smali-input</artifactId>
308318
<version>${jadx.version}</version>
309319
</dependency>

src/main/java/the/bytecode/club/bytecodeviewer/api/BCV.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public static void hideFrame(JFrame frame, long milliseconds)
247247
{
248248
try {
249249
Thread.sleep(100);
250-
} catch (InterruptedException e) { }
250+
} catch (InterruptedException ignored) { }
251251
}
252252

253253
frame.setVisible(false);

src/main/java/the/bytecode/club/bytecodeviewer/bootloader/Boot.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ public static void populateLibsDirectory() {
296296
public static void dropKrakatau() {
297297
File temp = new File(getBCVDirectory() + fs + "krakatau_" + krakatauVersion + ".zip");
298298
File krakatauDirectory = new File(krakatauWorkingDirectory);
299-
Constants.krakatauWorkingDirectory = krakatauWorkingDirectory + fs + "Krakatau-master";
299+
krakatauWorkingDirectory += fs + "Krakatau-master";
300300
if (!krakatauDirectory.exists() || temp.exists()) {
301301
if (temp.exists())
302302
temp.delete();
@@ -308,7 +308,7 @@ public static void dropKrakatau() {
308308
temp.delete();
309309

310310
try (InputStream is = BytecodeViewer.class.getClassLoader().getResourceAsStream("Krakatau-"
311-
+ Constants.krakatauVersion + ".zip");
311+
+ krakatauVersion + ".zip");
312312
FileOutputStream baos = new FileOutputStream(temp)) {
313313
int r;
314314
byte[] buffer = new byte[8192];
@@ -329,7 +329,7 @@ public static void dropKrakatau() {
329329
public static void dropEnjarify() {
330330
File temp = new File(getBCVDirectory() + fs + "enjarify" + Constants.enjarifyVersion + ".zip");
331331
File enjarifyDirectory = new File(Constants.enjarifyWorkingDirectory);
332-
Constants.enjarifyWorkingDirectory = Constants.enjarifyWorkingDirectory + fs + "enjarify-master";
332+
Constants.enjarifyWorkingDirectory += fs + "enjarify-master";
333333
if (!enjarifyDirectory.exists() || temp.exists()) {
334334
if (temp.exists())
335335
temp.delete();
@@ -359,7 +359,7 @@ public static void dropEnjarify() {
359359
}
360360
}
361361

362-
public static void downloadZipsOnly() throws Exception {
362+
public static void downloadZipsOnly() {
363363
for (String s : urlList) {
364364
String fileName = s.substring("https://github.com/Konloch/bytecode-viewer/blob/master/libs/".length()
365365
);

src/main/java/the/bytecode/club/bytecodeviewer/bootloader/classtree/ClassHelper.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.util.Collection;
44
import java.util.HashMap;
55
import java.util.Map;
6-
import java.util.Map.Entry;
76
import org.objectweb.asm.tree.ClassNode;
87

98
/***************************************************************************
@@ -45,8 +44,6 @@ public static <T, K> Map<T, K> copyOf(Map<T, K> src) {
4544
}
4645

4746
public static <T, K> void copy(Map<T, K> src, Map<T, K> dst) {
48-
for (Entry<T, K> e : src.entrySet()) {
49-
dst.put(e.getKey(), e.getValue());
50-
}
47+
dst.putAll(src);
5148
}
52-
}
49+
}

src/main/java/the/bytecode/club/bytecodeviewer/bootloader/resource/external/EmptyExternalResource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package the.bytecode.club.bytecodeviewer.bootloader.resource.external;
22

3-
import java.io.IOException;
43
import java.net.URL;
54

65
/***************************************************************************
@@ -38,7 +37,7 @@ public EmptyExternalResource(URL location) {
3837
* @see the.bytecode.club.bootloader.resource.ExternalResource#load()
3938
*/
4039
@Override
41-
public T load() throws IOException {
40+
public T load() {
4241
throw new UnsupportedOperationException();
4342
}
44-
}
43+
}

src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/ClassNodeDecompiler.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ public static String getAccessString(int access) {
162162
if (!tokens.contains("interface") && !tokens.contains("enum")
163163
&& !tokens.contains("annotation"))
164164
tokens.add("class");
165-
if (tokens.size() == 0)
166-
return "[Error parsing]";
167165

168166
// hackery delimeters
169167
StringBuilder sb = new StringBuilder(tokens.get(0));

0 commit comments

Comments
 (0)