diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarPacker.java index af22b8d9..d1c385e0 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarPacker.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarPacker.java @@ -1,5 +1,6 @@ package com.reajason.javaweb.memshell.packer.jar; +import com.reajason.javaweb.ClassBytesShrink; import com.reajason.javaweb.asm.ClassRenameUtils; import com.reajason.javaweb.memshell.config.GenerateResult; import lombok.SneakyThrows; @@ -86,7 +87,7 @@ public class AgentJarPacker implements JarPacker { private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes, String dependencyPackage, String relocatePrefix) { targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class")); - byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage); + byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true); targetJar.write(processedBytes); targetJar.closeEntry(); } @@ -123,7 +124,7 @@ public class AgentJarPacker implements JarPacker { targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName)); if (entryName.endsWith(".class")) { if (bytes.length > 0) { - bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName); + bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true); } } else { targetJar.putNextEntry(entry); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJDKAttacherPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJDKAttacherPacker.java index a36110ad..de6494b8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJDKAttacherPacker.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJDKAttacherPacker.java @@ -1,5 +1,6 @@ package com.reajason.javaweb.memshell.packer.jar; +import com.reajason.javaweb.ClassBytesShrink; import com.reajason.javaweb.asm.ClassRenameUtils; import com.reajason.javaweb.memshell.config.GenerateResult; import com.reajason.javaweb.memshell.packer.jar.attach.Attacher; @@ -50,7 +51,7 @@ public class AgentJarWithJDKAttacherPacker implements JarPacker { String className = entry.getKey(); byte[] bytes = entry.getValue(); targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class")); - targetJar.write(bytes); + targetJar.write(ClassBytesShrink.shrink(bytes, true)); targetJar.closeEntry(); } } @@ -106,7 +107,7 @@ public class AgentJarWithJDKAttacherPacker implements JarPacker { private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes, String dependencyPackage, String relocatePrefix) { targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class")); - byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage); + byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true); targetJar.write(processedBytes); targetJar.closeEntry(); } @@ -143,7 +144,7 @@ public class AgentJarWithJDKAttacherPacker implements JarPacker { targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName)); if (entryName.endsWith(".class")) { if (bytes.length > 0) { - bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName); + bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true); } } else { targetJar.putNextEntry(entry); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJREAttacherPacker.java b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJREAttacherPacker.java index 0c7cc65b..3a4abac2 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJREAttacherPacker.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJREAttacherPacker.java @@ -1,5 +1,6 @@ package com.reajason.javaweb.memshell.packer.jar; +import com.reajason.javaweb.ClassBytesShrink; import com.reajason.javaweb.asm.ClassRenameUtils; import com.reajason.javaweb.memshell.config.GenerateResult; import com.reajason.javaweb.memshell.packer.jar.attach.Attacher; @@ -52,7 +53,7 @@ public class AgentJarWithJREAttacherPacker implements JarPacker { String className = entry.getKey(); byte[] bytes = entry.getValue(); targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class")); - targetJar.write(bytes); + targetJar.write(ClassBytesShrink.shrink(bytes, true)); targetJar.closeEntry(); } @@ -126,7 +127,7 @@ public class AgentJarWithJREAttacherPacker implements JarPacker { private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes, String dependencyPackage, String relocatePrefix) { targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class")); - byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage); + byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true); targetJar.write(processedBytes); targetJar.closeEntry(); } @@ -163,7 +164,7 @@ public class AgentJarWithJREAttacherPacker implements JarPacker { targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName)); if (entryName.endsWith(".class")) { if (bytes.length > 0) { - bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName); + bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true); } } else { targetJar.putNextEntry(entry);