写点什么

Aspose.pdf 破解全程记录

用户头像
janux
关注
发布于: 2020 年 10 月 13 日
Aspose.pdf破解全程记录

Aspose.PDF for Java是一种快速,轻量级的PDF处理控件,无需使用Adobe Acrobat即可生成,修改,转换,渲染,保护和打印PDF文档。同时支持使用PDF,XFA,TXT,HTML,PCL,XML,XPS和图像文件格式。

Aspose.PDF for Java(点击下载)提供PDF压缩选项,表格创建和操作,图形支持,图像功能,广泛的超链接功能,扩展的安全控制和自定义字体处理。此外,开发人员可以通过其API或XML模板直接创建PDF文档,并可以创建表单或管理PDF文档中嵌入的表单域。

由于是商用软件需要付费获取授权证书才能避免有水印和只可以处理的4页限制,网上有大量的破解教程可以绕过这些限制,随着技术的发展,每个版本的破解方式也在改变,如果想用最新的版本还是自己了解破解的原理更关键,至少不用等待别人的进度。

本文基于Aspose.pdf 20.08版本,下面开始动手:

1、先下载jar包 或使用maven下载,并加载到classpath当中,这一步就不多说了,如果这些不会破解也就没有必要了。

2、找到在jar包中的License.class文件,反编译文件打开(最好使用idea的反编译打开),认真阅读代码

发现关键授权的关键类是l9u,进入l9u,里面的方法太多,debug也不提示那个方法使用了,网上也没有20版本以后的 破解方法,思路断了,

后来参考了下https://blog.csdn.net/qq_42834405/article/details/98618002

先上测试用的工具类:

public class AsposePdfUtils {
public static void pdftoimag(String inPath, String outPath) {
try {
com.aspose.pdf.Document doc1 = new com.aspose.pdf.Document(inPath); // inPath是将要被转化的文档
for (int i = 1; i <= doc1.getPages().size(); i++) {
String aa = "/home/linux/" + outPath + "_" + i + ".png";
File file = new File(aa); //新建一个文件
FileOutputStream os;
os = new FileOutputStream(file);
com.aspose.pdf.devices.Resolution reso = new com.aspose.pdf.devices.Resolution(
200);
com.aspose.pdf.devices.JpegDevice jpegDevice = new com.aspose.pdf.devices.JpegDevice(
reso, 100);
jpegDevice.process(doc1.getPages().get_Item(i), os)
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

使用运行测试代码发现异常:

从异常信息中可以看出在ADocument.lf()方法中限制了最多只能转换4页,根据异常信息一步一步找到ADocument.lf()方法,

可以看到有效的方法是ADocument.lT()

于是动手术开始:

  1. 使用javassist修改字节码文件

  1. 将生成的class文件替换jar中的文件

  2. 删除以下两个文件



2、破解水印问题

 从上面可知l9u.class是处理授权的关键类,于是把他删掉,看下报什么错.

从报错可知关键的方法是ADocument.lt() 不带参数的方法 (千万判断好不要修改带参数的lt方法),最终修改方法:





发布于: 2020 年 10 月 13 日阅读数: 186
用户头像

janux

关注

擅长研究问题,擅长java,vue,linux等 2019.04.01 加入

还未添加个人简介

评论

发布
暂无评论
Aspose.pdf破解全程记录