# Aspose破解 **Repository Path**: Rhao617/aspose-cracking ## Basic Information - **Project Name**: Aspose破解 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2025-07-16 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1、引入jar包 1、在pom.xml配置aspose的jar包仓库 ``` AsposeJavaAPI Aspose Java API https://repository.aspose.com/repo/ ``` 2、然后分别加对应的依赖并刷新pom文件进行下载: ``` com.aspose aspose-words 21.11 jdk17 com.aspose aspose-pdf 21.8 com.aspose aspose-cells 21.8 com.aspose aspose-slides 21.8 jdk16 org.javassist javassist 3.20.0-GA ``` 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目录下,内容如下: ``` Aspose.Total for Java Aspose.Words for Java Enterprise 20991231 20991231 8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7 sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU= ``` 然后在转换之前,先手动调一下校验,才能实现去水印和页数限制: ``` FileInputStream fis = new FileInputStream("src/main/resources/license.xml"); License license=new License(); license.setLicense(fis); //开始转换代码。。。(省略) ```