首页 >> Asp.Net >> 正文
FlyTreeView for ASP.NET 3.2 破解攻略(2)-ASP.NET
来源:Dotnet频道 作者:采集 时间:2008-3-31


  根据以往破解经验及之前破解FlyTreeView for ASP.NET 3.1 的经历,Web控件的试用限制通常是在 New,Render,Init等位置实现。为此,我们直接展开NineRays.Web.UI.WebControls.FlyTreeView中的FlyTreeView类,以(图六)中抛出的异常信息“9Rays.Net FlyTreeView for ASP.NET TRIAL license has expired.” 为线索,逐个浏览该类中的重点方法与函数的反汇编代码,发现异常是在FlyTreeView类的构造函数New()中抛出的,其高级语言代码如下:
   
  相关截图见(图八):
   
  显然,关键代码是:
   
  Global.TRIAL_EXPIRE_DATE中保存的应该是控件试用的最后期限,我们只要将Global.TRIAL_EXPIRE_DATE中的期限值向后延长一定年限就可以达到破解的要求了,因为我们毕竟不是要做该控件的注册机,不需要再做更复杂的分析。为此,我们在点击(图八)中蓝色加亮的TRIAL_EXPIRE_DATE,转到静态全局类Global,浏览其相关代码,我们找到了如下关键代码:
   
  相应的截图见(图九):
   
  在以上由Reflector反编译出的代码中,以VB.NET和Delphi代码最为直观,它使我们一眼就看出该控件的最后使用期限为2004年8月3日。(不同时间下载或安装的FlyTreeView表现在代码中的截止日期可能不同,笔者未特意考证)
  下一步的工作就是进入实际破解了。
  3、控件破解:
  在工作目录中双击反汇编批处理文件myildasm.bat,工作目录中便出现了反汇编后得出的NineRays.Web.UI.WebControls.FlyTreeView.il等相关文件,见下表:
   
  用记事本打开NineRays.Web.UI.WebControls.FlyTreeView.il,向后翻一至两页可以看到如下代码,这是用于控件签名的公钥,应将其删除,以避免破解后的控件的被GAC踢出去且添加不进工具箱。
   
  在记事本中利用查找功能查找“0x7d4” (2004年),结合前面Reflector反汇编时得到的有关线索,可以确定NineRays.Web.UI.WebControls.FlyTreeView.il中对应Global()的构造函数的IL汇编代码如下:
  
  将上述代码中的 0x7d4改为我们需要的年份就可以达到我们破解的目的。需要注意的是,新的年份值不可过大,否则可能超出操作系统支持的上限,那就可能出现“万年虫”了。这个值改为2050年就已经足够了,因为人们不可能在四十多年后还在使用这个版本的FlyTreeView,况且到那时,如果微软还侥幸存在的话,恐怕连DOTNET都不知被它淘汰到哪里去了。2050对应的十六进制表示为 0x802,修改后保存NineRays.Web.UI.WebControls.FlyTreeView.il。
  
  接下来就是使用汇编工具ILASM编译破解后的代码了。
  
  在编译之前,我们对也对控件来个数字签名。(强名称不是必需的,也可以不做,但如果不想做的话请将myilasm.bat中的/key:treekey.snk指令删除)
  
  要进行数字签名,首先要使用SN.EXE产生签名密钥。在资源管理器中右击工作目录“FlyTreeView破解”的文件夹图标后在弹出菜单中选择“进入命令行”,然后再DOS窗口键入 sn -k treekey.snk 回车。一个新的“随机密钥对”便存储到了工作目录下的treekey.snk文件中。
  
  接下来便进入实际编译过程了。关闭DOS窗口和Reflector等软件,回到资源管理器,删除工作目录中的NineRays.Web.UI.WebControls.FlyTreeView.dll,然后双击工作目录中的批处理文件myilasm.bat,等编译工作结束,就可以看到一个新的NineRays.Web.UI.WebControls.FlyTreeView.dll出现在工作目录中。
  
  至此,如果之前的工作没有失误的话,FlyTreeView控件的破解工作就结束了。
  
  四、破解后的测试
  
  启动 Visual Studio .NET 2003,打开FlyTreeView示例站点Samples目录中的示例项目Samples.csproj,在解决方案资源管理器中将项目对NineRays.Web.UI.WebControls.FlyTreeView的引用删除,将对破解后的NineRays.Web.UI.WebControls.FlyTreeView的引用添加进来,并顺便将其添加到工具箱中。
  
  重新生成Samples项目后将系统日期向后调整数年,在浏览器中浏览示例站点,你会发现不再抛出异常。
  
  为最后确认破解是否成功,换另外一台机器使用ip地址或域名方式访问该示例站点,一切正常。
相关新闻
相关评论
 
评论表单加载中...
 
Asp.Net文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号