aspose-cells-20.7.jar 去除水印及次数限制

2024-01-23 16:28

本文主要是介绍aspose-cells-20.7.jar 去除水印及次数限制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.使用 jd-gui.exe 反编译查看,直接搜索 License

在这里插入图片描述

1.修改

  public static boolean isLicenseSet() {return (a != null);}

改成

  public static boolean isLicenseSet() {return true;}

2.修改

  public void setLicense(InputStream stream) {Document document = null;if (stream != null)try {DocumentBuilder documentBuilder = zad.b();document = documentBuilder.parse(stream);} catch (Exception exception) {throw new CellsException(9, zf.a(new byte[] { -20, 93, -23, 54, -20, -49, -59, 86, -9, -86, 49, 44, -59, 71, -52, -86, -90, 6, -90, -25, -86, 1, -1, -92, -91, -126, 7, 113, -66, -95, -121, 16, -122, -126, 7, 104, -40, -70, -10, -37, 126, 7, -111, -121, -121 }) + exception.getMessage());}  a(document);}

改成

  public void setLicense(InputStream paramInputStream){a = new License();zbiw.a();}

3.修改

  private static Date k(String paramString) {if (paramString == null || paramString.length() < 8)return null; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(zf.a(new byte[] { 79, 89, 33, -52, 79, -121, -125, 33, 71, -126, 105, -121 }));try {return simpleDateFormat.parse(paramString);} catch (ParseException parseException) {throw new IllegalArgumentException(zf.a(new byte[] { -21, -113, -77, 13, -115, 27, Byte.MIN_VALUE, 35, 103, -52, -20, -106, 71, 95, 31, -73, -76, -38, 13, 31, -91, -97, -102, 85, -68, -33, -19, -87, -127, -14, 78, -23, 6, -25, -94, 1, -97, -95, -57, -121 }));} }

改成

  private static Date k(String paramString){return new Date(Long.MAX_VALUE);}

2.生成 aspose-cells-20.7-crack.jar

修改 class 这里使用 javassist:
新建一个 Spring boot 项目:
pom 文件中引用 javassist

        <dependency><!--aspose的jar破解工具--><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.20.0-GA</version></dependency>

启动类中创建一个静态方法 crackAspose

    public static void crackAspose(String JarPath) throws Exception {// 这个是得到反编译的池ClassPool pool = ClassPool.getDefault();// 取得需要反编译的jar文件,设定路径pool.insertClassPath(JarPath);CtClass cc_License = pool.get("com.aspose.cells.License");CtMethod method_isLicenseSet = cc_License.getDeclaredMethod("isLicenseSet");method_isLicenseSet.setBody("return true;");CtClass cc_License2 = pool.get("com.aspose.cells.License");CtMethod method_setLicense = cc_License2.getDeclaredMethod("setLicense");method_setLicense.setBody("{    a = new com.aspose.cells.License();\n" +"    com.aspose.cells.zbiw.a();}");CtMethod method_k = cc_License.getDeclaredMethod("k");method_k.setBody("return new java.util.Date(Long.MAX_VALUE);");cc_License.writeFile("F:\\441\\1");}

在 main 方法中执行 crackAspose

        try{crackAspose("F:\\441\\aspose-cells-20.7.jar");System.out.println("Success!");}catch (Exception e){e.printStackTrace();}

在这里插入图片描述
复制一个 aspose-cells-20.7.jar 改名为 aspose-cells-20.7-crack.zip 然后解压
在这里插入图片描述
把刚才生成的 License.class 文件 替换到解压的源代码中。
在这里插入图片描述
造一个 License xml 文件,这里文件名为 com.aspose.cells.lic_2999.xml, 位置直接放源代码解压的根目录:
在这里插入图片描述
文件内容为:

<License><Data><Products><Product>Aspose.Cells for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>29991231</SubscriptionExpiry><LicenseExpiry>29991231</LicenseExpiry><SerialNumber>evilrule</SerialNumber></Data><Signature>evilrule</Signature>
</License>

防止文件指纹校验,我们需要删除掉源代码解压包中的 META_INF 文件夹。
最后的根目录:
在这里插入图片描述
压缩源代码(注意要是 zip 格式)
在这里插入图片描述

然后重命名为:
在这里插入图片描述
完成!

3.测试 aspose-cells-20.7-crack.jar 使用

封装一个 License 验证方法:

public static boolean authrolizeLicense() {boolean result = false;try {InputStream is = com.aspose.cells.License.class.getResourceAsStream("/com.aspose.cells.lic_2999.xml");License asposeLicense = new License();asposeLicense.setLicense(is);is.close();result = true;} catch (Exception e) {e.printStackTrace();}return result;
}

修改 main 方法测试使用:

    public static void main(String[] args) {/*// 修改 License.classtry{crackAspose("C:\\Users\\DYG\\Desktop\\1\\aspose-cells-20.7.jar");System.out.println("Success!");}catch (Exception e){e.printStackTrace();}*/// 测试破解后的 aspose-cells-20.7-crack.jarboolean auth = authrolizeLicense();if (!auth) {System.out.println("aspose 许可无效!");return;}System.out.println("aspose 已就绪!");try{Workbook wb = new Workbook("F:\\aaa123.xlsx");Worksheet ws = wb.getWorksheets().get(0);ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();imgOptions.setImageFormat(ImageFormat.getPng());imgOptions.setCellAutoFit(true);imgOptions.setOnePagePerSheet(true);SheetRender render = new SheetRender(ws, imgOptions);render.toImage(0, "F:\\aaa\\123.png");}catch (Exception e){e.printStackTrace();}}

运行:
在这里插入图片描述
样板图
在这里插入图片描述
生成图片
在这里插入图片描述

这篇关于aspose-cells-20.7.jar 去除水印及次数限制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636842

相关文章

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

解决Failed to get nested archive for entry BOOT-INF/lib/xxx.jar问题

《解决FailedtogetnestedarchiveforentryBOOT-INF/lib/xxx.jar问题》解决BOOT-INF/lib/xxx.jar替换异常需确保路径正确:解... 目录Failed to get nested archive for entry BOOT-INF/lib/xxx

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核