mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 07:00:43 +08:00
feat: shrink agentJar by default
This commit is contained in:
+3
-2
@@ -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);
|
||||
|
||||
+4
-3
@@ -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);
|
||||
|
||||
+4
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user