feat: support multi payload generate

This commit is contained in:
ReaJason
2025-01-27 17:02:32 +08:00
parent 8d7ed8c4ee
commit 3efe814d30
43 changed files with 537 additions and 192 deletions
@@ -1,6 +1,7 @@
package com.reajason.javaweb.memshell.packer;
import com.reajason.javaweb.memshell.config.GenerateResult;
import com.reajason.javaweb.memshell.packer.freemarker.FreemarkerPacker;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -1,6 +1,7 @@
package com.reajason.javaweb.memshell.packer;
import com.reajason.javaweb.memshell.config.GenerateResult;
import com.reajason.javaweb.memshell.packer.base64.GzipBase64Packer;
import com.reajason.javaweb.memshell.utils.CommonUtil;
import lombok.SneakyThrows;
import org.apache.commons.codec.binary.Base64;
@@ -19,7 +20,7 @@ class GzipBase64Test {
void compress() {
GenerateResult generateResult = new GenerateResult();
generateResult.setInjectorBytes("hello world".getBytes());
String pack = new GzipBase64().pack(generateResult);
String pack = new GzipBase64Packer().pack(generateResult);
assertEquals("hello world", new String(CommonUtil.gzipDecompress(Base64.decodeBase64(pack))));
}
}
@@ -1,6 +1,7 @@
package com.reajason.javaweb.memshell.packer;
import com.reajason.javaweb.memshell.config.GenerateResult;
import com.reajason.javaweb.memshell.packer.jsp.JspPacker;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -1,6 +1,7 @@
package com.reajason.javaweb.memshell.packer;
import com.reajason.javaweb.memshell.config.GenerateResult;
import com.reajason.javaweb.memshell.packer.scriptengine.ScriptEnginePacker;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -0,0 +1,27 @@
package com.reajason.javaweb.memshell.packer.spel;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter;
import com.reajason.javaweb.memshell.config.GenerateResult;
import com.reajason.javaweb.memshell.packer.AggregatePacker;
import com.reajason.javaweb.memshell.packer.Packers;
import org.junit.jupiter.api.Test;
import java.util.Map;
/**
* @author ReaJason
* @since 2025/1/26
*/
class SpELPackerTest {
@Test
void pack() {
GenerateResult generateResult = GenerateResult.builder()
.injectorClassName("name")
.injectorBytes("name".getBytes()).build();
AggregatePacker spELPacker = (AggregatePacker) Packers.SpEL.getInstance();
Map<String, String> stringStringMap = spELPacker.packAll(generateResult);
System.out.println(JSON.toJSONString(stringStringMap, JSONWriter.Feature.PrettyFormat));
}
}