DotnetCharting V2.5/V3.X破解思路分析


// http://www.dotnetcharting.com
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

 

V 3.0去掉水印补丁
http://files.cnblogs.com/midea0978/dotnetCHARTING.rar


V3.1/V3.2/V3.3[Asp.net]去掉水印思路
好像这个版本更加简单一些,在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

空间有限,不附带下载,方法很简单,需要的可以自行处理!

last updated:2006.08

你可能感兴趣的:(chart)