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

news/2024/11/7 21:02:42/

我们知道,以前在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 强命名工具

http://www.91files.com/?DT7T28TA1FELWJDWDZM5

http://rapidshare.com/files/291469235/snr.rar

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

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


http://www.jandown.com/link.php?ref=jufAf3SPSS
http://www.aishare.net/link.php?ref=in5TkyztHD

http://www.easy-share.com/1912983314

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


http://www.ppmy.cn/news/345481.html

相关文章

ref

在C的算法和函数之间,以类对象作为参数的情况很非常常见的问题,一般情况下传值语义是可行的,但也有很多特殊情况,作为参数的函数对象拷贝代价过高(具有复杂的内部状态),或者不希望拷贝对象(内部状态不应该被改变)&…

华为OD机试 JavaScript 实现【密码强度等级】【牛客练习题】,附详细解题思路

一、题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 1、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 2、字母: 0 分: 没有字母 10 分: 密码里的字母全都是小(…

浅析Struts2中的OGNL和ValueStack

要了解Struts2与OGNL表达式的关系,我们必须先搞清楚以下三个概念: 1、 ActionContext它是Action运行的上下文环境,Action的多项设置都存放在次,我们每一次Action调用都会创建一个ActionContext。通常情况下我们可以通过静态方法getContext(…

C#制作KTV点歌系统

这是一个KTV点歌系统,分为前台与后台,在后台是对操作人员、歌曲分类、歌曲上传等;前台就是一个KTV点歌功能的实现。 前台界面: 部分代码: //数字点歌private void bntNumber_Click(object sender, EventArgs e){Numbe…

ktv点歌系统服务器的安装,最详细的KTV点歌系统安装教程

对于喜欢唱歌的朋友来说,如果能在家安装一个KTV点歌台,那就可以在家天天唱歌了。可以享受自在的点歌唱歌真的非常棒,今天小编就给大家详细的介绍一下如何在家也安装一个KTV点歌系统。 最详细的KTV点歌系统安装教程图一 我们要安装的这个软件叫…

基于JAVA的KTV点歌系统,管理系统。

开发环境,语言,工具 本系统的采用的开发语言是JAVA,主要使用到的框架是Swing框架,数据库使用的是Mysql5.7.开发工具使用的是Eclipse 主要功能与身份 身份:管理员,客户 客户主要功能:选择对应…

KTV点歌系统数据库设计文档

KTV点歌系统数据库设计文档 前台e-r图 后台 E-R 3.数据库字典 SwanInfo(歌星表) 中文名 英文名 数据类型 大小 约束 备注 歌星编号 SwanID varchar 20 主键, 歌星序列号 歌星姓名 SwanName varchar 50 必填 歌星性别 Sw…

点滴小组KTV点歌系统简介

‍‍ 20级青鸟四班 点滴小组 指导老师:穆老师 班主任:佟老师 小组成员: 组长:路鑫 副组长:戴洁 王硕 组员:马蓥芳 组员:徐圣乾 组员:徐圣坤 组员:赵昌杰 制作周期&…