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