Skip to content

Commit abef62a

Browse files
committed
feat: support Apusic V10
1 parent ccf3cfc commit abef62a

File tree

3 files changed

+43
-6
lines changed

3 files changed

+43
-6
lines changed

generator/src/main/java/com/reajason/javaweb/memshell/Server.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ public enum Server {
8585
/**
8686
* 金蝶天燕中间件
8787
*/
88-
Apusic(new ApusicShell()),
88+
Apusic9(new ApusicShell()),
89+
Apusic10(new GlassFishShell()),
8990

9091
/**
9192
* 中创中间件
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.reajason.javaweb.memshell;
2+
3+
/**
4+
* @author ReaJason
5+
* @since 2025/6/11
6+
*/
7+
public class ServerType {
8+
public static final String TOMCAT = "Tomcat";
9+
public static final String JETTY = "Jetty";
10+
public static final String JBOSS_AS = "JBossAS";
11+
public static final String JBOSS_EAP6 = "JBossEAP6";
12+
public static final String UNDERTOW = "Undertow";
13+
public static final String JBOSS_EAP7 = "JBossEAP7";
14+
public static final String WILDFLY = "Wildfly";
15+
public static final String RESIN = "Resin";
16+
public static final String GLASSFISH = "Glassfish";
17+
public static final String PAYARA = "Payara";
18+
public static final String WEBLOGIC = "WebLogic";
19+
public static final String WEBSPHERE = "WebSphere";
20+
public static final String SPRING_WEBMVC = "SpringWebMVC";
21+
public static final String SPRING_WEBFLUX = "SpringWebFlux";
22+
public static final String XXL_JOB = "XXL-JOB";
23+
public static final String APUSIC = "Apusic";
24+
public static final String BES = "BES";
25+
public static final String INFORSUITE = "InforSuite";
26+
public static final String PRIMETON = "Primeton";
27+
public static final String TONGWEB6 = "TongWeb6";
28+
public static final String TONGWEB7 = "TongWeb7";
29+
public static final String TONGWEB8 = "TongWeb8";
30+
}

generator/src/test/java/com/reajason/javaweb/memshell/GeneratorMainTest.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,22 @@ class GeneratorMainTest {
2121
@Disabled
2222
void test() {
2323
ShellConfig shellConfig = ShellConfig.builder()
24-
.server(Server.Apusic)
25-
.shellTool(ShellTool.Behinder)
26-
.shellType(ShellType.LISTENER)
24+
.server(Server.Tomcat)
25+
.shellTool(ShellTool.Command)
26+
.shellType(ShellType.PROXY_VALVE)
2727
.targetJreVersion(Opcodes.V1_8)
2828
.debug(true)
29+
// .shrink(true)
2930
.build();
3031
GodzillaConfig godzillaConfig = GodzillaConfig.builder()
3132
.pass("pass")
3233
.key("key")
3334
.headerName("User-Agent")
3435
.headerValue("test123").build();
35-
CommandConfig commandConfig = CommandConfig.builder().paramName("listener").build();
36+
CommandConfig commandConfig = CommandConfig.builder()
37+
.paramName("listener")
38+
.encryptor(CommandConfig.Encryptor.DOUBLE_BASE64)
39+
.build();
3640

3741
BehinderConfig behinderConfig = BehinderConfig.builder()
3842
.pass("test123")
@@ -45,8 +49,10 @@ void test() {
4549

4650
InjectorConfig injectorConfig = new InjectorConfig();
4751

48-
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, behinderConfig);
52+
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
4953
if (generateResult != null) {
54+
System.out.println(generateResult.getShellBytes().length);
55+
// System.out.println(((JarPacker) Packers.AgentJar.getInstance()).packBytes(generateResult).length);
5056
Files.write(Paths.get(generateResult.getInjectorClassName() + ".class"), generateResult.getInjectorBytes(), StandardOpenOption.CREATE_NEW);
5157
Files.write(Paths.get(generateResult.getShellClassName() + ".class"), generateResult.getShellBytes(), StandardOpenOption.CREATE_NEW);
5258
// System.out.println(Base64.getEncoder().encodeToString(generateResult.getInjectorBytes()));

0 commit comments

Comments
 (0)