如何替换JVM中的ClassLoader

furies21 2004-12-27 02:04:58
我们为了防止CLASS的被盗用,想加密所有的class文件,加密后无法在用JVM自带的ClasLoader对CLASS文件进行加载。要对原ClassLoader进行扩展解密模块后才行,现在已经写好了带解密切继承ClassLoader的类,不知道如何替换JVM中原来的ClassLoader。
...全文
250 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicsnake 2004-12-28
  • 打赏
  • 举报
回复
了解一下
asjj 2004-12-27
  • 打赏
  • 举报
回复
现在已经写好了带解密切继承ClassLoader的类
----------------------
假定继承ClassLoader的类名为MyClass,假定你解密的类package为“my.test.MyTest”,并且假定MyTest里有个方法是public static void doMethod(String s){System.out.println(s);}




//开始:
MyClass mc=new MyClass();
byte[] code=...//得到解密后的MyTest.class
Class cls = mc.defineClass("my.test.MyTest", code, 0, code.length);
String s="随便写....";
java.lang.reflect.Method m=cls.getMethod("doMethod",new Class[]{s.getClass()});
m.invoke(null,new Object[]{s});//打印s
bboonnee 2004-12-27
  • 打赏
  • 举报
回复
自己重载ClassLoader方法
jFresH_MaN 2004-12-27
  • 打赏
  • 举报
回复
只要用你自己的ClassLoader类里面的load方法就行了啊
其实就是和默认的loader一样用
Jacky1206 2004-12-27
  • 打赏
  • 举报
回复
建议不要这样用,一般来说你不可能把所有的 class 类加密吧,没有那种必要,只要若干核心类加密就可以了,那么只需要使用 Class 类的 forName 方法,里面制定你的 classloader 就可以了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧