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();}}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EI会议征稿通知】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

SpringMVC:拦截器

一般我们会做一些统一的操作这个时候我们需要使用springmvc提供的拦截器&#xff0c;例如token的验证&#xff0c;字段必填的操作&#xff0c;接口超时判断&#xff0c;签名验证&#xff0c;字段加密等操作&#xff0c;所以我们需要了解执行先后顺序。 我们来简单介绍下实现过程…

第6章-路由器、交换机及其操作系统介绍

目录 1. 路由器与交换机的作用与特点 1.1. 路由器 1.2. 交换机 1.3. 路由交换 2. H3C路由器与交换机介绍 3. H3C网络设备操作系统Comware 1. 路由器与交换机的作用与特点 1.1. 路由器 1、定义&#xff1a;路由器&#xff08;Router&#xff09;是连接两个或多个网络的硬…

穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

R语言中数据框是什么?

在数据分析过程中离不开表格&#xff0c;通常使用Excel来做数据分析&#xff0c;行和列用来存放不同的数据&#xff0c;表格能清晰直观的展示数据&#xff0c;而且可以将多张表组合联系起来&#xff0c;这种不约而同的规范也同样适用于R语言。 R语言中的数据框&#xff08;Data…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

【图形学】实现二维几何变换

二维点类 class CPoint2 { public:CPoint2();CPoint2(double x, double y);~CPoint2();friend CPoint2 operator (const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator -(const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator *(const…

云原生 - 微信小程序 COS 对象存储图片缓存强制更新解决方案

问题描述 遇到一个这样的情况&#xff1a;在微信小程序里图片缓存十分麻烦&#xff0c;网上很多说在腾讯云里的 COS 存储对象服务里设置对应的图片缓存&#xff08;Header 头 Cache-Contorl&#xff09;&#xff0c;说实话真不好用&#xff0c;一会儿生效&#xff0c;一会儿没…

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷&#xff0c;选择一个区域一个单元格&#xff0c;不要选择多个一刷就出来了 第一个计算后向下拖就行了&…

FastDFS分布式文件存储

为什么会有分布式文件系统&#xff1f; 分布式文件系统是面对互联网的需求而产生。因为互联网时代要对海量数据进行存储。很显然靠简单的增加硬盘个数已经满足不了我们的要求。因为硬盘传输速度有限但是数据在急剧增长&#xff0c;另外我们还要要做好数据备份、数据安全等。采用…

Git的安装与配置

目录 前言 Linux-centos&#xff1a;下安装 Linux_ubuntu下安装 创建Git本地仓库 配置用户名和Email 前言 Git是一种版本控制器&#xff0c;能够让我们了解一个文件的历史&#xff0c;以及它的发展过程。通俗的将就是可以记录一个工程的每一次改动和版本迭代的一个管理系统…

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后&#xff0c;往往并不习惯 shell 编程&#xff0c;因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下&#xff1a; vscode 下载 Bash Debug 插件 mac 升级 bash 版本&#xff08;因为此 vscode 插件需要 b…

蓝桥杯重要知识点和赛题直通车

<蓝桥杯软件赛>零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍官方链接零基础能得奖吗&#xff1f; 第 2周(2023-10-30): 常考知识点蓝桥杯怎么判题备赛计划 第 3周(2023-11-06): 填空题&#xff08;分数少但越来越不好做&#xff09; 第 4周(2023-11-13): &#…

更改wpf原始默认按钮的样式

样式 代码 <Window x:Class"WpfApp4.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008…

141基于matlab的齿轮系统非线性动力学特性分析

基于matlab的齿轮系统非线性动力学特性分析&#xff0c;综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下&#xff0c;参数阻尼比变化调节下&#xff0c;输出位移、相图、载荷、频率幅值结果。程序已调通&#xff0c;可直接运行。 141 matlab齿轮非线性动力学 (xiaohongs…

【C++】多项式输出

记录一下这个WA了三遍才AC的题......QAQ 题目描述 一元 n 次多项式可用如下的表达式表示&#xff1a; 其中&#xff0c;aixi称为 i 次项&#xff0c;ai 称为 i 次项的系数。给出一个一元多项式各项的次数和系数&#xff0c;请按照如下规定的格式要求输出该多项式&#xff1a; f…

使用VSCode开发 Python虚拟环境配置说明

这里给大家介绍下怎么配置VSCode的环境来开发Python。 介绍&#xff1a; VSCode是一款由Microsoft开发的免费、开源的代码编辑器。它具有许多优势&#xff0c;使其成为许多开发者喜爱的工具之一。以下是一些VSCode的主要优势&#xff1a; 轻量且快速启动&#xff1a; VSCode是…

每日一题——LeetCode1299.将每个元素替换为右侧最大元素

方法一 个人方法&#xff1a; 题目意思就是求在i1;i的循环条件下&#xff0c;arr[i]-arr[arr.length-1]的最大值分别为多少&#xff0c;最后一项默认为-1 用slice方法可以每次把数组第一位去除&#xff0c;得到求最大值的目标数组 Math的max方法可以直接返回数组里的最大值 …

基于yolov5-master和pyqt5的森林火灾监测软件

文章目录 项目背景效果演示一、实现思路① 算法原理② 程序流程图 二、系统设计与实现三、模型评估与优化 项目背景 火灾作为威胁人类生命生产安全的隐患之一&#xff0c;一直是人们关注的重点。传统的火灾监测装置根据温度来检测火灾&#xff0c;不仅灵敏度差&#xff0c;而且…

数据结构课程设计 仓储管理系统

仓储管理系统 【基本功能】 把货品信息表抽象成一个线性表&#xff0c;货品信息&#xff08;包括ID、货品名、定价、数量等&#xff09;作为线性表的一个元素&#xff0c;实现&#xff1a;按ID、货品名分别查找某货品信息&#xff08;包括ID、货品名、定价、数量等&#xff0…