我只是通过我们去德国VB.NET论坛并有一些有趣的事情,让我某种头痛。
它实际上是可以编辑使用ReflexIL或其他一些IL编辑器中的.NET Framework程序集。 你必须绕过唯一的事情就是组件的强名称签名。 改变装配IL之后,你必须运行sn.exe -Vr [assemblyname]
来还挺跳过强名称验证。 之后,你必须清除缓存的本机映像。 只要经过C:\Windows\assembly
目录,并删除所有的与您的组装部件图像。 然后重新启动。 当你登录,运行ngen install [assemblyname]
现在, 新的原生图像生成。
这工作。 我在虚拟环境(Windows XP x86)的验证此过程。 现在我担心的最多的东西是,你可以很容易地绕过.NET VerifyHash
或VerifyData
的方法RSACryptoServiceProvider
。 这实际上工作了。 我的一个朋友和我测试可以验证这个问题( 见截图 )。 这是相当容易的。
例如,如果我创建构建在.NET Framework加密类许可制度,它可以绕过系统范围内使用框架系统上的每个 .NET应用程序。 此外,每个人都可以登录并更改我只是挂接到方法调用functios的输入。
现在的问题是:由于这可能是一个巨大的问题,我怎么能做些什么呢? 当然,恶意用户可能只是编辑我的应用程序,但不会像这样全系统的那样糟糕。 我曾想过一些框架校验和验证,但因为有很多的.NET Framework不同的更新,这似乎是不可能的。
任何解决方案或建议吗? 微软是否照顾这个问题以某种方式?