【2020.5】Aspose-Crack,Aspose转pdf去水印方法

aspose是一个比较稳定快速的office转pdf的插件,但是试用版会自动在pdf上加水印,下附去水印教程

实现过程

首先在官网下载最新版20.4版本Aspose Repository Browser /java/repo/com/aspose/aspose-words/

直接加入到项目中,找到License.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class test{

    private zz2G zzYJD = zz2G.zzp3();

    public License() {
    }

    public void setLicense(String licenseName) throws Exception {
        if (licenseName == null) {
            throw new NullPointerException(this.zzYJD.zzZv(new byte[]{108, 105, 99, 101, 110, 115, 101, 78, 97, 109, 101}));
        } else {
            (new zzZJJ()).zzT(licenseName, zzZY7.zzkB());
        }
    }

    public void setLicense(InputStream stream) throws Exception {
        if (stream == null) {
            throw new NullPointerException(this.zzYJD.zzZv(new byte[]{115, 116, 114, 101, 97, 109}));
        } else {
            (new zzZJJ()).zzV(stream);
        }
    }
}

发现这两个setLicense, 返回的是new zzZJJ().zzT和new zzZJJ().zzV

查看这两个函数发现zzT调用了zzV 所以重点就在zzV()函数里。

==================忘了=============

是的,一通debug发现加水印的地方的判断是zzZbN函数是否等于1,直接把zzZbN()返回值改成1就行了。

所以直接javassist反编译(ps:这里zzZbM逻辑跟zzZbN逻辑一样,但是只改了zzZbN就可以去水印,目前还没发现是在哪里用到了这个函数)

1
2
3
4
5
6
7
8
9
public class test{
public static void main(String[] args) throws Exception {
        ClassPool.getDefault().insertClassPath("F:\\workSpace\\xxx\\WEB-INF\\lib\\aspose-words-20.4-jdk17.jar");
        CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.words.zzZJJ");
        CtMethod zzv = zzZJJClass.getDeclaredMethod("zzZbN");
        zzv.setBody("{return 1;}");
        zzZJJClass.writeFile("F:\\workSpace\\");
    }
}

生成的class文件替换到现在的jar包里,最后把jar包里的.rsa和.sf文件删除即可

===========================Aspose.Slides=================================

这个和words有些不同

同样进入License.class进入y6.class查找类似的方法

发现这个if函数很像,把返回值改成1试试,然而发现if函数是被重载的,

而javassist直接通过if查找会不知道找哪个方法,直接修改的话修改的是

上边的这个方法,想了半天想到了个简单的办法,查找if方法,把这个方法改成个临时名称,最后再修改回来如下

1
2
3
4
5
6
7
8
9
10
public class test {
     private static void crackPpt() throws NotFoundException, CannotCompileException, IOException {
            ClassPool.getDefault().insertClassPath("F:\\workSpace\\xxx\\WEB-INF\\lib\\aspose-slides-20.4-jdk16.jar");
            CtClass ctClass = ClassPool.getDefault().getCtClass("com.aspose.slides.y6");
            ctClass.getDeclaredMethod("if").setName("tempListIf");
            ctClass.getDeclaredMethod("if").setBody("{return 1;}");
            ctClass.getDeclaredMethod("tempListIf").setName("if");
            ctClass.writeFile("C:\\Users\\ThinkPad\\Desktop\\");
        }
}

同理拿生成出来的class覆盖jar包里的class,并删除.rsa和.sf文件 发现水印已经去掉啦

========================Aspose.Cells=========================

同理找License,发现zkg.class->zasj.class

1
2
3
4
5
6
7
8
9
10
public class test {
    private static void crackCells() throws NotFoundException, CannotCompileException, IOException {

        ClassPool.getDefault().insertClassPath("F:\\workSpace\\xxx\\WEB-INF\\lib\\aspose-cells-20.4.jar");
        CtClass zzZJJClass = ClassPool.getDefault().getCtClass("com.aspose.cells.zasj");
        CtMethod zzv = zzZJJClass.getDeclaredMethod("a");
        zzv.setBody("{return 1;}");
        zzZJJClass.writeFile("C:\\xxx\\xxx");
    }
}

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值