1616
1717package com .javadeobfuscator .deobfuscator ;
1818
19- import com .javadeobfuscator .deobfuscator .asm .*;
20- import com .javadeobfuscator .deobfuscator .config .*;
21- import com .javadeobfuscator .deobfuscator .exceptions .*;
22- import com .javadeobfuscator .deobfuscator .rules .*;
23- import com .javadeobfuscator .deobfuscator .transformers .*;
24- import com .javadeobfuscator .deobfuscator .utils .*;
25- import org .apache .commons .io .*;
26- import org .objectweb .asm .*;
27- import org .objectweb .asm .commons .*;
28- import org .objectweb .asm .tree .*;
29- import org .objectweb .asm .util .*;
30- import org .slf4j .*;
31-
32- import java .io .*;
33- import java .lang .reflect .*;
34- import java .util .AbstractMap .*;
19+ import com .javadeobfuscator .deobfuscator .asm .ConstantPool ;
20+ import com .javadeobfuscator .deobfuscator .config .Configuration ;
21+ import com .javadeobfuscator .deobfuscator .config .TransformerConfig ;
22+ import com .javadeobfuscator .deobfuscator .exceptions .NoClassInPathException ;
23+ import com .javadeobfuscator .deobfuscator .rules .Rule ;
24+ import com .javadeobfuscator .deobfuscator .rules .Rules ;
25+ import com .javadeobfuscator .deobfuscator .transformers .Transformer ;
26+ import com .javadeobfuscator .deobfuscator .utils .ClassTree ;
27+ import com .javadeobfuscator .deobfuscator .utils .Utils ;
28+ import org .apache .commons .io .IOUtils ;
29+ import org .objectweb .asm .ClassReader ;
30+ import org .objectweb .asm .ClassWriter ;
31+ import org .objectweb .asm .Opcodes ;
32+ import org .objectweb .asm .commons .JSRInlinerAdapter ;
33+ import org .objectweb .asm .tree .AbstractInsnNode ;
34+ import org .objectweb .asm .tree .ClassNode ;
35+ import org .objectweb .asm .tree .MethodInsnNode ;
36+ import org .objectweb .asm .tree .MethodNode ;
37+ import org .objectweb .asm .util .CheckClassAdapter ;
38+ import org .slf4j .Logger ;
39+ import org .slf4j .LoggerFactory ;
40+
41+ import java .io .File ;
42+ import java .io .FileOutputStream ;
43+ import java .io .IOException ;
44+ import java .lang .reflect .Modifier ;
45+ import java .util .AbstractMap .SimpleEntry ;
3546import java .util .*;
36- import java .util .Map .*;
37- import java .util .regex .*;
38- import java .util .zip .*;
47+ import java .util .Map .Entry ;
48+ import java .util .regex .Matcher ;
49+ import java .util .regex .Pattern ;
50+ import java .util .regex .PatternSyntaxException ;
51+ import java .util .zip .ZipEntry ;
52+ import java .util .zip .ZipFile ;
53+ import java .util .zip .ZipOutputStream ;
3954
4055public class Deobfuscator {
4156 private Map <String , ClassNode > classpath = new HashMap <>();
@@ -165,7 +180,7 @@ private void loadInput() throws IOException {
165180 Enumeration <? extends ZipEntry > e = zipIn .entries ();
166181 while (e .hasMoreElements ()) {
167182 ZipEntry next = e .nextElement ();
168- if (next .isDirectory ()) {
183+ if (next .isDirectory () && ! next . getName (). endsWith ( ".class/" ) ) {
169184 continue ;
170185 }
171186
@@ -180,7 +195,7 @@ private void loadInput() throws IOException {
180195 public void loadInput (String name , byte [] data ) {
181196 boolean passthrough = true ;
182197
183- if (name .endsWith (".class" )) {
198+ if (name .endsWith (".class" ) || name . endsWith ( ".class/" ) ) {
184199 try {
185200 ClassReader reader = new ClassReader (data );
186201 ClassNode node = new ClassNode ();
@@ -202,7 +217,7 @@ public void loadInput(String name, byte[] data) {
202217 } else {
203218 classpath .put (node .name , node );
204219 }
205- } catch (IllegalArgumentException x ) {
220+ } catch (Exception x ) {
206221 logger .error ("Could not parse {} (is it a class file?)" , name , x );
207222 }
208223 }
0 commit comments