zoukankan      html  css  js  c++  java
  • 修改class文件

    http://yucaifu1989.iteye.com/blog/1850500

    http://blog.csdn.net/hexin373/article/details/6669813

    javassist使用教程 
    javassist使用教程(jar破解) 
    Javassist是一个开源的java字节码操作工具,主要是对已经编译好的class文件进行修改和处理,这里我写了一个简单的说明,复杂的请去看www.javassist.com的官方文档。 

    首先说明的是我不是不尊重作者的成果,有时候需要给客户选择的时候不可能用户没看就要花钱买,可以先破解了让用户看效果,效果好自然会买的. 

    1.       首先下载开源的代码,或者直接使用它的jar,开源的代码里有simple,可以构建工程运行。 

    下载回来的文件结构如下,如果你想构造工程的话,先查看你的windows的classpath是否引入了java的tools.jar,没有的话你需要在工程里引入,这个jar在JDK的lib目录下面,主要作用是提供JDI的使用。 





    2.       Javassist下面有很多例子,包括的方法名字的修改,权限的修改和参数的修改等等,可以自己看,我主要说明一下jar破解方面的。 

    (1)       首先准备你要破解的jar,我现在要破解的是chart.ext.jar 




    (2)       先用反编译工具,查看一下你需要修改代码的位置,反编译出来可能有错误,但是类名和方法名一般可以反编译正确,如果jar的加密混淆达到了类名和方法名都混淆掉的话,这个方法就不能用了(一般不会出现这么牛的混淆工具)。 
       



    (3)       经过分析反编译的jar文件,我们找到a.class这个类,这个类是在图上绘制版权的,去掉他就可以了(有的jar的授权是时间的,原理差不多,找到判断时间的关键跳转就可以了) 

    (4)       开始写代码,很简单的几句话 

    ///////入口启动函数 

             publicstaticvoid main(String[] args) throws Exception { 

             //这个是得到反编译的池 

            ClassPool pool = ClassPool.getDefault(); 

            //取得需要反编译的jar文件,设定路径 

            pool.insertClassPath("E:""crack""chart.ext.jar"); 

            //取得需要反编译修改的文件,注意是完整路径 

            CtClass cc1 = pool.get("com.objectplanet.chart.a"); 

            try { 

                //取得需要修改的方法 

                CtMethod method = cc1.getDeclaredMethod("a"); 

               //插入修改项,我们让他直接返回(注意:根据方法的具体返回值返回,因为这个方法返回值是void,所以直接return;) 

                method.insertBefore("{if(true) return ;}"); 

                //写入保存 

                cc1.writeFile(); 

            } catch (NotFoundException e) { 

                e.printStackTrace(); 

           } 



    执行后会在工程下生成一个新的class文件,反编译打开查看,会发现 

            if (1 != 0) 

                return; 

           这个就不会执行绘制了 





    (6)                把原有的用winrar解压开 



    (7)        把修改的class覆盖原有的class 


    (8)        用winrar把解压出来的重新压缩,主要要选择压缩格式为zip 



     



    (10) 把生成的压缩文件chart.ext.zip修改为chart.ext.jar,完工。
  • 相关阅读:
    微信公众平台接口测试账号申请
    Windows平台下tomcat+java的web程序持续占cpu问题调试
    mysql存储过程基础
    Mysql权限控制
    MySQL开启federated引擎实现数据库表映射
    JAVA中Set集合--HashSet的使用
    在js中嵌套java代码
    MySql计算两个日期的时间差函数
    关于easyui combobox下拉框实现多选框的实现
    利用excel办公软件快速拼凑sql语句
  • 原文地址:https://www.cnblogs.com/ontway/p/8321774.html
Copyright © 2011-2022 走看看