网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  JAVA 应用简单破解---类库提前加载            【字体:
JAVA 应用简单破解---类库提前加载
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-12    

author: kj021320 and Summer
Team : I.S.T.O

在我接触JDK3的时候已经发现有类/包加载的问题,只是当时候没注意!还多得Summer提醒。
正在装载数据……

在JAVA运行的时加载jar包类库 要是有相同的包路径,相同的类名字出现
那么JVM是否 会报告错误呢?
当然不会! JVM只会加载最早的出现的CLASS
首先JVM会加载 自己默认的包  然后加载 EXT目录下面的所有JAR  再到 classpath
那么 现在有2个 JAR 分别是  kj021320.jar  summer.jar  里面都有包路径cn.isto 
同样有 类Jcrack.class 那么 JVM就会看哪个 类先加载到VM中就用哪个!后面读进来的 如果路径名字一样 就会丢弃!
想到以上加载方式大家会想象到什么呢?

OK 那么我们首先设计一个类
//这个是专门破解的类
package cn.isto;
public class Jcrack{
 public Jcrack(){}
 boolean getLogin(String pwd){
  return true;
 }
}

里面只有一个方法判断 登陆是否成功 直接返回一个true
OK把这个类打包为 kj021320.jar
下面我们再来写2个类

//这个是真正运行时候判断登陆的类
package cn.isto;
public class Jcrack {
    public Jcrack() {
    }
    boolean getLogin(String pwd){
        return "KJ021320".equals(pwd);
    }
}
//调用登陆验证的类
package cn.isto;
public class JMain {
    public JMain() {
    }
    public static void main(String[] args){
       System.out.println(new Jcrack().getLogin("Summer"));
    }
}

很明显我们把上面2个类编译OK后 直接运行! 不用看控制台都会打印false
然而我们再吧 上面kj021320.jar加载回来再运行 JMain类

系统就会显示true 简单说因为 JVM把正常用户的Jcrack类抛弃了!而加载了我们自己修改的Jcrack类!
JAVA应用就这样简单破解了!
具体类加载资料可以参阅
http://blog.csdn.net/I_S_T_O/archive/2007/09/11/1780969.aspx

 




本文来源:http://blog.csdn.net/kj021320/archive/2007/09/11/1781128.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • JSP中JavaBean的生命周期

  • Java Swing实现俄罗斯方块

  • 快速、简便使用AJAX技术的三…

  • java异常处理机制的深入理解

  • [转]Java堆和栈的区别 经典总…

  • 关于java Applet

  • java 设计工厂模式

  • Core Java 之旅

  • 专访Java之父:Java未来的发…

  • 开发手记---JAVA数据库连接池

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David