Beyond the dream——飛雪飄寒

————磨難不過是人生鍵盤的回車。。。。。。
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

DotnetCharting控件的破解方法

Posted on 2008-09-24 11:14  飛雪飄寒  阅读(6540)  评论(6编辑  收藏  举报

     在.net使用DotNetCharting控件生成报表统计图总结  文章中,不少博友提出“1.生成的图片带超链接导向官网,如何处理呀?2.我使用这个控件后,图形可以显示出来。但是发现一个小问题。就是在图形的左上方和图形的下面都隐含了超链接,鼠标移动到这两个区域后,点击都会链接到http://www.dotnetcharting.com/。很奇怪,这是和破解有管吗?”等类似的问题,于是自己在网上找了些资料,破解了两个版本的DotNetCharting控件,现提供下载。

     1、dotnetCHARTING_V3.2_cracked.rar
     2、DotnetCharting_V4.3_cracked.rar
     
     一、破解工具及使用方法
     1、开始-所有程序-Microsoft Visual Studio .NET 2003-Visual Studio .NET 工具-Visual Studio .NET 2003 命令提示。输入ildasm。 

     2、在IL DASM里面,文件-打开,选择dotnetCharting.WinForms.dll。然后文件-转储-确定,导出il文件,文件名为dotnetCHARTING。用记事本打IL文件,修改破解代码,修改完成并保存。 

     3、把刚才生成的IL文件及一起释放出来的其它文件考到C:\Documents and Settings\Administrator下面。 

     4、开始-所有程序-Microsoft Visual Studio .NET 2003-Visual Studio .NET 工具-Visual Studio .NET 2003 命令提示。输入ilasm /dll /res:dotnetCHARTING.res dotnetCHARTING.il生成新的dll文件。可以直接使用。

     二、破解方法
     V2.5 去掉水印方法
     该控件采用字符串加密方法实现 
     经过分析,采用日志记录法记录下面的所有翻译信息,然后根据需要 
     查找到目标字符信息,分析代码解决 
     修改发现在am:a(ref Bitmap A_0, Graphics A_1) 
     中存在调用 
     if (this.ay) 
      { 
            this.a(ref A_0); 调用水印处理代码,去掉前面判断条件,改 IL_0030:  br【true】.s  IL_0039 
      } 
     先用ildasm解析出然后用ilasm组装就可以了! 

     V3.0去掉水印方法
     在3.0中,需要处理以下方法 
     1. private void az:a(ref Bitmap A_0, Graphics A_1); 
     修改 
     IL_0031:  ldfld      bool az::aq 
     IL_0036:  brfalse.s  IL_003f 
     为 
     IL_0031:  ldfld      bool az::aq 
     IL_0036:  brtrue.s  IL_003f 

     2. private void Chart:a(Point A_0); 
     将该方法内容清空,改为 
     .method private hidebysig instance void 
    a(valuetype [System.Drawing]System.Drawing.Point A_0) cil managed
    {
      // 代码大小       495 (0x1ef)
      .maxstack  4
      IL_01ee:  ret
    } // end of method Chart::a 

     V3.1/V3.2/V3.3去掉水印方法 
     在Chart下面有一个class 
     public class Key   
     Name: dotnetCHARTING.Key 
     Assembly: dotnetCHARTING, Version=3.1.1886.22330 
     下面有一个internal bool a();的方法,如果返回false,则显示水印,否则变成正式版。 
     修改方法很简单,具体如下: 
     1、用ildasm导出IL文件dotcharting.dll 
     2、定位该方法,可以用查找[V3.2/3.3]Key::a,[v3.3Asp.net]dt::a定位 
     3、修改该方法代码如下: 
     .method assembly hidebysig instance bool 
    a() cil managed
    {
      // 代码大小       1165 (0x48d)
      .maxstack  6
      .locals init (string V_0)
      IL_0000:  ldc.i4     1
      IL_048c:  ret
    } // end of method Key::a  or dt::a[Asp.net]

     V3.3[WebForm]去掉水印方法 
     ildasm导出il文件,然后打开查找[Not for production use],你会发现在
     dotnetCHARTING.WinForms.n下面有两个方法包含上面内容,直接删除该方法内的内容,只保留最后
     的ret语句,修改完成。

     V4.0[WebForm]去掉水印方法
     1、用ildasm导出IL文件dotcharting.dll 
     2、定位到dotnetCHARTING.al
     internal bool a();
     Declaring Type: dotnetCHARTING.al 
     Assembly: dotnetCHARTING, Version=4.0.2377.34205 
     将该方法的内容清空,换成下面的语句,重新组装就可以了。
     .method assembly hidebysig instance bool 
     a() cil managed
     {
          .maxstack  6 
          .locals init (string V_0) 
          IL_0000:  ldc.i4     1 
          IL_048c:  ret 
      } // end of method al::a

     保存,运行ilasm /dll /res:dotnetCHARTING.res dotnetCHARTING.il生成新的dll文件,覆盖原来文件就OK

     信息来源:http://www.cnblogs.com/midea0978/articles/64684.html