科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件FlyTreeView for ASP.NET 3.2 破解攻略(2)

FlyTreeView for ASP.NET 3.2 破解攻略(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

根据以往破解经验及之前破解FlyTreeView for ASP.NET 3.1 的经历,Web控件的试用限制通常是在 New,Render,Init等位置实现。

作者:中国IT实验室 来源:中国IT实验室 2007年9月2日

关键字: 破解攻略 ASP.NET FlyTreeView

  • 评论
  • 分享微博
  • 分享邮件
根据以往破解经验及之前破解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地址或域名方式访问该示例站点,一切正常。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章