evlon 发表于 2016-9-25 09:46

XX.Words 16.8 破解分享

本帖最后由 zjh16529 于 2019-6-6 18:43 编辑

0x01 Aspose.Words 介绍
Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。
0x02 场景介绍
我主要用它来生成HTML,PDF,代码如下:
ImageSaveOptions.HtmlJpegQuality = 95; //本次顺手添加,当图片宽和高都大于256时候,使用。(原来只能为85)
            Aspose.Words.Document word = new Document(s);
            var option = new HtmlSaveOptions(SaveFormat.Html) {ScaleImageToShapeSize = true
                ,UseHighQualityRendering = true
            };
            word.Save(path + "\\" + n + ".html",option);
            word.Save(path + "\\" + n + ".pdf");

0x03 主要破解过程
0x0301 使用 De4dot 反混淆,把原来类名、方法名称,字段名称等修复成可读的模式。


0x0302 DnSpy上场,添加断电在这里(因为我要去除的是HTML中的“Evaluation Only.Created by Aspose.Words. ...”,直觉一定会拼接字符串)
// Token: 0x06006473 RID: 25715 RVA: 0x0014D4C4 File Offset: 0x0014B6C4
internal StringBuilder AppendFormatHelper(IFormatProvider provider, string format, ParamsArray args)

人品爆发,在好像几百次后直接命中,如图:

查看堆栈调用,找到Aspose域,看到关键代码如下:
internal static void smethod_23(Document document_0)
{
      string text = string.Format(Class2604.smethod_0(286057111), Class2604.smethod_0(285403468).Substring(0, 4));
      string text2;
      switch (Class2431.smethod_24(document_0.method_113(), out text2))
      {
      case Enum46.NoVenture://我不想到这里
                IL_41:
                if (Class266.smethod_0() != (Enum152)1)
                {
                        Class2431.smethod_26(document_0, text);
                        Class2431.smethod_27(document_0, Class2604.smethod_0(286057186));
                        return;
                }
                return;
      case Enum46.Evaluation://我不想到这里
                text = (string.IsNullOrEmpty(text2) ? text : text2);
                Class2431.smethod_26(document_0, text);
                Class2431.smethod_27(document_0, Class2604.smethod_0(286057186));
                return;
      case Enum46.Licensed://到这里是我们的目标
                return;
      }
      goto IL_41;
}

如下图:

看这个函数:Class2431.smethod_24,代码如下图:

使用DnSpy的编辑方法体:修改成如下:
0      0000      ldc.i4.2
1      0001      stloc.0
2      0002      ldarg.1
3      0003      ldsfld      string System.String::Empty
4      0008      stind.ref
5      0009      ldloc.0
6      000A      ret

转换为C#代码如下:


最后保存模块。 打完收工。

0x04 破解版下载












pojie_xiao 发表于 2017-10-16 14:25

lou_xs 发表于 2017-4-12 14:15
怎么报错呢?未能验证强名称签名。此程序集可能已被篡改,或者已被延迟签名,但没有用正确的私钥进行完全签 ...

我跟你一样,有解决办法吗

yzpopulation 发表于 2016-9-29 21:11

dplxin 发表于 2016-9-27 08:36
请问 你vs 怎么设置 让他可以断点下在 aspose里?甚至 看你的微软源码也可以下?

是 dnspy 不是vs调试的,一个大牛的产品

kangtr 发表于 2016-9-25 09:53

LZ, Aspose.Email破解一个?

macintosh 发表于 2016-9-25 09:59

万分感谢楼主分享。

wshhj 发表于 2016-9-25 10:37

不懂啊还是谢谢分享

待初情宝缱绻 发表于 2016-9-25 10:45

毕竟才大二~~

czy 发表于 2016-9-25 10:48

windy8848 发表于 2016-9-25 11:10

这个是用在JAVA上还是.NET上的?

evlon 发表于 2016-9-25 11:12

windy8848 发表于 2016-9-25 11:10
这个是用在JAVA上还是.NET上的?

不好意思没有写清楚,

是用于.Net

evlon 发表于 2016-9-25 11:15

kangtr 发表于 2016-9-25 09:53
LZ, Aspose.Email破解一个?

你自己验证一下吧。
http://www.52pojie.cn/thread-540072-1-1.html

jinhao8787 发表于 2016-9-25 11:55

页: [1] 2 3 4 5
查看完整版本: XX.Words 16.8 破解分享