Aspose的jar破解文档
Aspose的jar破解文档
1、引入jar包
方式一:
1、在pom.xml配置aspose的jar包仓库
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
</repositories>
2、然后分别加对应的依赖并刷新pom文件进行下载:
<dependency><!--word-->
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>21.11</version>
<classifier>jdk17</classifier>
</dependency>
<dependency><!--pdf-->
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.8</version>
</dependency>
<dependency><!--excel-->
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.8</version>
</dependency>
<dependency><!--pptx-->
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.8</version>
<classifier>jdk16</classifier>
</dependency>
<dependency><!--jar破解工具-->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
方式二:
1、自行官网下载for Java版本:On Premise File Format API Releases | Aspose
然后把下载好的jar包放到项目的lib目录下,我的如图:
使用加载本地lib目录下jar的方式导入:
<!-- aspose 文档操作工具包,项目本地lib目录引入 -->
<dependency><!--word-->
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<scope>system</scope>
<systemPath>${basedir}/lib/aspose-words-21.1.0-jdk17.jar</systemPath>
</dependency>
<dependency><!--pdf-->
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<scope>system</scope>
<systemPath>${basedir}/lib/aspose-pdf-21.8.jar</systemPath>
</dependency>
<dependency><!--excel-->
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<scope>system</scope>
<systemPath>${basedir}/lib/aspose-cells-21.8.jar</systemPath>
</dependency>
<dependency><!--pptx-->
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<scope>system</scope>
<systemPath>${basedir}/lib/aspose-slides-21.8-jdk16.jar</systemPath>
</dependency>
<dependency><!--aspose的jar破解工具-->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
2、破解前做好的准备:
1、首先是记住你下载完jar本地的绝对路径,比如我是以方式一下载的,我本地的jar包就保存在C:\Users\PC.m2\repository\com\aspose\下,下面破解各个jar的时候需要用到各个jar包的绝对路径去获取类的内容
2、新建一个类,写一个方法,按住ctrl键点击对应的setLicense()类里面看源码
最后记住:每个版本的代码破解的地方大多类似,只是名称被换了而已,道理都是一样的
public class AsposePdfJarCrack {
private static void viewSetLicenseCode()throws Exception{
com.aspose.pdf.License pdfLicense=new com.aspose.pdf.License();
com.aspose.words.License wordsLicense=new com.aspose.words.License();
com.aspose.slides.License slidesLicense = new com.aspose.slides.License();
com.aspose.cells.License cellsLicense = new com.aspose.cells.License();
//请点击这里的setLicense方法进入查看源码,不同版本对words 的破解方法名不一样,但道理差不多
pdfLicense.setLicense("");
wordsLicense.setLicense("");
slidesLicense.setLicense("");
cellsLicense.setLicense("");
}
}
3、pdf-21.8版本破解
private static final String Desktop="C:\\Users\\PC\\Desktop\\";
private static void crackAsposePdfJar(String jarName) {
try {
ClassPool.getDefault().insertClassPath(jarName);
CtClass ctClass = ClassPool.getDefault().getCtClass("com.aspose.pdf.ADocument");
CtMethod[] declaredMethods = ctClass.getDeclaredMethods();
int num = 0;
for (int i = 0; i < declaredMethods.length; i++) {
if (num == 2) {
break;
}
CtMethod method = declaredMethods[i];
CtClass[] ps = method.getParameterTypes();
if (ps.length == 2
&& method.getName().equals("lI")
&& ps[0].getName().equals("com.aspose.pdf.ADocument")
&& ps[1].getName().equals("int")) {
//源码ADocument类的这个方法限制页数:
// static boolean lI(ADocument var0, int var1) {
// return !lb() && !lj() && !var0.lt() && var1 > 4;
// }
// 最多只能转换4页,处理返回false,无限制页数
System.out.println(method.getReturnType());
System.out.println(ps[1].getName());
method.setBody("{return false;}");
num = 1;
}
if (ps.length == 0 && method.getName().equals("lt")) {
// 水印处理
method.setBody("{return true;}");
num = 2;
}
}
//修改完,把类的输出到指定目录(桌面下)
ctClass.writeFile(Desktop);
} catch (NotFoundException e) {
e.printStackTrace();
} catch (CannotCompileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
接下来就是调用这个crackAsposePdfJar("C:\Users\PC.m2\repository\com\aspose\aspose-pdf\aspose-pdf-21.8.jar")方法了,运行完就会在桌面生成一个名为com的目录。
先备份aspose-pdf-21.8.jar包,然后右击以压缩包的方式打开,找到对应目录,把上面生成的这个class类替换一下,然后把下面目录下两个文件删掉:
META-INF/37E3C32D.SF
META-INF/37E3C32D.RSA
最后刷新一下pom就可以了
下面的操作都是一样的,只是破解代码不一样而已,所以下面只附上破解代码
4、cells-21.8版本破解:
public static void crackAsposeCells(String JarPath) throws NotFoundException,CannotCompileException, IOException {
// 这个是得到反编译的池
ClassPool pool = ClassPool.getDefault();
// 取得需要反编译的jar文件,设定路径
pool.insertClassPath(JarPath);
CtClass ctClass = pool.get("com.aspose.cells.License");
CtMethod method_isLicenseSet = ctClass.getDeclaredMethod("isLicenseSet");
method_isLicenseSet.setBody("return true;");
CtMethod method_setLicense = ctClass.getDeclaredMethod("setLicense");
method_setLicense.setBody("{ a = new com.aspose.cells.License();\n" +
" com.aspose.cells.zbkl.a();}");
CtMethod methodL = ctClass.getDeclaredMethod("l");
methodL.setBody("return new java.util.Date(Long.MAX_VALUE);");
ctClass.writeFile(Desktop);
}
5、words-21.11-jdk17版本破解代码:
private static void crackAsposeWordsJarAddLicense1(String jarName){
try {
//这一步是完整的jar包路径,选择自己解压的jar目录
ClassPool.getDefault().insertClassPath(jarName);
//获取指定的class文件对象
CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.words.zzXDb");
//从class对象中解析获取指定的方法
CtMethod[] methodA = zzZJJClass.getDeclaredMethods("zzY0J");
//遍历重载的方法
for (CtMethod ctMethod : methodA) {
CtClass[] ps = ctMethod.getParameterTypes();
if (ctMethod.getName().equals("zzY0J")) {
System.out.println("ps[0].getName==" + ps[0].getName());
//替换指定方法的方法体
ctMethod.setBody("{this.zzZ3l = new java.util.Date(Long.MAX_VALUE);this.zzWSL = com.aspose.words.zzYeQ.zzXgr;zzWiV = this;}");
}
}
//这一步就是将破译完的代码放在桌面上
zzZJJClass.writeFile(Desktop);
//获取指定的class文件对象
CtClass zzZJJClassB = ClassPool.getDefault().getCtClass("com.aspose.words.zzYKk");
//从class对象中解析获取指定的方法
CtMethod methodB = zzZJJClassB.getDeclaredMethod("zzWy3");
//替换指定方法的方法体
methodB.setBody("{return 256;}");
//这一步就是将破译完的代码放在桌面上
zzZJJClassB.writeFile(Desktop);
} catch (Exception e) {
System.out.println("错误==" + e);
}
}
6、slides-21.8-jdk16版本破解代码
private static void modifyPptJar(String jarName) {
try {
//这一步是完整的jar包路径,选择自己解压的jar目录
ClassPool.getDefault().insertClassPath(jarName);
CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.slides.internal.of.public");
CtMethod[] methodA = zzZJJClass.getDeclaredMethods();
for (CtMethod ctMethod : methodA) {
CtClass[] ps = ctMethod.getParameterTypes();
if (ps.length == 3 && ctMethod.getName().equals("do")) {
System.out.println("ps[0].getName==" + ps[0].getName());
ctMethod.setBody("{}");
}
}
//这一步就是将破译完的代码放在桌面上
zzZJJClass.writeFile(Desktop);
} catch (Exception e) {
System.out.println("错误==" + e);
}
}
7、注意:
破解完创建一个license.xml的文件放到resources目录下,内容如下:
<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
<Product>Aspose.Words for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>
sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
</Signature>
</License>
然后在转换之前,先手动调一下校验,才能实现去水印和页数限制:
FileInputStream fis = new FileInputStream("src/main/resources/license.xml");
License license=new License();
license.setLicense(fis);
//开始转换代码。。。(省略)
Aspose的jar破解文档的更多相关文章
- Aspose.Words给word文档加水印
需求:在一些重要的Word文档需要打印时,添加水印以明出处. 方案:使用Aspose组件给word文档 代码:干货如下 /// <summary> /// Inserts a waterm ...
- WPF使用Aspose.Words导出Word文档
一.创建Word文档模板 分析需要导出的word文档,将固定的内容和由程序生成的内容分开; 创建一个word(例如:Template.doc)文档,将固定的内容按照一定的格式写入当前文档中; 打开Te ...
- Java使用Aspose组件进行多文档间的转换操作
首先,祝大家新年快乐,2019诸事顺利,很久没有更新博客,今天要给大家说的是 ”Aspose“ 组件,作为2019年第一篇博客,希望大家能够多多支持,2019年要继续加油. 什么是Aspose? As ...
- aspose调用打印机打印文档
aspose很不错的插件,功能非常强大,用到了其中的aspose.word. 如何生成word文档,点击. 下面说说如何如何通过打印机打印文档. aspose提供了一个print方法,通过该方法可以直 ...
- 使用Aspose.Words将Word文档转换为Tiff格式图片文件
用Aspose组件的优点是操作Word文档不需要安装Office就可以实现. 首先需要引用Aspose.Words.dll,链接地址:链接:https://pan.baidu.com/s/1rJvjp ...
- jar -- java文档归档工具
参考文档 http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/jar.html http://blog.chinaunix.net ...
- maven打包源代码sources.jar和javadoc.jar帮助文档
maven中如何打包源代码 *-sources.jar 方式一 : 命令行方式 进入cmd命令行,进入项目工程pom.xml所在路径目录,运行mvn source:jar 和 mvn javado ...
- loadrunner11中文版破解文档+录制脚本(图/文)
下面是整理后的loadrunner11破解版的所有文件及操作步骤. LoadRunner11安装 1.Loadrunner11下载链接:https://pan.baidu.com/s/15Svt3kt ...
- C#使用Aspose.Words操作word文档
最近接到个需求,由于客服这边要导出大量有一定规则的word文件,里面的内容希望系统自动填充,例如 这里我使用Aspose.Words.dll这个类库, 1.首先,我们需要创建模板文件,毕竟有规则的东西 ...
- Aspose.Cells API 中文版文档 下载
链接: https://pan.baidu.com/s/19foJyWgPYvA7eIqEHJ_IdA 密码: yxun
随机推荐
- grpc错误处理
0.1.索引 https://waterflow.link/articles/1665938704477 我们都知道当发起http请求的时候,服务端会返回一些http状态码,不管是成功还是失败.客户端 ...
- sentinel的四种流控规则介绍
sentinel的四种流控规则介绍 今天的内容我们主要围绕四个点进行展开介绍. 流控模式 :关联.链路 流控效果 :Warm Up.排队等待 这四点具体是什么意思呢? 首先启动项目:cloud-ali ...
- 二进制安装Dokcer
写在前边 考虑到很多生产环境是内网,不允许外网访问的.恰好我司正是这种场景,写一篇二进制方式安装Docker的教程,用来帮助实施同事解决容器部署的第一个难关. 本文将以二进制安装方式,在CentOS7 ...
- web前端学习之旅笔记01--HTML
web前端学习之旅笔记01--HTML HTML最容易上手,但也易忘,实际开发中有时需要查阅官方文档,小伙伴们别忘了哟! HTML 教程 (w3school.com.cn) HTML是网页的骨架负责页 ...
- P6492 STEP(线段树维护左右区间pushup)
题目链接 题目描述: 给定一个长度为\(~\)n\(~\)的字符序列\(~\)a,初始时序列中全部都是字符\(~\)L. 有\(~\)q\(~\)次修改,每次给定一个\(~\)x,做出如下变化: \( ...
- python——os模块学习
import os #1.获取当前使用的操作系统 #返回操作系统类型,nt是windows,posix是linux print(os.name) #print是一个函数,函数里面进行条件判断'posi ...
- 两行CSS让页面提升了近7倍渲染性能!
前言 对于前端人员来讲,最令人头疼的应该就是页面性能了,当用户在访问一个页面时,总是希望它能够快速呈现在眼前并且是可交互状态.如果页面加载过慢,你的用户很可能会因此离你而去.所以页面性能对于前端开发者 ...
- 云原生学习笔记-1-docker
一.基础环境说明 1.操作系统:Centos7.6:1master:2node 2.docker版本:docker-ce 19.03.8-3 二.docker安装 1.使用阿里镜像仓库,mirror. ...
- 使用repo上传代码
前言~ repo是一款安卓用于管理源码的工具,由python实现,基于git工具 本文介绍了repo的常用使用方式. 一,下载代码 1. repo init 初始化命令 此命令常用选项就那几个,此处取 ...
- 解决Linux使用deepin-wine跑qq,tim打不开文件所在文件夹
前言 使用deepin-wine 跑qq,发现一个小bug 这里点击打开文件夹是没有效果的,包括在 tim 上也是这样 问题原因 出现这个问题是因为 deepin-wine 跑的 QQ,Tim 打开文 ...