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

相关文章

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

hdu 3065 AC自动机 匹配串编号以及出现次数

题意: 仍旧是天朝语题。 Input 第一行,一个整数N(1<=N<=1000),表示病毒特征码的个数。 接下来N行,每行表示一个病毒特征码,特征码字符串长度在1—50之间,并且只包含“英文大写字符”。任意两个病毒特征码,不会完全相同。 在这之后一行,表示“万恶之源”网站源码,源码字符串长度在2000000之内。字符串中字符都是ASCII码可见字符(不包括回车)。

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

j2EE通用jar包的作用

原文:http://blog.sina.com.cn/s/blog_610901710101kx37.html IKIKAnalyzer3.2.8.jar // 分词器 ant-junit4.jar // ant junit antlr-2.7.6.jar // 没有此包,hibernate不会执行hql语句。并且会报NoClassDefFoundError: antlr

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

环信_Android_第一部_JAR包集成

自己新建 project...不用easeui的包,太不友好了..全部自己解封.自己写 个是在要Android studio 3.3.2版本中测试有效在android7和8(API24,25,26,27)四个个版本中有效. 如果到了Adnroid9(API28,Q)会有so报错.在AndroidMaifest.xml有两处用☆标出来 注意三点. 1:复制两个文件夹文件 libs.av 是

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保