Skip to content

Commit d324284

Browse files
committed
refactor: remove codec dependency
1 parent 262820a commit d324284

22 files changed

+71
-40
lines changed

generator/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,11 @@ dependencies {
4343

4444
implementation 'javax.servlet:javax.servlet-api'
4545
implementation 'javax.websocket:javax.websocket-api'
46-
implementation 'jakarta.servlet:jakarta.servlet-api'
4746

4847
implementation 'org.apache.bcel:bcel'
4948

5049
implementation 'commons-io:commons-io'
5150
implementation 'org.apache.commons:commons-lang3'
52-
implementation 'commons-codec:commons-codec'
5351
implementation 'com.squareup.okhttp3:okhttp'
5452
implementation 'ch.qos.logback:logback-classic'
5553
implementation 'com.alibaba.fastjson2:fastjson2'

generator/src/main/java/com/reajason/javaweb/memshell/config/GenerateResult.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import lombok.Builder;
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
7-
import org.apache.commons.codec.binary.Base64;
87

8+
import java.util.Base64;
99
import java.util.Map;
1010

1111
/**
@@ -33,11 +33,11 @@ public class GenerateResult {
3333
public static class GenerateResultBuilder {
3434
public GenerateResult build() {
3535
if (shellBytes != null) {
36-
shellBytesBase64Str = Base64.encodeBase64String(shellBytes);
36+
shellBytesBase64Str = Base64.getEncoder().encodeToString(shellBytes);
3737
shellSize = shellBytes.length;
3838
}
3939
if (injectorBytes != null) {
40-
injectorBytesBase64Str = Base64.encodeBase64String(injectorBytes);
40+
injectorBytesBase64Str = Base64.getEncoder().encodeToString(injectorBytes);
4141
injectorSize = injectorBytes.length;
4242
}
4343
return new GenerateResult(shellClassName, shellBytes, shellSize, shellBytesBase64Str,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import com.reajason.javaweb.memshell.ShellType;
99
import com.reajason.javaweb.memshell.config.BehinderConfig;
1010
import com.reajason.javaweb.memshell.config.ShellConfig;
11+
import com.reajason.javaweb.memshell.utils.DigestUtils;
1112
import net.bytebuddy.ByteBuddy;
1213
import net.bytebuddy.dynamic.DynamicType;
13-
import org.apache.commons.codec.digest.DigestUtils;
1414
import org.apache.commons.lang3.StringUtils;
1515

1616
import java.util.HashMap;

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
import com.reajason.javaweb.asm.ClassRenameUtils;
55
import com.reajason.javaweb.memshell.config.CustomConfig;
66
import com.reajason.javaweb.memshell.config.ShellConfig;
7-
import org.apache.commons.codec.binary.Base64;
87
import org.apache.commons.lang3.StringUtils;
98

9+
import java.util.Base64;
10+
1011
/**
1112
* @author ReaJason
1213
* @since 2025/3/18
@@ -28,7 +29,7 @@ public byte[] getBytes() {
2829
throw new IllegalArgumentException("Custom shell class is empty");
2930
}
3031

31-
byte[] bytes = ClassRenameUtils.renameClass(Base64.decodeBase64(shellClassBase64), customConfig.getShellClassName());
32+
byte[] bytes = ClassRenameUtils.renameClass(Base64.getDecoder().decode(shellClassBase64), customConfig.getShellClassName());
3233

3334
return ClassBytesShrink.shrink(bytes, shellConfig.isShrink());
3435
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import com.reajason.javaweb.memshell.ShellType;
99
import com.reajason.javaweb.memshell.config.GodzillaConfig;
1010
import com.reajason.javaweb.memshell.config.ShellConfig;
11+
import com.reajason.javaweb.memshell.utils.DigestUtils;
1112
import net.bytebuddy.ByteBuddy;
1213
import net.bytebuddy.dynamic.DynamicType;
13-
import org.apache.commons.codec.digest.DigestUtils;
1414
import org.apache.commons.lang3.StringUtils;
1515

1616
import java.util.HashMap;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import net.bytebuddy.dynamic.scaffold.TypeValidation;
1515
import net.bytebuddy.implementation.FixedValue;
1616
import net.bytebuddy.pool.TypePool;
17-
import org.apache.commons.codec.binary.Base64;
17+
import java.util.Base64;;
1818

1919
import java.util.*;
2020

@@ -35,7 +35,7 @@ public InjectorGenerator(ShellConfig shellConfig, InjectorConfig injectorConfig)
3535

3636
@SneakyThrows
3737
public DynamicType.Builder<?> getBuilder() {
38-
String base64String = Base64.encodeBase64String(CommonUtil.gzipCompress(injectorConfig.getShellClassBytes()));
38+
String base64String = Base64.getEncoder().encodeToString(CommonUtil.gzipCompress(injectorConfig.getShellClassBytes()));
3939
String originalClassName = injectorConfig.getInjectorClass().getName();
4040
String newClassName = injectorConfig.getInjectorClassName();
4141

generator/src/main/java/com/reajason/javaweb/memshell/packer/base64/DefaultBase64Packer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.reajason.javaweb.memshell.config.GenerateResult;
44
import com.reajason.javaweb.memshell.packer.Packer;
5-
import org.apache.commons.codec.binary.Base64;
5+
import java.util.Base64;;
66

77
/**
88
* @author ReaJason
@@ -11,6 +11,6 @@
1111
public class DefaultBase64Packer implements Packer {
1212
@Override
1313
public String pack(GenerateResult generateResult) {
14-
return Base64.encodeBase64String(generateResult.getInjectorBytes());
14+
return Base64.getEncoder().encodeToString(generateResult.getInjectorBytes());
1515
}
1616
}

generator/src/main/java/com/reajason/javaweb/memshell/packer/base64/GzipBase64Packer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.reajason.javaweb.memshell.packer.Packer;
55
import com.reajason.javaweb.memshell.utils.CommonUtil;
66
import lombok.SneakyThrows;
7-
import org.apache.commons.codec.binary.Base64;
7+
import java.util.Base64;;
88

99
/**
1010
* @author ReaJason
@@ -14,6 +14,6 @@ public class GzipBase64Packer implements Packer {
1414
@Override
1515
@SneakyThrows
1616
public String pack(GenerateResult generateResult) {
17-
return Base64.encodeBase64String(CommonUtil.gzipCompress(generateResult.getInjectorBytes()));
17+
return Base64.getEncoder().encodeToString(CommonUtil.gzipCompress(generateResult.getInjectorBytes()));
1818
}
1919
}

generator/src/main/java/com/reajason/javaweb/memshell/packer/deserialize/hessian/Hessian2XSLTScriptEnginePacker.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
import com.reajason.javaweb.deserialize.PayloadType;
66
import com.reajason.javaweb.memshell.config.GenerateResult;
77
import com.reajason.javaweb.memshell.packer.Packer;
8-
import org.apache.commons.codec.binary.Base64;
8+
9+
import java.util.Base64;
910

1011
/**
1112
* @author ReaJason
@@ -19,6 +20,6 @@ public String pack(GenerateResult generateResult) {
1920
DeserializeConfig deserializeConfig = new DeserializeConfig();
2021
deserializeConfig.setPayloadType(PayloadType.XSLTScriptEngine);
2122
byte[] generate = Hessian2DeserializeGenerator.generate(injectorBytes, injectorClassName, deserializeConfig);
22-
return Base64.encodeBase64String(generate);
23+
return Base64.getEncoder().encodeToString(generate);
2324
}
2425
}

generator/src/main/java/com/reajason/javaweb/memshell/packer/deserialize/hessian/HessianXSLTScriptEnginePacker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.reajason.javaweb.deserialize.PayloadType;
66
import com.reajason.javaweb.memshell.config.GenerateResult;
77
import com.reajason.javaweb.memshell.packer.Packer;
8-
import org.apache.commons.codec.binary.Base64;
8+
import java.util.Base64;;
99

1010
/**
1111
* @author ReaJason
@@ -19,6 +19,6 @@ public String pack(GenerateResult generateResult) {
1919
DeserializeConfig deserializeConfig = new DeserializeConfig();
2020
deserializeConfig.setPayloadType(PayloadType.XSLTScriptEngine);
2121
byte[] generate = HessianDeserializeGenerator.generate(injectorBytes, injectorClassName, deserializeConfig);
22-
return Base64.encodeBase64String(generate);
22+
return Base64.getEncoder().encodeToString(generate);
2323
}
2424
}

0 commit comments

Comments
 (0)