`

如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)

    博客分类:
  • C#
阅读更多

有时候你会需要一个DLL是强命名的,比如你想把这个文件放到GAC里面。如果这是一个第三方的DLL,你没有源代码,这会是一件比较麻烦的事情。有一个方法可以解决这个问题。

在VS.NET的命名行窗口下,输入如下的代码。

1 ,生成一个KeyFile

sn -k keyPair.snk

2, 得到程序集的MSIL

ildasm SomeAssembly.dll /out:SomeAssembly.il

3 ,为了避免冲突,把原来的DLL文件改名

ren SomeAssembly.dll SomeAssembly.dll.orig

4 , 使用导出的MSIL和刚创建的KeyFile生成一个新的的DLL文件。

ilasm SomeAssembly.il /dll /key= keyPair.snk

Where do these tools live

这些工具都在哪里?

  • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
  • C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe
  • C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe
分享到:
评论

相关推荐

    .net dll 反编译工具

    Strong.Name.Helper是另一个有用的.NET工具,主要用于处理强命名(Strong Naming)的问题。在.NET环境中,强命名可以确保程序集的唯一性,防止被篡改。然而,在某些情况下,例如调试或测试未签名的版本,可能需要...

    签名没有源码的DLL

    标题“签名没有源码的DLL”所指的是对那些没有源代码的DLL文件进行签名的过程,这通常是因为你只拥有编译后的二进制文件,而没有原始的源代码。这种情况可能会出现在使用第三方库或者购买的组件时。 描述中提到,当...

    给第三方dll强签名

    然而,有时我们可能无法获取到第三方DLL的源代码,这使得给这些DLL添加强名称变得颇具挑战性。本篇文章将详细解释如何在没有第三方源码的情况下,为第三方DLL添加强名称。 首先,我们需要理解强签名的过程。一个强...

    Aspose.Cells.dll18.4去水印版本,不需要额外的CS文件

    描述中提到的"ModifyInMemory.cs"通常是一个源代码文件,它可能包含用于修改已加载到内存中的Excel工作簿的代码,包括去除水印的逻辑。在这个去水印版本中,这个特定的CS文件不再必要,简化了使用流程。 关于“无...

    编辑IL文件 修改DLL文件的方法

    ILSpy是一款免费且开源的工具,它能够将DLL或EXE文件反编译为C#或VB.NET源代码,同时显示IL(Intermediate Language)代码。在这个例子中,我们使用ILDASM(Intermediate Language Disassembler),这是.NET ...

    C#395-使用强名称标识软件源代码

    在.NET框架中,强名称(Strong Name)是一个用于唯一标识程序集的重要机制,它结合了程序集的简单名称、版本信息、公钥和哈希值。强名称的主要目的是确保程序集的身份不可伪造,增强了安全性和可升级性。本教程将...

    c#打包詳細文件,很詳細的

    程序集使用强命名(Strong Name)可以提供版本控制和安全性,包括公钥和私钥的签名。 三、资源管理 资源如图片、文本文件、配置文件等可以被嵌入到程序集中或保存在外部文件。使用Resx文件可以方便地管理本地化资源...

    针对vs2005的反编译软件

    **C#中的反编译.dll文件** 对于C#程序员来说,反编译.dll文件可以帮助理解库的内部工作原理,而无需访问原始源代码。这在开源项目中尤其有用,可以研究并学习他人的代码实现。此外,当遇到.NET框架中不熟悉的API或...

    DXPerience 11.1.8 Crack

    在提供的压缩文件中,sn.exe 是.NET框架的一部分,全称为Strong Name Utility,主要用于为.NET程序集生成强名称。强名称包括公钥和数字签名,确保程序集的唯一性并防止篡改。在开发过程中,使用强名称的程序集可以...

    .net脱壳机(Dotnet Dumper)

    .NET框架在编译源代码时,会将源代码转换为IL代码,这是一种平台无关的中间表示。为了保护代码不被轻易反编译,.NET程序集通常会被加上一层壳,即Strong Name签名或使用混淆器进行混淆。脱壳机的作用就是剥离这层壳...

    Asp.Net事务和异常处理 (三)

    使用`sn.exe`工具生成的强名(Strong Name)包含公钥和私钥对,用于对Asp.Net组件(如DLL)进行数字签名。这确保了代码的完整性和可信赖性,防止恶意篡改。 1. **生成密钥对**:使用`sn -k SnEnterprise.snk`命令...

    [Csharp高级编程(第6版)]17章18章

    在.NET框架中,程序集是部署的基本单位,它由一个或多个命名空间组成,每个命名空间又可以包含类、接口等类型成员。程序集可以是库形式的.dll文件或者是可执行文件.exe。每个程序集都有一个全局唯一的标识符,称为强...

    开发人员应该了解的知识.txt

    - **PDB 文件**:符号文件,包含了源代码行号等信息,用于调试程序。 - **Code Metrics**:代码度量是一种评估代码质量的方法,如环复杂度(cyclomatic complexity)可以帮助开发者识别复杂的代码片段。 #### 七、...

    .NET文件格式-幕后签名,第2部分,共1部分

    在.NET环境中,文件签名通常是指强名称(Strong Name),它包括了程序集的唯一标识(包括名称、版本、公钥以及哈希值)。这种签名提供了对程序集的完整性和来源的验证,防止恶意修改和假冒。签名过程涉及使用公钥/...

    Borland Delphi 2005 Architect Update 3

    TFrame + TLabel + TRadioGroup = bad5.00 of 5 Closed9477 Delphi .NET assembly references with strong names5.00 of 5 Closed9254 Incorrect reference public key token included into Delphi8 strong-named ...

Global site tag (gtag.js) - Google Analytics