强名称(3)强名称的脆弱性

强名称(3)强名称的脆弱性

通过前文共同体验了强名称对程序集的保护方式和原理,但是这种保护的强度到底有多大呢?能有效地防御恶意篡改者吗?先看下面的例子。

回到上篇文章的代码清单9-7,重新对StrongNameReferenceLib项目进行强名称签名,然后编译StrongName项目。在StrongName项目的bin目录里有StrongNam.exeStrongNameReferenceLib.dll两个文件,然后使用ILDasm打开StrongNameReferenceLib.dll文件,转储为il文件,这里使用记事本打开il文件,如图9-19所示。

 

 

9-19 StrongNameReferenceLib.dllIL源码

.il文件中找到三处代码:publickkeytokenpublickeyhash,把对应的内容都删除,再重新使用ILAsm编译,这时该程序集的强名称就被成功去除。

替换程序集的强名称方法基本相同。目前网络上有很多去除和替换强名称的工具,这里不再演示。

 

 ----------------------------注:本文部分内容改编自《.NET 安全揭秘》

posted @   玄魂  阅读(721)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示