前几天做项目。需要用到一个WinForm的HTML的编辑和显示控件。.NET自己并没有提供这方面的控件。去Googel百度了一下。没有找到合适的.NET控件。无奈去英文Googel了一下。果然发现了一款名为:.NET Win HTML Editor Control 3.2的控件。下载配置环境试用。发现免费版提供全功能试用。唯一不好的地方就是在编辑区有一个注册的链接。暂时还没发现有其他的限制。
 
整理一下破解思路如下:
          1. 首先使用Reflector反编译工具尝试反编译程序。
          2. 查找程序判断是否注册或者显示非注册版限制的代码。
          3. 使用ilDasm反编译DLL为IL文件。
          4. 去掉“判断是否注册”的代码或者“显示非注册版限制”的代码。
          5. 使用ILasm编译IL文件为DLL。
          6. 使用VisualStudio编写例子程序测试。
标准的破解流程。还好破解需要的软件电脑上都有,不需要从新下载。说干就干。

第一步:使用Reflector反编译程序:
哭泣!代码进行了混淆。虽然还是可以看得懂。不过估计没个十天半个月是搞不定了。我可没那么好的耐心。难道真的破解不了了么?算了直接跳过这步进行第三步。

第三步:使用ilDasm反编译DLL为IL文件
使用ilDasm反反编译DLL为IL文件的方法如下:进入命令行模式。 进入.NET SDK目录输入:
iLDasm.exe WinHTMLEditorControl.dll /out=E:"il" WinHTMLEditorControl.il

第四步:去掉“判断是否注册”的代码或者“显示非注册版限制”的代码
使用Visual Studio打开WinHTMLEditorControl.il。不管三七二十一先找到:

 1NET Win HTML Editor Control破解过程全记录  .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$NET Win HTML Editor Control破解过程全记录NET Win HTML Editor Control破解过程全记录NET Win HTML Editor Control破解过程全记录NET Win HTML Editor Control破解过程全记录..
 2NET Win HTML Editor Control破解过程全记录                00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1NET Win HTML Editor Control破解过程全记录NET Win HTML Editor Control破解过程全记录..
 3NET Win HTML Editor Control破解过程全记录                F5 F3 1F 13 1D D7 B1 30 75 AD 0F B8 45 09 7E 6E   // NET Win HTML Editor Control破解过程全记录NET Win HTML Editor Control破解过程全记录.0uNET Win HTML Editor Control破解过程全记录E.~n
 4NET Win HTML Editor Control破解过程全记录                BF 73 98 FC 49 88 47 BB BA AC 9F 88 78 54 FD B3   // .s..I.GNET Win HTML Editor Control破解过程全记录..xT..
 5NET Win HTML Editor Control破解过程全记录                EC DC 89 27 70 84 B4 01 6D A9 9C 45 95 97 79 80   // NET Win HTML Editor Control破解过程全记录'pNET Win HTML Editor Control破解过程全记录m..E..y.
 6NET Win HTML Editor Control破解过程全记录                4E 4D E1 C2 43 13 20 38 DB 2F 33 87 69 9C BA A6   // NM..C. 8./3.iNET Win HTML Editor Control破解过程全记录
 7NET Win HTML Editor Control破解过程全记录                F6 7C D3 7B 5F 08 BE FA BA 9C 5D 61 2C 66 BD 06   // .|.{_NET Win HTML Editor Control破解过程全记录..]a,f..
 8NET Win HTML Editor Control破解过程全记录                2A 81 BE B1 6D 55 8C 01 5D CA 2B 87 79 D9 2C 8E   // *NET Win HTML Editor Control破解过程全记录mU..].+.y.,.
 9NET Win HTML Editor Control破解过程全记录                42 2C 7B B0 97 49 C5 6E F5 B3 C6 05 39 12 23 0A   // B,{..I.nNET Win HTML Editor Control破解过程全记录.9.#.
10NET Win HTML Editor Control破解过程全记录                40 DD 07 FF 73 85 C6 29 73 F9 5D 30 88 93 CB E3 ) // @NET Win HTML Editor Control破解过程全记录s..)s.]0NET Win HTML Editor Control破解过程全记录.

把这段代码删除。先把那那个什么什么Key去掉。 然后查找“Click here to Purchase and remove this link”因为它免费版提示的就是这句话。 找到如下代码:

1NET Win HTML Editor Control破解过程全记录    IL_01f4:  ldfld      class [System.Windows.Forms]System.Windows.Forms.LinkLabel WinHTMLEditorControl.winHTMLEditorControl::xa1f1f9a7278f5fa8
2NET Win HTML Editor Control破解过程全记录    IL_01f9:  ldstr      "Click here to Purchase and remove this link"
3NET Win HTML Editor Control破解过程全记录    IL_01fe:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
4NET Win HTML Editor Control破解过程全记录    IL_0203:  br         IL_0359
5NET Win HTML Editor Control破解过程全记录

看来这个代码是把字符串“Click here to Purchase and remove this link”赋值给LinkLabel。这个就是增加免费限制的代码了。先小小的修改一下修改代码如下:

1NET Win HTML Editor Control破解过程全记录    IL_01f4:  ldfld      class [System.Windows.Forms]System.Windows.Forms.LinkLabel WinHTMLEditorControl.winHTMLEditorControl::xa1f1f9a7278f5fa8
2NET Win HTML Editor Control破解过程全记录    IL_01f9:  ldstr      ""
3NET Win HTML Editor Control破解过程全记录    IL_01fe:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
4NET Win HTML Editor Control破解过程全记录    IL_0203:  br         IL_0359

同样给LinkLabel赋值。不过只赋一个空值。

第五步:使用ILasm编译IL文件为DLL。
使用ilasm编译il为DLL文件的方法如下:进入命令行模式。 进入ilasm.exe所在目录输入: Ilasm.exe /dll E:"il"WinHTMLEditorControl.il。编译成功。

第六步:使用VisualStudio编写例子程序测试
使用VisualStudio因为修改后的DLL。编译结果如下: 限制没有了,而且是全功能的破解成功!

上传来半天图片都没弄明白。想看图片的朋友去下载word文档吧:Download
NET Win HTML Editor Control安装程序下载:Download

软件破解是一门技术。软件进入了.NET时代。不但开发“.NET了”。破解也变的平民话了。
起初写这篇随笔的时候确实有炫耀的心态。
这里也要感谢“博客园网友”们的提醒。

文档中已经去掉了破解后DLL的下载地址。希望这篇随笔可以对想要学习和了解.NET破解的人有一个入门的帮组。

感谢 18楼 JoinLiu 的提醒 ,测试了一下确实是有时间方面的限制。
如果仅仅是按上面修改确实不能解除时间的限制。
又花了1个多小时测试了一下。只要按照上面说的破解思想继续在IL代码中查找时间限制的代码然后把代码去掉或修改还是可以破解的。

相关文章: