自制的 .net framework 强命名工具(支持.net4)

我们知道,以前在Windows下开发程序时常会遭遇著名的“DLL Hell”问题,即动态链接库的向后兼容问题。微软在.Net产生前曾尝试使用COM组件的方式来解决DLL Hell问题,即使用Guid来唯一的标识每一个COM组件。但是,实际上使用COM组件(包括版本升级)也是一件颇为麻烦的事:为了运行COM组件就必须在组册表中对其进行注册,重新编译有可能破坏Guid从而导致原来引用此COM组件的程序不能正确运行,等等。

在.Net中,微软引入了一种新的解决方案:强命名程序集(Strong Name),以及与之配套的全局程序集缓存(GAC)来解决这个问题。

强名称主要用处:就是防止dll被随意引用,另外控制版本,标识唯一性。

我们要破解或者汉化别人的东西
就要破解强命名或者 强行去掉强命名

否则会出现这样问题:

 

https://p-blog.csdn.net/images/p_blog_csdn_net/luozhuang/EntryImages/20091011/faile.jpg
思路有两个

一个是直接去掉强命名


按常规简单地把强命去掉,还是不够完美
所以

第二个方案是替换强命名


问题是我找遍网络都没有找到那个SNR.exe
只好自己写了
这个强命名工具:

可以生成新PNK文件(相当于 -K)
替换程序集的强命名
除去强命名(调用SNRemove.exe,但是会有其他问题)
重新签名(相当于 -R)

建议 生成新PNK文件-〉替换程序的强命名
其他功能只是随便玩玩。。。。

所有的操作都不需要ildasm 反汇编
GUI 简单易用。。。。

程序使用组件 Sn.exe(位于 .net framework sdk目录下bin中)

snremove.exe

压缩包已经 附带 .net framework sdk 3.5的SN.exe 和snremove1.0

直接运行strongnamereplaceGUI.exe即可

 

运行必需软件

Windows Server 2003和Windows XP :
Microsoft .NET Framework 2.0 可再发行组件包 或者更高版本。

 

注意: .net framework sdk 3.5的SN.exe (压缩包带的)需要

Visual C++ 2008 Redistributable Package (visual c++2008 运行库) 

(主要是MSVCR90.dll)



如果你使用的是 .net framework sdk 2.0的SN.exe  

需要

Visual C++ 2005 Redistributable Package (visual c++2005 运行库) 

(主要是MSVCR80.dll)

 

这几个组件 可以去baidu 之类地方找下载

 

下载.net framework 强命名工具4.0 兼容版:

必需软件:
Microsoft .NET Framework 4.0 可再发行组件包 或者更高版本。
Microsoft Visual C++ 2010 Redistributable Package


http://down.51cto.com/data/400497

 

https://p-blog.csdn.net/images/p_blog_csdn_net/luozhuang/EntryImages/20091011/snr.jpg

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值