From cab63b348f8c8bab2cbf72b9f94f59f64f630de5 Mon Sep 17 00:00:00 2001 From: 18553 <185535938@qq.com> Date: Mon, 2 Jun 2025 20:48:07 +0800 Subject: [PATCH] =?UTF-8?q?-feat=20=E8=87=AA=E5=AE=9A=E4=B9=89=E7=B1=BB?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/club/shengsheng/MyClassLoader.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/main/java/club/shengsheng/MyClassLoader.java b/src/main/java/club/shengsheng/MyClassLoader.java index 21026cf..bc5e2b7 100644 --- a/src/main/java/club/shengsheng/MyClassLoader.java +++ b/src/main/java/club/shengsheng/MyClassLoader.java @@ -1,9 +1,40 @@ package club.shengsheng; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; + /** * @author gongxuanzhangmelt@gmail.com **/ public class MyClassLoader extends ClassLoader { + @Override + public Class loadClass(String name) throws ClassNotFoundException { + synchronized (getClassLoadingLock(name)) { + Class c = findLoadedClass(name); + if (c != null) { + return c; + } + if (!"tech.insight.ShengSheng".equals(name)) { + return super.loadClass(name); + } + return findClass(name); + } + } + + @Override + protected Class findClass(String name) throws ClassNotFoundException { + File classFile = new File(".", "加密.class"); + try { + byte[] b = Files.readAllBytes(classFile.toPath()); + for (int i = 0; i < b.length; i++) { + b[i]--; + } + return defineClass(name, b, 0, b.length); + } catch (IOException e) { + throw new ClassNotFoundException("加密.class"); + } + } }