• 自制的 .net framework 强命名工具【转】


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

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

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

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

    否则会出现这样问题:

     
    思路有两个

    一个是直接去掉强命名

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

    第二个方案是替换强命名

    问题是我找遍网络都没有找到那个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

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luozhuang/archive/2009/10/11/4654051.aspx

  • 相关阅读:
    openmediavault 5.5.23 安装插件失败的解决方案
    qt下载地址
    qt 5.12 增加 mysql驱动
    选基金标准
    关注几个基金
    调仓的几个问题
    要读的书
    ubuntu 20.04 LTS 安装webmin
    set的常见用法
    斜率优化dp([HNOI2008]玩具装箱)
  • 原文地址:https://www.cnblogs.com/CCJVL/p/1583325.html
Copyright © 2020-2023  润新知