Skip to content

Commit f1b9509

Browse files
committed
feat: shrink agentJar by default
1 parent e385466 commit f1b9509

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarPacker.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.reajason.javaweb.memshell.packer.jar;
22

3+
import com.reajason.javaweb.ClassBytesShrink;
34
import com.reajason.javaweb.asm.ClassRenameUtils;
45
import com.reajason.javaweb.memshell.config.GenerateResult;
56
import lombok.SneakyThrows;
@@ -86,7 +87,7 @@ private void addClassesToJar(JarOutputStream targetJar, GenerateResult generateR
8687
private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes,
8788
String dependencyPackage, String relocatePrefix) {
8889
targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
89-
byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage);
90+
byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true);
9091
targetJar.write(processedBytes);
9192
targetJar.closeEntry();
9293
}
@@ -123,7 +124,7 @@ public static void addDependency(JarOutputStream targetJar, Class<?> baseClass,
123124
targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName));
124125
if (entryName.endsWith(".class")) {
125126
if (bytes.length > 0) {
126-
bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName);
127+
bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true);
127128
}
128129
} else {
129130
targetJar.putNextEntry(entry);

generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJDKAttacherPacker.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.reajason.javaweb.memshell.packer.jar;
22

3+
import com.reajason.javaweb.ClassBytesShrink;
34
import com.reajason.javaweb.asm.ClassRenameUtils;
45
import com.reajason.javaweb.memshell.config.GenerateResult;
56
import com.reajason.javaweb.memshell.packer.jar.attach.Attacher;
@@ -50,7 +51,7 @@ public byte[] packBytes(GenerateResult generateResult) {
5051
String className = entry.getKey();
5152
byte[] bytes = entry.getValue();
5253
targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
53-
targetJar.write(bytes);
54+
targetJar.write(ClassBytesShrink.shrink(bytes, true));
5455
targetJar.closeEntry();
5556
}
5657
}
@@ -106,7 +107,7 @@ private void addClassesToJar(JarOutputStream targetJar, GenerateResult generateR
106107
private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes,
107108
String dependencyPackage, String relocatePrefix) {
108109
targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
109-
byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage);
110+
byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true);
110111
targetJar.write(processedBytes);
111112
targetJar.closeEntry();
112113
}
@@ -143,7 +144,7 @@ public static void addDependency(JarOutputStream targetJar, Class<?> baseClass,
143144
targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName));
144145
if (entryName.endsWith(".class")) {
145146
if (bytes.length > 0) {
146-
bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName);
147+
bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true);
147148
}
148149
} else {
149150
targetJar.putNextEntry(entry);

generator/src/main/java/com/reajason/javaweb/memshell/packer/jar/AgentJarWithJREAttacherPacker.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.reajason.javaweb.memshell.packer.jar;
22

3+
import com.reajason.javaweb.ClassBytesShrink;
34
import com.reajason.javaweb.asm.ClassRenameUtils;
45
import com.reajason.javaweb.memshell.config.GenerateResult;
56
import com.reajason.javaweb.memshell.packer.jar.attach.Attacher;
@@ -52,7 +53,7 @@ public byte[] packBytes(GenerateResult generateResult) {
5253
String className = entry.getKey();
5354
byte[] bytes = entry.getValue();
5455
targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
55-
targetJar.write(bytes);
56+
targetJar.write(ClassBytesShrink.shrink(bytes, true));
5657
targetJar.closeEntry();
5758
}
5859

@@ -126,7 +127,7 @@ private void addClassesToJar(JarOutputStream targetJar, GenerateResult generateR
126127
private void addClassEntry(JarOutputStream targetJar, String className, byte[] classBytes,
127128
String dependencyPackage, String relocatePrefix) {
128129
targetJar.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
129-
byte[] processedBytes = ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage);
130+
byte[] processedBytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(classBytes, dependencyPackage, relocatePrefix + dependencyPackage), true);
130131
targetJar.write(processedBytes);
131132
targetJar.closeEntry();
132133
}
@@ -163,7 +164,7 @@ public static void addDependency(JarOutputStream targetJar, Class<?> baseClass,
163164
targetJar.putNextEntry(new JarEntry(relocatePrefix + entryName));
164165
if (entryName.endsWith(".class")) {
165166
if (bytes.length > 0) {
166-
bytes = ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName);
167+
bytes = ClassBytesShrink.shrink(ClassRenameUtils.relocateClass(bytes, baseName, relocatePrefix + baseName), true);
167168
}
168169
} else {
169170
targetJar.putNextEntry(entry);

0 commit comments

Comments
 (0)