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

相关文章

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

springboot将lib和jar分离的操作方法

《springboot将lib和jar分离的操作方法》本文介绍了如何通过优化pom.xml配置来减小SpringBoot项目的jar包大小,主要通过使用spring-boot-maven-plugin... 遇到一个问题,就是每次maven package或者maven install后target中的ja

Linux部署jar包过程

《Linux部署jar包过程》文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法... 目录linux部署jar包1.统一jdk版本2.打包插件依赖3.修改密码4.执行jar包总结Linux部署jar包部署