fix: 修复在特定环境下JSEngine无法获取到defineClass的bug

This commit is contained in:
qi4L
2025-06-14 09:29:55 +08:00
parent d6314a76ca
commit d5edd528ad
3 changed files with 151 additions and 3 deletions
+149
View File
@@ -0,0 +1,149 @@
plugins {
id 'java-library'
id 'maven-publish'
id 'com.gradleup.shadow' version '8.3.5'
id 'java'
}
repositories {
mavenCentral()
maven {
url = uri('https://repo.jenkins-ci.org/releases/')
}
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
shadowJar {
archiveClassifier.set('')
manifest {
attributes 'Main-Class': 'com.qi4l.JYso.Starter'
}
zip64=true
//minimize()
}
dependencies {
api libs.io.projectreactor.reactor.core
api libs.com.ibm.websphere.appserver.api.com.ibm.websphere.appserver.api.wsoc
api libs.org.glassfish.tyrus.tyrus.server
api libs.org.javassist.javassist
api libs.xerces.xercesimpl
api libs.com.fasterxml.jackson.core.jackson.databind
api libs.com.teradata.jdbc.terajdbc
api libs.jboss.jboss.serialization
api libs.org.apache.wicket.wicket.util
api libs.com.vaadin.vaadin.server
api libs.org.apache.myfaces.core.myfaces.impl
api libs.rhino.js
api libs.rome.rome
api libs.com.alibaba.fastjson
api libs.com.alibaba.fastjson2.fastjson2
api libs.org.jenkins.ci.main.remoting
api libs.org.jboss.weld.weld.core
api libs.org.jboss.remoting.jboss.remoting
api libs.org.jboss.remotingjmx.remoting.jmx
api libs.org.jboss.interceptor.jboss.interceptor.core
api libs.org.jboss.interceptor.jboss.interceptor.spi
api libs.org.python.jython.standalone
api libs.org.hibernate.hibernate.core
api libs.org.fusesource.jansi.jansi
api libs.commons.cli.commons.cli
api libs.org.apache.commons.commons.lang3
api libs.org.apache.logging.log4j.log4j.core
api libs.org.springframework.spring.core
api libs.org.springframework.spring.beans
api libs.org.springframework.spring.web
api libs.org.springframework.spring.oxm
api libs.org.springframework.spring.tx
api libs.org.springframework.spring.jdbc
api libs.org.springframework.spring.webmvc
api libs.org.springframework.spring.aop
api libs.org.springframework.spring.context.support
api libs.org.springframework.spring.test
api libs.javax.servlet.javax.servlet.api
api libs.com.mchange.c3p0
api libs.org.apache.tomcat.embed.tomcat.embed.core
api libs.org.ow2.asm.asm
api libs.com.unboundid.unboundid.ldapsdk
api libs.com.nqzero.permit.reflect
api libs.net.jodah.expiringmap
api libs.org.reflections.reflections
api libs.org.beanshell.bsh
api libs.io.undertow.undertow.core
api libs.io.undertow.undertow.servlet
api libs.org.jboss.spec.javax.security.jacc.jboss.jacc.api.v1.v4.spec
api libs.com.beust.jcommander
api libs.org.codehaus.groovy.groovy
api libs.org.apache.commons.commons.text
api libs.org.eclipse.jetty.jetty.ant
api libs.org.apache.maven.plugins.maven.assembly.plugin
api libs.org.apache.click.click.nodeps
api libs.org.clojure.clojure
api libs.cn.hutool.hutool.all
api libs.javax.websocket.javax.websocket.api
api libs.com.caucho.resin
implementation files('libs/jai-core-1.1.3.jar')
implementation files('libs/weblogic-server.jar')
constraints {
implementation('commons-collections:commons-collections') {
version {
strictly '3.2.1'
}
}
implementation('org.apache.commons:commons-collections4') {
version {
strictly '4.0'
}
}
}
implementation 'org.codehaus.castor:castor-xml:1.4.1'
implementation 'com.cedarsoftware:json-io:4.9.1'
implementation 'org.jyaml:jyaml:1.3'
implementation 'com.esotericsoftware:kryo:4.0.0'
implementation 'commons-configuration:commons-configuration:1.10'
implementation 'com.thoughtworks.xstream:xstream:1.4.9'
implementation 'org.apache.xbean:xbean-naming:4.5'
implementation 'com.rometools:rome:1.7.0'
implementation 'net.sf.json-lib:json-lib:2.4:jdk15'
implementation 'org.apache.directory.server:apacheds-xdbm-partition:2.0.0.AM26'
implementation 'commons-beanutils:commons-beanutils:1.9.4'
runtimeOnly libs.org.aspectj.aspectjweaver
compileOnly libs.org.apache.tomcat.tomcat.websocket
}
group = 'org.example'
version = '1.3.5.2'
description = 'JYso'
java.sourceCompatibility = JavaVersion.VERSION_1_8
publishing {
publications {
maven(MavenPublication) {
from(components.java)
}
}
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
tasks.withType(Javadoc) {
options.encoding = 'UTF-8'
}
compileJava {
options.compilerArgs << '-XDignore.symbol.file'
options.fork = true
options.forkOptions.executable = 'C:\\env\\JAVA\\corretto_jdk1.8.0_412\\bin\\javac.exe'
}
+1 -1
View File
@@ -32,7 +32,7 @@ public class Starter {
RMIServer.start();
}
// 如果参数中包含-y,则启动ysoserial
// 如果参数中包含-y,则启动 ysuserial
if (args.length > 0 && args[0].equals("-y")) {
JYsoMode = true;
ysoserial(args);
@@ -13,7 +13,6 @@ import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
import java.util.zip.GZIPOutputStream;
import static com.qi4l.JYso.gadgets.Config.Config.*;
@@ -39,7 +38,7 @@ public class Utils {
public static String[] handlerCommand(String command) {
String info = command.split("[-]")[1];
int index = info.indexOf("#");
String par1 = new String(Base64.decodeBase64(info.substring(0, index)));
String par1 = info.substring(0, index);
String par2 = info.substring(index + 1);
return new String[]{par1, par2};
}