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.class
    try{
        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.jar
        boolean 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();
        }
    }

运行:
在这里插入图片描述
样板图
在这里插入图片描述
生成图片
在这里插入图片描述

相关推荐

  1. aspose-words去水印自用资源

    2024-01-25 15:14:02       33 阅读
  2. SpringBoot如何限制请求访问次数

    2024-01-25 15:14:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 15:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 15:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 15:14:02       82 阅读
  4. Python语言-面向对象

    2024-01-25 15:14:02       91 阅读

热门阅读

  1. day20 环境对象this、回调函数

    2024-01-25 15:14:02       56 阅读
  2. 【无标题】

    2024-01-25 15:14:02       52 阅读
  3. C++ 拷贝构造函数

    2024-01-25 15:14:02       54 阅读
  4. 2024.1.24力扣每日一题——美丽塔I

    2024-01-25 15:14:02       62 阅读
  5. Kong工作原理 - 负载均衡 - 基于DNS的负载均衡

    2024-01-25 15:14:02       53 阅读
  6. vue若依el-upload实现oss上传

    2024-01-25 15:14:02       52 阅读