日期:2009-10-24  浏览次数:20366 次

这里的DateTime(2004, 7, 11)就是控件的过期时间。说来简单,其实要找到它还是费了一番周折的。根据上面的线索,我在用ildasm工具反汇编出的NineRays.Web.UI.WebControls.FlyTreeView.IL文件中找到了对应的IL代码如下:

.method private hidebysig specialname rtspecialname static
void .cctor() cil managed
{
// 代码大小 19 (0x13)
.maxstack 4
IL_0000: ldsflda valuetype [mscorlib]System.DateTime Global::TRIAL_EXPIRE_DATE
IL_0005: ldc.i4 0x7d4
IL_000a: ldc.i4.7
IL_000b: ldc.i4.s 11
IL_000d: call instance void [mscorlib]System.DateTime::.ctor(int32, int32,int32)
IL_0012: ret
} // end of method Global::.cctor

代码中的0x7d4 便是十六进制的年号2004,我不想太贪,就把它改成2050年吧,十六进制是0x802F

.method private hidebysig specialname rtspecialname static
void .cctor() cil managed
{
// 代码大小 19 (0x13)
.maxstack 4
IL_0000: ldsflda valuetype [mscorlib]System.DateTime Global::TRIAL_EXPIRE_DATE
IL_0005: ldc.i4 0x802F
IL_000a: ldc.i4.7
IL_000b: ldc.i4.s 11
IL_000d: call instance void [mscorlib]System.DateTime::.ctor(int32, int32,int32)
IL_0012: ret
} // end of method Global::.cctor

保存前别忘了删除IL代码起始部分类似下面的代码
.publickey =(00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 // .$..............
00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 // .$..RSA1........
CD 62 12 05 0E 7C CD 6F 51 AF 2C 41 FD CC 65 44 // .b...|.oQ.,A..eD
AC E3 CF 79 6A 19 49 C5 80 C3 FF 52 7C AC 91 1D // ...yj.I....R|...
9B E0 5F AD 28 47 CE F4 E7 E5 EC 87 9F C9 4B E4 // .._.(G........K.
9E 31 C7 97 C2 B8 39 25 C4 ED F6 AA 83 FA 78 A3 // .1....9%......x.
5A 47 C0 F4 7B 44 A8 F9 3F D1 44 A9 B7 96 BF 74 // ZG..{D..?.D....t
9E 8D FC B3 99 82 11 52 A9 5C 7A 37 EB A3 82 B6 // .......R.\z7....
9D A5 8B 7A 1C 87 DA 5C ED 0B 7A 72 BA B1 3F 12 // ...z...\..zr..?.
52 C6 2F 50 DD 35 44 06 E6 F3 B0 4B AF F4 19 BD ) // R./P.5D....K....

再用ilasm重新编译NineRays.Web.UI.WebControls.FlyTreeView.IL及其附属文件,一个破解过的NineRays.Web.UI.WebControls.FlyTreeView.dll便产生了。用Visual Studio .NET打开安装FlyTreeView时安装文件自动创建的示例站点FlyTreeView for ASP.NET\samples中的samples项目,将项目引用中NineRays.Web.UI.WebControls.FlyTreeView.dll移除,然后重新添加引用并选择破解后的NineRays.Web.UI.WebControls.FlyTreeView.dll。l
最后,重新生成一次samples项目并在浏览器中测试示例站点,破解大功告成。
另外,这段文章是我直接在线编辑的,感觉这个WEB编辑器的改动还是成功的比上次使用舒服多了。不过,中间在转换 设计 和 HTML
时如果赶上页面自动回传,会出现 HTML 代码出现在 设计
界面上的情况,幸亏我明白一点机理,马上把有关代码在反粘回来,才不致一切重新来过。