9910

单飞

   :: 首页 :: 联系 :: 聚合  :: 管理

Aspose.Words.jdk16.jar 实现无需安装Office ,通过制作Word模版,Java程序就可以自动生成Word文件,试用版本会在生成的word文件头部添加:

Evaluation Only. Created with Aspose.Words. Copyright 2003-2011 Aspose Pty Ltd.

而且对于文件大小也有限制.

 

Java的破解是相当Easy,dll破解不是在一个档次,今天手痒就顺手把它破解了.记录一下破解过程,供大家交流学习使用。

 

1.     下载Asm 4.0 版本:

        http://download.forge.objectweb.org/asm/asm-4.0-bin.zip  

2.     找到许可限制文件:

        使用Java Decompiler 找打许可限制类:


ZIZ.class

 

static void M(Document paramDocument)
  {
    if (GM.aX() == GL.ZFE) {
      return;
    }

 

    String str1 = "Evaluation Only. Created with Aspose.Words. Copyright 2003-2011 Aspose Pty Ltd.";
    String str2 = "This document was truncated here because it was created using Aspose.Words in Evaluation Mode.";
    Ã(paramDocument, str1, str2);
  }

 

 

看来方法M就是许可限制的核心方法。

 

3.     修改字节码

        首先使用ASM重命名该方法,然后新增一个空的方法。

 

public class AsmModify extends ClassLoader implements Opcodes {

 

    public static void main(String[] args) throws IOException, IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException {

 

       ClassReader cr = new ClassReader("com.aspose.words.ZIZ");

       ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS);

       ClassVisitor cv = new MethodChangeClassAdapter(cw);

     


 

    static class MethodChangeClassAdapter extends ClassVisitor implements Opcodes {

 

       public MethodChangeClassAdapter(final ClassVisitor cv) {

           super(Opcodes.ASM4, cv);

       }

 

       @Override

       public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {

 

           if (cv != null) {

              cv.visit(version, access, name, signature, superName, interfaces);

           }

       }

 

    


 

   


       @Override

       public void visitCode() {

 

           super.visitCode();

       }

 

    }

 

}

 

修改后的class多了一个方法:


这样就完成破解了。

 

4.     打包

        使用Winrar把修改后的ZIZ.class 放回Aspose.Words.jdk16.jar,删除签名文件:

       


posted on 2013-06-03 16:30 单飞 阅读(7473) 评论(16)  编辑  收藏

Feedback

# re: aspose破解记录 2013-07-11 15:29 凉粉
求破解后的jar,谢谢
cn_bboy@163.com  回复  更多评论
  

# re: aspose破解记录 2013-09-17 15:00 chiyupei
能不能将破解后的jar文件发给俺一份?
chiyupei@163.com  回复  更多评论
  

# re: aspose破解记录 2013-10-14 10:03 test13
说的太糊看不明白  回复  更多评论
  

# re: aspose破解记录[未登录] 2013-11-28 22:39 java爱好者
求破解后的jar,可以有偿报答,谢谢
wangwenchang010@163.com  回复  更多评论
  

# re: aspose破解记录 2013-12-16 13:21 jersey
同求。请问您现在找到了吗?@java爱好者
  回复  更多评论
  

# re: aspose破解记录 2014-01-22 14:16 sendreams
@test13
lz是故意的,代码没有贴全,不过破解这个东东挺容易的。13.x之后的稍麻烦一些。  回复  更多评论
  

# re: aspose破解记录[未登录] 2014-09-05 10:17 david
我已经破解了最新版本的, 78938076 可以找我.   回复  更多评论
  

# re: aspose破解记录 2014-10-09 11:32 使用者
你好,我现在正在研究Aspose.Words 4 Java的应用,请发一份给我好吗? 邮箱:2351616572@qq.com,谢谢。  回复  更多评论
  

# re: aspose破解记录[未登录] 2014-12-11 16:06 Spark
免费下载地址:

http://download.csdn.net/detail/ahgaoyong/8248367  回复  更多评论
  

# re: aspose破解记录[未登录] 2014-12-11 16:06 Spark
免费下载地址:

http://download.csdn.net/detail/ahgaoyong/8248367  回复  更多评论
  

# re: aspose破解记录[未登录] 2014-12-11 16:07 Spark
免费下载地址:

http://download.csdn.net/detail/ahgaoyong/8248367  回复  更多评论
  

# re: aspose破解记录[未登录] 2015-01-21 16:26 peter
lz有aspose.task for java的破解吗  回复  更多评论
  

# re: aspose破解记录 2015-03-06 16:43 弹弓

3. 修改字节码
首先使用ASM重命名该方法,然后新增一个空的方法。

public class AsmModify extends ClassLoader implements Opcodes {

public static void main(String[] args) throws IOException, IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException {

ClassReader cr = new ClassReader("com.aspose.words.ZIZ");
ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS);
ClassVisitor cv = new MethodChangeClassAdapter(cw);
cr.accept(cv, Opcodes.ASM4);

//新增加一个方法
MethodVisitor mw = cw.visitMethod(ACC_STATIC, "M", "(Lcom/aspose/words/Document;)V", null, null);

mw.visitInsn(RETURN);
// this code uses a maximum of two stack elements and two local
// variables
mw.visitMaxs(0, 0);
mw.visitEnd();

// gets the bytecode of the Example class, and loads it dynamically
byte[] code = cw.toByteArray();

FileOutputStream fos = new FileOutputStream("e:\\logs\\Example.class");
fos.write(code);
fos.close();
}

static class MethodChangeClassAdapter extends ClassVisitor implements Opcodes {

public MethodChangeClassAdapter(final ClassVisitor cv) {
super(Opcodes.ASM4, cv);
}

@Override
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {

if (cv != null) {
cv.visit(version, access, name, signature, superName, interfaces);
}
}

@Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
if (cv != null && "M".equals(name)) { //当方法名为M时,修改方法名为M10000
return cv.visitMethod(access, name + "100000", desc, signature, exceptions);
}
if (cv != null) {
return cv.visitMethod(access, name, desc, signature, exceptions);
}

return null;
}

}

static class AsmMethodVisit extends MethodVisitor {

public AsmMethodVisit(MethodVisitor mv) {
super(Opcodes.ASM4, mv);
}

@Override
public void visitMethodInsn(int opcode, String owner, String name, String desc) {
super.visitMethodInsn(opcode, owner, name, desc);
}

@Override
public void visitCode() {

super.visitCode();
}

}

}
  回复  更多评论
  

# re: aspose破解记录 2015-04-27 16:17 风吹稻花
@Spark
是不是不支持linux  回复  更多评论
  

# @spark[未登录] 2016-03-09 16:31 dimple
我需要aspose task for java,请帮助一下,感谢!dimplescy@163.com  回复  更多评论
  

# re: aspose破解记录[未登录] 2016-04-23 15:10 fish
我需要个 aspose-diagram for java,请帮助一下,谢谢了。seafish2008@126.com  回复  更多评论
  


只有注册用户登录后才能发表评论。

网站导航: