`
zeyuphoenix
  • 浏览: 57898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javassist使用教程(jar破解)

 
阅读更多
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Word.Document"> <meta name="Generator" content="Microsoft Word 12"> <meta name="Originator" content="Microsoft Word 12"> <link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cphoenix%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> <link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5Cphoenix%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso"> <!--[if !mso]> <style> v":* {behavior:url(#default#VML);} o":* {behavior:url(#default#VML);} w":* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Cphoenix%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> <link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Cphoenix%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"> <!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal { mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman","serif";} a:link, span.MsoHyperlink { color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed { color:purple; text-decoration:underline; text-underline:single;} .MsoChpDefault { font-size:10.0pt; mso-ascii-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {} @list l0:level1 { mso-level-text:""(%1")"; margin-left:57.0pt; text-indent:-36.0pt;} @list l1 {} @list l1:level1 { margin-left:48.0pt; text-indent:-37.5pt;} @list l2 {} @list l2:level1 { margin-left:18.0pt; text-indent:-18.0pt;} @list l2:level2 { margin-left:57.0pt; text-indent:-36.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman","serif";} </style> <![endif]-->

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

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

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

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

  


<!--[if gte vml 1]> <![endif]-->

<!--[if gte vml 1]> <![endif]-->

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

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

<!--[if gte vml 1]> <![endif]-->

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

      <!--[if gte vml 1]> <![endif]-->

(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;

       这个就不会执行绘制了



<!--[if gte vml 1]> <![endif]-->

<!--[if gte vml 1]> <![endif]-->

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

<!--[if gte vml 1]> <![endif]-->

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

<!--[if gte vml 1]> <![endif]-->

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

<!--[if gte vml 1]> <![endif]-->

<!--[if gte vml 1]> <![endif]-->

10 把生成的压缩文件chart.ext.zip修改为chart.ext.jar,完工。

分享到:
评论

相关推荐

    javassistDemo.zip

    总结来说,"javassistDemo.zip"是一个实践教程,通过实例演示了如何使用Javaassist库来动态修改Java类,包括插入新的方法和改变方法的实现。这对于理解和掌握Java运行时代码修改技术,尤其是对于那些需要在运行时...

    java 反编译工具 jboss-javassist

    在使用Javassist时,开发者通常会先引入对应的jar包,例如压缩包中的"jbosss-javassist-javassist-dfd0733"。这个文件很可能是Javassist的一个特定版本,包含必要的类库和可能的示例代码。要开始使用,可以按照以下...

    SpringMVC教程中所需要的jar

    11. **javassist.jar**:在某些Spring AOP实现中,如CGLIB代理,需要这个库来进行动态类生成。 为了成功运行Spring MVC教程中的实例,确保所有这些jar文件都被正确地导入并包含在类路径中至关重要。这不仅使我们...

    javassist18,20,22三个版本.zip

    初学者可以从官方文档、教程和示例代码开始,逐步熟悉其API和使用方式。理解如何创建、修改和加载类是关键,同时注意版本间的兼容性和性能差异。 总的来说,Javaassist是Java开发中一个强大的工具,尤其在需要动态...

    javassist-3.18.0-GA

    3. **javassist.jar**: 这是 Javaassist 库的主要可执行文件,包含了所有的类和方法,可以直接引入到Java项目中使用。开发者可以通过`import javassist.*`来访问其提供的功能。 4. **使用javassist修改class文件....

    struts2jar包

    6. **其他依赖的jar包**:Struts2运行还需要一些其他的库,如freemarker或velocity用于模板引擎,javassist用于动态类生成,log4j或slf4j用于日志记录等。 引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成...

    thymeleaf-jar包

    2. `javassist-3.20.0-GA.jar`:Javassist是一个开源的Java字节码操作库,Thymeleaf使用它来处理和修改类在运行时的行为,例如动态生成模板处理类。 3. `log4j-1.2.15.jar`:Log4j是Apache的一个日志框架,提供了一...

    Jdk1.8搭建SSh框架所需Jar包

    8. **其他依赖库**:如log4j.jar用于日志记录,commons-lang3.jar、commons-logging.jar等Apache Commons库,还有javassist.jar用于动态字节码操作。 在实际开发中,你可能还需要其他的jar包来支持额外的功能,如...

    Hibernate3.3.2_Java例子精简JAR包

    本例子通過學習“002_尚学堂马士兵_Java视频...antlr-2.7.6.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、hibernate3.jar、javassist-3.9.0.GA.jar、jta-1.1.jar、slf4j-api-1.5.8.jar、slf4j-nop-1.5.8.jar。

    整合struts2框架需要的jar包

    8. **javassist.jar**:动态字节码操作库,Struts2的拦截器机制在某些情况下会用到。 9. **commons-lang3.jar**、`commons-logging.jar`和`log4j.jar`:这些是常见的日志和工具库,用于Struts2的日志输出和其他辅助...

    javassist3150gajar_jb51

    这个 "javassist-3.15.0-GA.jar" 文件就是一个 JAR 包,包含了 Javaassist 库的所有类和方法,使得开发者可以直接在他们的项目中引用和使用。 Javaassist 提供了一套API,可以方便地对字节码进行操作。这些操作包括...

    《EJB3.0实例子教程》jar包1

    《EJB3.0实例子教程》jar包1包含了多个重要的Java企业级开发库,这些库主要用于实现EJB(Enterprise JavaBeans)3.0规范,该规范是Java平台企业版(Java EE)的一部分,用于构建分布式、事务处理、安全性和可伸缩的...

    搭建hibernate有的jar包

    本教程将详细阐述如何搭建一个使用Hibernate的项目环境,以及需要包含的jar包。 首先,理解Hibernate的核心功能是关键。Hibernate作为一个对象关系映射(ORM)工具,它允许开发者使用面向对象的方式来处理数据库,...

    马士兵老师搭建hibernate环境时用到的jar包

    这通常涉及到`javassist.jar`或`cglib-nodep.jar`,取决于你选择的代理实现。 6. **DOM4J或JAXB**:用于XML解析,`dom4j.jar`用于处理Hibernate的配置文件和映射文件,而`jaxb-api.jar`和`jaxb-impl.jar`可能用于...

    Struts2-2.3.16 全jar包

    javassist-3.7.ga.jar ognl-3.0.jar struts2-core-2.2.1.1.jar xwork-core-2.2.1.1.jar 共8个包,将其复制到/Struts2/WebRoot/WEB-INF/lib下面 方法二:(不用复制,导入法) (1).右击项目名称Struts2--&gt;Build ...

    Spring4+Hibernate5+struts2需要jar包集合【附详细讲解】

    javassist-3.24.0-GA.jar javax.activation-api-1.2.0.jar javax.persistence-api-2.2.jar jaxb-api-2.3.1.jar jaxb-runtime-2.3.1.jar jboss-logging-3.3.2.Final.jar jboss-transaction-api_1.2_spec-1.1.1.Final....

    韩顺平hibernate必备jar包

    4. `javassist.jar`:Hibernate使用Javassist库动态修改字节码,实现运行时的类增强,比如为实体类添加getter和setter方法,实现懒加载等特性。 在实际项目中,还需要包含`jta.jar`(Java Transaction API)以支持...

    Struts2框架核心jar包

    - `javassist.jar`:动态类生成库,Struts2使用它来处理动态方法调用。 3. **Struts2的生命周期**: - 用户发起HTTP请求。 - 请求被Struts2的Filter(通常名为`StrutsPrepareAndExecuteFilter`)截获。 - ...

    Hibernate3.6相关Jar包和说明Pdf

    6. **javassist.jar**:Hibernate 使用 javassist 库来动态修改类的字节码,实现运行时的类增强。 7. **dom4j.jar** 和 **xml-apis.jar**:用于 XML 解析和操作,Hibernate 使用它们来处理映射文件。 8. **slf4j-...

Global site tag (gtag.js) - Google Analytics