JAVA 应用简单破解---类库提前加载
来源:互联网 发布:淘宝模板在哪里 编辑:程序博客网 时间:2024/06/06 01:06
信息来源: I.S.T.O信息技术团队(http://blog.csdn.net/I_S_T_O 官方论坛:http://bbs.isto.cn)
author: Summer and kj021320
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应用就这样简单破解了!
具体类加载资料可以参阅
author: Summer and kj021320
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应用就这样简单破解了!
具体类加载资料可以参阅
- JAVA 应用简单破解---类库提前加载
- JAVA 应用简单破解---类库提前加载
- java简单密码破解
- Andriod应用破解越发简单
- html 提前加载图片
- Java 类加载过程-简单
- Java 类加载器-简单
- Java破解简单验证码
- Java破解简单验证码
- java类加载机制的简单知识
- ClassLoader 简单JAVA类加载例子
- JAVA一个简单自定义类加载器
- 简单理解Java类加载机制
- Java应用类加载器原理与应用
- java实现凯撒密码简单破解
- 【Java JVM】Java 虚拟机类加载机制简单总结
- 通过提前加载jar包解决NoClassDefFoundError
- java中的时间相关类简单应用
- 作业2
- JEE5标准与Struts/Spring/Hibernate等诸多开源框架的比较分析
- 数学之美系列二十二 由电视剧《暗算》所想到的 — 谈谈密码学的数学原理
- WSAAsyncSelect()
- 高速公路施工仿真
- JAVA 应用简单破解---类库提前加载
- 异步非阻塞套接字Winsock开发网络通信程序的经典入门
- 3389登录日志清除软件
- Winsock异步事件通知模型WSAAsyncSelect
- 转载:进程和线程编程
- 转载:共享内存
- 转载:进程间通讯机制
- 转载:进程的基本概念
- 转载:UNIX系统共享内存的应用编程技术