Aspose-Crack,Aspose轉pdf去水印方法


aspose是一個比較穩定快速的office轉pdf的插件,但是試用版會自動在pdf上加水印,下附去水印教程,急用的同學可以到文章底部下載:

 

 

實現過程

首先在官網下載最新版20.4版本https://repository.aspose.com/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");
}
}
 

========================Aspose.pdf========================

待更


 

下載地址

 

點擊下載Aspose.Words-20.4-crack.jar

點擊下載Apose.slides-20.4-crack.jar

點擊下載Aspose.cells-20.4-crack.jar

點擊打包下載Words+Slides+Cells-20.4-crack.zip

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM