玄铁剑

成功的途径:抄,创造,研究,发明...
posts - 128, comments - 42, trackbacks - 0, articles - 174

转:.netCharting

Posted on 2007-03-30 21:14 玄铁剑 阅读(670) 评论(0)  编辑 收藏 引用 所属分类: 其它
// 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


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
  {
      // Code size 1612 (0x64c) 
     .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

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

v4.0
replace
ab:a as code listed below

.method assembly hidebysig instance bool
a() cil managed
{
// Code size 1612 (0x64c)
.maxstack 6
.locals init (string V_0)
IL_0000: ldc.i4 1
IL_048c: ret

} // end of method ab::a


v4.2

replace a5::a as code listed below

.method assembly hidebysig instance bool
a() cil managed
{
// Code size 4970 (0x136a)
.maxstack 6
.locals init (string V_0)
IL_0000: ldc.i4 1
IL_048c: ret
} // end of method a5::a  
last updated:2006.08