以下内容仅供学习研究使用切勿商业用途
以下操作仅以19.6版本为参考其他版本可能有所不同

aspose-slides 主要用来PPT转图片/PPT转PDF 支持.ppt/.pptx格式,功能强大。

破解步骤

下载原版aspose-slides-19.6

aspose 官网是支持直接下载jar包的
原版aspose-slides-19.6下载
原版aspose-slides-19.6下载

分析License.class文件

源码分析

可以看到,设置许可最终调用的是com.aspose.slides.internal.mx.return这个类的.jdMethod_do方法,接下来进入该类再次查看

打开return这个类,发现里面有很多jdMethod_do方法,我们主要看下面这个入参为InputStream的
方法

再次发现InputStream被传入到下面这个方法
方法2

上面代码可以看到再取许可文件的一些信息,这里就发现了一个小可爱
分析三

找到改方法
分析四

发现改方法居然在校验许可的RSA加密信息,并且这个方法是个void返回,那么最简单的操作就是清空该方法的方法体内容即可。

使用JByteMod清空方法体

因为这里只需要清空方法体,就不用javassist.jar来操作了,使用JByteMode打开jar文件,找到retrun类
找到方法

点开retrun,我们发现很多个do方法,主要是看我选择这个,从上往下数,第十个位置的do,然后点击鼠标右键点击清空
点击 工具->清楚
点击 工具->清楚
上面的菜单可能根据工具版本不同有可能是英文,看着来就行
清空确定

清空后
清空后

现在将改动的另存为一个jar文件

使用压缩工具打开新保存的jar
打开新保存的jar

除了上面红色圈的其他全部删除,删除后如下
删除后

接下来就可以愉快的测试研究了

需要注意License加载,如果同时使用多个aspose的组件,请分别引入各自的License,否则水印还在哟

例如:
 

com.aspose.words.License asposeLicense = new com.aspose.words.License();

com.aspose.slides.License asposeLicense = new com.aspose.slides.License();
虽然类名字都一样License,但是两个包的或者还有个cells包的

使用参考

     final static String license =
            "<License>\n" +
                    "  <Data>\n" +
                    "    <Products>\n" +
                    "      <Product>Aspose.Total for Java</Product>\n" +
                    "      <Product>Aspose.Words for Java</Product>\n" +
                    "    </Products>\n" +
                    "    <EditionType>Enterprise</EditionType>\n" +
                    "    <SubscriptionExpiry>20991231</SubscriptionExpiry>\n" +
                    "    <LicenseExpiry>20991231</LicenseExpiry>\n" +
                    "    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>\n" +
                    "  </Data>\n" +
                    "  <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>\n" +
                    "</License>";

    private static ByteArrayOutputStream pptToPdfStream(InputStream in) throws Exception {
        //注意各个组件必须设置自己的License类
        try (InputStream is = new ByteArrayInputStream(license.getBytes("UTF-8"));){
            com.aspose.slides.License asposeLicense = new com.aspose.slides.License();
            asposeLicense.setLicense(is);
        }

        Presentation ppt = new Presentation (in);
        ByteArrayOutputStream dstStream = new ByteArrayOutputStream();
        ppt.save(dstStream, SaveFormat.Pdf);
        return dstStream;
    }


aspose-slides-19.6.jar下载:aspose-slides-19.6.jar (访问密码: 9987)

 

评论区域