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,完工。
  • 相关阅读:
    VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布 Inchroy's Blog 博客频道 CSDN.NET
    编写可丢弃的代码
    c++ using namespace std; 海明威 博客园
    解决MySQL server has gone away
    nginx upstream 调度策略
    (2006, 'MySQL server has gone away') 错误解决 dba007的空间 51CTO技术博客
    Linux IO模型漫谈(2) 轩脉刃 博客园
    redis源码笔记 initServer 刘浩de技术博客 博客园
    MySQLdb批量插入数据
    词库的扩充百度百科的抓取你知道这些热词吗? rabbit9898 ITeye技术网站
  • 原文地址:https://www.cnblogs.com/ontway/p/8321774.html
Copyright © 2011-2022 走看看