有时候你会需要一个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
分享到:
相关推荐
Strong.Name.Helper是另一个有用的.NET工具,主要用于处理强命名(Strong Naming)的问题。在.NET环境中,强命名可以确保程序集的唯一性,防止被篡改。然而,在某些情况下,例如调试或测试未签名的版本,可能需要...
标题“签名没有源码的DLL”所指的是对那些没有源代码的DLL文件进行签名的过程,这通常是因为你只拥有编译后的二进制文件,而没有原始的源代码。这种情况可能会出现在使用第三方库或者购买的组件时。 描述中提到,当...
然而,有时我们可能无法获取到第三方DLL的源代码,这使得给这些DLL添加强名称变得颇具挑战性。本篇文章将详细解释如何在没有第三方源码的情况下,为第三方DLL添加强名称。 首先,我们需要理解强签名的过程。一个强...
描述中提到的"ModifyInMemory.cs"通常是一个源代码文件,它可能包含用于修改已加载到内存中的Excel工作簿的代码,包括去除水印的逻辑。在这个去水印版本中,这个特定的CS文件不再必要,简化了使用流程。 关于“无...
ILSpy是一款免费且开源的工具,它能够将DLL或EXE文件反编译为C#或VB.NET源代码,同时显示IL(Intermediate Language)代码。在这个例子中,我们使用ILDASM(Intermediate Language Disassembler),这是.NET ...
在.NET框架中,强名称(Strong Name)是一个用于唯一标识程序集的重要机制,它结合了程序集的简单名称、版本信息、公钥和哈希值。强名称的主要目的是确保程序集的身份不可伪造,增强了安全性和可升级性。本教程将...
程序集使用强命名(Strong Name)可以提供版本控制和安全性,包括公钥和私钥的签名。 三、资源管理 资源如图片、文本文件、配置文件等可以被嵌入到程序集中或保存在外部文件。使用Resx文件可以方便地管理本地化资源...
**C#中的反编译.dll文件** 对于C#程序员来说,反编译.dll文件可以帮助理解库的内部工作原理,而无需访问原始源代码。这在开源项目中尤其有用,可以研究并学习他人的代码实现。此外,当遇到.NET框架中不熟悉的API或...
在提供的压缩文件中,sn.exe 是.NET框架的一部分,全称为Strong Name Utility,主要用于为.NET程序集生成强名称。强名称包括公钥和数字签名,确保程序集的唯一性并防止篡改。在开发过程中,使用强名称的程序集可以...
.NET框架在编译源代码时,会将源代码转换为IL代码,这是一种平台无关的中间表示。为了保护代码不被轻易反编译,.NET程序集通常会被加上一层壳,即Strong Name签名或使用混淆器进行混淆。脱壳机的作用就是剥离这层壳...
使用`sn.exe`工具生成的强名(Strong Name)包含公钥和私钥对,用于对Asp.Net组件(如DLL)进行数字签名。这确保了代码的完整性和可信赖性,防止恶意篡改。 1. **生成密钥对**:使用`sn -k SnEnterprise.snk`命令...
在.NET框架中,程序集是部署的基本单位,它由一个或多个命名空间组成,每个命名空间又可以包含类、接口等类型成员。程序集可以是库形式的.dll文件或者是可执行文件.exe。每个程序集都有一个全局唯一的标识符,称为强...
- **PDB 文件**:符号文件,包含了源代码行号等信息,用于调试程序。 - **Code Metrics**:代码度量是一种评估代码质量的方法,如环复杂度(cyclomatic complexity)可以帮助开发者识别复杂的代码片段。 #### 七、...
在.NET环境中,文件签名通常是指强名称(Strong Name),它包括了程序集的唯一标识(包括名称、版本、公钥以及哈希值)。这种签名提供了对程序集的完整性和来源的验证,防止恶意修改和假冒。签名过程涉及使用公钥/...
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 ...