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,完工。
- 大小: 85.2 KB
- 大小: 101.1 KB
- 大小: 74.3 KB
- 大小: 112 KB
- 大小: 63.7 KB
- 大小: 67.5 KB
- 大小: 70.2 KB
- 大小: 89 KB
- 大小: 70.5 KB
- 大小: 51.3 KB
分享到:
相关推荐
使用Javassist对.class文件进行修改
使用javassist修改class文件.pdf
功能包括:运行时创建java class,修改class。与其他同类工具(asm等)不同的是,Javassist提供了两个层面的API: 1.java代码层 2.字节码层 通过java代码层,开发者即时对字节码不是很熟悉,也可以非常方便快速的...
能够实现java包的重写,分析,java程序的利器,不会的可以网上搜索相关使用方法,也可以留言求助。内含java包及demo,使用时直接引用java包即可。
动态编译字符串成java,并且添加class到jvm
两套工具联合可以修改已编译好的class文件
java修改class文件使用的jclasslib.jar、javassist.jar等等文件。相关步骤、还有一个idea项目示例。(当时找了好久的jclasslib.jar文件,最后才找到一个可用的)
借助jclasslib与javassist修改java class字节码.doc
开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发工具 javassist-3.21.0-GA开发...
NULL 博文链接:https://xuliangjun.iteye.com/blog/1063454
赠送jar包:javassist-3.19.0-GA.jar; 赠送原API文档:javassist-3.19.0-GA-javadoc.jar; 赠送源代码:javassist-3.19.0-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.19.0-GA.pom; 包含翻译后的API文档...
赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar; 赠送源代码:javassist-3.23.1-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.23.1-GA.pom; 包含翻译后的API文档...
javassist 使用案例 源程序
赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar; 赠送源代码:javassist-3.24.0-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.24.0-GA.pom; 包含翻译后的API文档...
赠送jar包:javassist-3.27.0-GA.jar; 赠送原API文档:javassist-3.27.0-GA-javadoc.jar; 赠送源代码:javassist-3.27.0-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.27.0-GA.pom; 包含翻译后的API文档...
它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。 关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解...
赠送jar包:javassist-3.24.0-GA.jar; 赠送原API文档:javassist-3.24.0-GA-javadoc.jar; 赠送源代码:javassist-3.24.0-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.24.0-GA.pom; 包含翻译后的API文档...
javassist的使用,也可直接使用该demo修改自己的jar中的方法,demo中写了两种方法可供参考
javassist java源码级别的class文件运行时修改
赠送jar包:javassist-3.23.1-GA.jar; 赠送原API文档:javassist-3.23.1-GA-javadoc.jar; 赠送源代码:javassist-3.23.1-GA-sources.jar; 赠送Maven依赖信息文件:javassist-3.23.1-GA.pom; 包含翻译后的API文档...