网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.面向方面编程AOP和JBoss(二).
.用Java类实现JavaMail发送邮件的.
.一个初学者初识 Java 内部类.
.EJB入门文章.
.Eclipse编程Tips-让RCP自带JRE.
.使用VS.NET2003重新分发.NET框架.
.使用私有构造函数来强化单态性.
.初探Java类加载机制的奥秘技巧.
.Struts Validator的使用.
.两种设计模式在EJB开发中的应用.
.绘制整洁的UML图 明晰才能被人采.
.java中关于html的转换.
.Javascript实例教程(20) OLE Aut.
.如何开发会话Bean(无状态会话Be.
.JBuilder 7 WebLogic 6.X 详细配.
.为何会堵塞.
.用java绘制google中文名称“谷歌.
.Java程序的编码规范.
.Java线程的深入探讨.
.通过java提供的URL类包读取网上的.

反编译、破解JAVA软件的方法、实例与经验

发表日期:2008-1-5



  前几天得到一个用Java编写的压缩软件iavaZip2.0,虽然好用可惜是个试用版本,限定的时间一到就不能
  
  用了。能不能把这个软件据为己有呢?本人试图破解它,在不到半个小时的时间里,成功破解了这个JAVA
  
  软件的注册码,下面现把这个破解的方法和过程向大家做个具体的介绍。
  
  
  
  一.破解工具预备
  
  要破解JAVA软件,必须要反编译用JAVA编写的类文件。由于网上大虾们的支持,许多反编译软件被研制出来
  
  其中,我经常使用的是:
  
  1. cavaj Java Decompile 1.11
  
  2.Java源代码反编译专家(该软件支持目录编译)
  
  3.JAD
  
  这三个软件各有优缺点:前二个软件是GUI界面,使用起来很方便。尤其是"Java源代码反编译专家",支持
  
  目录编译,用起来很得心应手;第三个软件JAD功能最强,由于是字符界面,但是相对初学者比较难一点。
  
  
  
  二.破解步骤
  
  1.首先分析批处理文件,找到第一个调用的CLASS。
  
  在分析iavaZIP20软件的iavaZIP2.bat,我把最重要的一句COPY到下行:
  
  com.sfs.app.iavazip20.iavaZIP20 %1 %2 %3 %4 %5 %6 %7 %8 %9
  
  可以知道,在com\sfs\app\iavazip20的目录下的iavaZIP20.CLASS就是被调用的第一个CLASS.
  
  
  
  2.反编译第一个CLASS,分析MAIN方法,寻找版本控制的代码段
  
  我用“cavaj Java Decompile 1.11”编译iavaZIP20.class文件,很快就可以得到该软件的JAVA代码,
  
  main方法的全部代码如下:
  
  public static void main(String args[])
  
  {
  
  iavaZIP20 iavazip20 = new iavaZIP20(args);
  
  if(iavazip20.isEXPired())
  
  {
  
  System.out.println("iavaZIP20 trial time has expired. Please purchase and enter licence key.");
  
  for(_cls13 _lcls13 = new _cls13(iavazip20, true); _lcls13.expirationFrame.isShowing();)
  
  {
  
  try
  
  {
  
  Thread.sleep(1000L);
  
  }
  
  catch(InterruptedException _ex) { }
  
  }
  
  
  
  if(_cls66.isSerialRegcode(((_cls1) (iavazip20)).res.getProperty("user.id")))
  
  {
  
  iavazip20._fld6.remove(iavazip20._fld4);
  
  iavazip20._fld6.add("Right", iavazip20._fld4 = iavazip20._fld0 = new _cls13(iavazip20));
  
  iavazip20._fld6.validate();
  
  } else
  
  {
  
  iavazip20.dispose();
  
  System.exit(0);
  
  }
  
  }
  
  iavazip20.show();
  
  }
  
  
  
  很明显,iavazip20.isExpired()就是版本控制的代码。
  
  
  
  
  
  3.分析版本控制的语句,找到破解的方法
  
  由于isExpired()的方法的代码如下:
  
  public boolean isExpired()
  
  {
  
  return !_cls66.isSerialRegcode(super.res.getProperty("user.id", "0")) && Long.parseLong(super.res.getProperty("magic")) + magicTime < System.currentTimeMillis();
  
  }
  
  
  
  看了com\sfs\app\iavazip20的所有文件,由于该文件夹中的文件都是从1-66之间的整数问文件名,“class”为扩展名的类文件,分析“!_cls66.isSerialRegcode”的方法是破解的要害类应该就是66.class文件
  
  。
上一篇:java api混排算法 人气:1162
下一篇:Java编程规则 人气:588
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐