nik*_*eee 7 .net security cil ngen .net-assembly
我刚刚浏览了我们的德语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有很多不同的更新,这似乎是不可能的.
任何解决方案或建议?Microsoft是否以某种方式处理此问题?
如果攻击者拥有对您计算机的管理员访问权限(这是您所描述的攻击所必需的),那么您几乎已经丢失了.你可以做的任何事都可以被攻击者规避.
因此,我认为试图抵御这种类型的攻击是完全没有意义的.如果你必须处理不受信任的,可能受到攻击的计算机,那么你根本不能相信它们做任何敏感的事情,你必须在你自己的服务器上做这件事,或类似的事情.
归档时间: |
|
查看次数: |
426 次 |
最近记录: |