mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
feat: support AbstractTranslet packer
This commit is contained in:
@@ -44,6 +44,10 @@ import com.reajason.javaweb.packer.spel.SpELPacker;
|
||||
import com.reajason.javaweb.packer.spel.SpELScriptEnginePacker;
|
||||
import com.reajason.javaweb.packer.spel.SpELSpringGzipJDK17Packer;
|
||||
import com.reajason.javaweb.packer.spel.SpELSpringGzipPacker;
|
||||
import com.reajason.javaweb.packer.translet.AbstractTransletPacker;
|
||||
import com.reajason.javaweb.packer.translet.JDKAbstractTransletPacker;
|
||||
import com.reajason.javaweb.packer.translet.OracleAbstractTransletPacker;
|
||||
import com.reajason.javaweb.packer.translet.XalanAbstractTransletPacker;
|
||||
import com.reajason.javaweb.packer.velocity.VelocityPacker;
|
||||
import com.reajason.javaweb.packer.xmldecoder.XMLDecoderDefineClassPacker;
|
||||
import com.reajason.javaweb.packer.xmldecoder.XMLDecoderPacker;
|
||||
@@ -87,6 +91,11 @@ public enum Packers {
|
||||
*/
|
||||
BCEL(new BCELPacker()),
|
||||
|
||||
AbstractTranslet(new AbstractTransletPacker()),
|
||||
JDKAbstractTransletPacker(new JDKAbstractTransletPacker(), AbstractTransletPacker.class),
|
||||
XalanAbstractTransletPacker(new XalanAbstractTransletPacker(), AbstractTransletPacker.class),
|
||||
OracleAbstractTransletPacker(new OracleAbstractTransletPacker(), AbstractTransletPacker.class),
|
||||
|
||||
/**
|
||||
* 脚本引擎打包器
|
||||
*/
|
||||
@@ -94,6 +103,7 @@ public enum Packers {
|
||||
DefaultScriptEngine(new DefaultScriptEnginePacker(), ScriptEnginePacker.class),
|
||||
ScriptEngineNoSquareBrackets(new ScriptEngineNoSquareBracketsPacker(), ScriptEnginePacker.class),
|
||||
ScriptEngineBigInteger(new ScriptEngineBigIntegerPacker(), ScriptEnginePacker.class),
|
||||
|
||||
Rhino(new RhinoPacker()),
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.reajason.javaweb.packer.translet;
|
||||
|
||||
import com.reajason.javaweb.packer.AggregatePacker;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
public class AbstractTransletPacker implements AggregatePacker {
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.reajason.javaweb.packer.translet;
|
||||
|
||||
import com.reajason.javaweb.asm.ClassSuperClassUtils;
|
||||
import com.reajason.javaweb.packer.ClassPackerConfig;
|
||||
import com.reajason.javaweb.packer.Packer;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
public class JDKAbstractTransletPacker implements Packer {
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public String pack(ClassPackerConfig config) {
|
||||
String superClassName = "com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet";
|
||||
byte[] bytes = Base64.decodeBase64(config.getClassBytesBase64Str());
|
||||
byte[] newBytes = ClassSuperClassUtils.addSuperClass(bytes, superClassName);
|
||||
return Base64.encodeBase64String(newBytes);
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.reajason.javaweb.packer.translet;
|
||||
|
||||
import com.reajason.javaweb.asm.ClassSuperClassUtils;
|
||||
import com.reajason.javaweb.packer.ClassPackerConfig;
|
||||
import com.reajason.javaweb.packer.Packer;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
public class OracleAbstractTransletPacker implements Packer {
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public String pack(ClassPackerConfig config) {
|
||||
String superClassName = "com.oracle.wls.shaded.org.apache.xalan.xsltc.runtime.AbstractTranslet";
|
||||
byte[] bytes = Base64.decodeBase64(config.getClassBytesBase64Str());
|
||||
byte[] newBytes = ClassSuperClassUtils.addSuperClass(bytes, superClassName);
|
||||
return Base64.encodeBase64String(newBytes);
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.reajason.javaweb.packer.translet;
|
||||
|
||||
import com.reajason.javaweb.asm.ClassSuperClassUtils;
|
||||
import com.reajason.javaweb.packer.ClassPackerConfig;
|
||||
import com.reajason.javaweb.packer.Packer;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
public class XalanAbstractTransletPacker implements Packer {
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public String pack(ClassPackerConfig config) {
|
||||
String superClassName = "org.apache.xalan.xsltc.runtime.AbstractTranslet";
|
||||
byte[] bytes = Base64.decodeBase64(config.getClassBytesBase64Str());
|
||||
byte[] newBytes = ClassSuperClassUtils.addSuperClass(bytes, superClassName);
|
||||
return Base64.encodeBase64String(newBytes);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user