Files
MemShellParty/memshell-party-common/src/main/java/com/reajason/javaweb/ClassBytesShrink.java
T
2025-04-06 11:38:41 +08:00

27 lines
734 B
Java

package com.reajason.javaweb;
import net.bytebuddy.jar.asm.ClassReader;
import net.bytebuddy.jar.asm.ClassVisitor;
import net.bytebuddy.jar.asm.ClassWriter;
import net.bytebuddy.jar.asm.Opcodes;
/**
* @author ReaJason
* @since 2025/2/25
*/
public class ClassBytesShrink {
public static byte[] shrink(byte[] bytes, boolean full) {
ClassReader cr = new ClassReader(bytes);
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
ClassVisitor cv = new ClassVisitor(Opcodes.ASM9, cw) {
@Override
public void visitSource(String source, String debug) {
}
};
cr.accept(cv, full ? ClassReader.SKIP_DEBUG : 0);
return cw.toByteArray();
}
}