安全中国首页 > 编程中心 > JAVA编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

JAVA应用简单破解--类库提前加载

更新时间:2008-5-7 18:02:07
责任编辑:hzz
热 点:
在JAVA运行的时加载jar包类库 要是有相同的包路径,相同的类名字出现,那么JVM是否 会报告错误呢? 

当然不会! JVM只会加载最早的出现的CLASS 

首先JVM会加载 自己默认的包 然后加载 EXT目录下面的所有JAR 再到 classpath 

那么 现在有2个 JAR 分别是 kj021320.jar summer.jar 里面都有包路径cn.isto 

同样有 类Jcrack.class 那么 JVM就会看哪个 类先加载到VM中就用哪个!后面读进来的 如果路径名字一样 就会丢弃! 

想到以上加载方式大家会想象到什么呢? 


我们首先设计一个类 


//这个是专门破解的类
package cn.isto;
public class Jcrack{
 public Jcrack(){}
 boolean getLogin(String pwd){
  return true;
 }
}
 


里面只有一个方法判断 登陆是否成功 直接返回一个true 

把这个类打包为 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应用就这样简单破解了! 

 
学习软件编程开发技术,推荐加入以下软件编程培训班:
易语言软件编程培训班(简单易学)  Delphi软件编程培训班  VC++软件编程培训班
VB软件编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚技能培训班  Flash动画设计师就业特训班

 
相关编程
一日一文章
 
一日一软件
一日一动画