问题标签 [sn.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7735 浏览

.net - sn.exe 失败并显示拒绝访问错误消息

当我使用强名称工具创建新密钥以对 .NET 程序集进行签名时,我收到拒绝访问错误消息。这在 Windows XP 机器上运行良好,但在我的 Vista 机器上不起作用。

是什么导致了这个问题,我该如何解决?


您是否以管理员身份运行 PowerShell 或命令提示符?在您习惯用户访问控制或关闭用户访问控制之前,我发现这是第一个查看的地方。

是的,我尝试以管理员身份运行 PS 和常规命令提示符。出现相同的错误消息。

0 投票
1 回答
889 浏览

.net - sn.exe 可以利用 Windows 证书存储吗?

对于在 .NET 中使用 sn.exe 对程序集进行签名,是否可以指定一个公钥,其私钥仅包含在 Windows CryptoAPI 密钥库中?

我看到了用于指定 CSP 名称和容器名称的选项。

是否有用于访问 Windows 证书的值?(即那些可从 Windows EFS、Outlook、Internet Explorer 等访问的)

谢谢你。

评论:具体来说,我之所以这样问,是因为有一些密钥没有将私钥标记为可导出,因此我无法导出 .pfx 并遵循该路线。

0 投票
8 回答
83072 浏览

c# - 找不到 sn.exe 来签署程序集

我看了看C:\Program Files\Microsoft.NET,我看不到任何SN.exe文件。

我安装了 .NET 3.5 运行时;这还不够吗?

0 投票
1 回答
198 浏览

.net - 无法获取 4.0 beta 2 程序集的完整公钥

我在获取某些 .net 4.0 beta 2 程序集的公钥时遇到问题,因此我可以让他们看到我的内部结构(粗略)。

通常情况下,我只需进入 SN.EXE,然后我就会拥有它们。

但是,我没有得到我通常期望的东西,而是得到了一个伪造的公钥,我不确定为什么。

我使用的是 64 位版本的 SN

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64>sn.exe

我正在针对我所针对的 64 位版本的 dll 使用它:

C:\Windows\Microsoft.NET\Framework64\v4.0.21006\system.xaml.dll

我得到这个作为我的输出:

公钥是 00000000000000000400000000000000

公钥令牌是 b77a5c561934e089

令牌是正确的,但公钥是 BS。这里发生了什么??

0 投票
1 回答
176 浏览

c# - c#工具sn.exe:带userlist参数,不带userlist参数

sn.exe -Vr 使用 userlist 参数和不使用 userlist 参数有什么区别?

0 投票
1 回答
94 浏览

.net - AL.exe 是否适用于 X.509 证书

我想延迟签名,然后用 X.509 证书对 .NET 程序集进行完全签名。

我该怎么做?

0 投票
1 回答
1546 浏览

.net - Snk 文件和延迟签名

我正在使用一组延迟签名的程序集,我可以在跳过验证后从 GAC 安装和加载这些程序集(sn -Vr * ...

由于延迟签名作为一个过程只需要公钥文件

  1. sn -k keys.snk(公钥和私钥)
  2. sn -p keys.snk pkey.snk(仅公钥)
  3. 将 pkey.snk 添加到项目属性并选中“仅延迟签名”
  4. sn -v(显示组件是延迟签名的)
  5. sn -e (提取 pkey)
  6. fc(未找到差异)

我发现SNK 文件的前 160 个字节是 PKey ...,其余 436 个字节代表私钥。

虽然出于开发目的 sn-Vr 或 sn -R keys.snk (新的公钥/私钥对替换延迟签名的一个)就足够了,但我很想知道是否从程序集中提取公钥并将其配对用你自己的私钥就可以了……

这可能是一个潜在的安全漏洞(因为使用公钥令牌查找程序集)......难怪.Net框架/ SDK中没有内置工具允许这样做。

是否有记录整个 SNK 文件结构(文件格式)的地方?一般来说,这种方法可以奏效吗?你怎么看?

0 投票
2 回答
5914 浏览

c# - 如何在 .NET 中导入使用 sn.exe 生成的 .snk 文件?

我用这个命令创建了一个密钥文件:

我想用 .NET 读入这个密钥。我找不到任何关于.snk格式的文档,所以我想知道C#中是否有办法读取.snk文件?

我提出这个问题的最初原因是将 .snk 文件用于签署程序集以外的目的。正如下面的答案之一,.snk 文件的目的实际上只是用于签署程序集。

0 投票
7 回答
8567 浏览

c# - 在 Sn.exe 中自动输入密码

我需要创建构建后事件来执行以下操作:

当 Visual Studio 执行第一条语句时,它需要密码并等待用户指定密码并失败。

Microsoft (R) .NET Framework 强名称实用程序版本 2.0.50727.42 版权所有 (c) Microsoft Corporation。版权所有。

Enter the password for the PKCS#12 key file: Failed to parse the PKCS#12 blob in mykey.pfx -- 句柄无效。

我尝试使用 sn 命令行参数指定密码,但我看不到这样做的方法。

请帮忙。

问候,希尔米。

0 投票
1 回答
5888 浏览

.net - Import-Module 上的强名称验证失败

我无法导入程序集,据说是因为强名称验证失败,尽管即使我将程序集注册为不被检查也会发生这种情况。有人能发现我在这里做错了吗?

以下是成绩单。作为参考,sn.exe 的开关是:

  • -v:验证签名。
  • -Vr:注册程序集以跳过验证。

    PS C:\temp> .\sn.exe -v .\my.dll

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    程序集 '.\my.dll' 有效

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module:无法加载文件或程序集'my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : NotSpecified: (:) [Import-Module], FileLoadException
      • FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell .Commands.ImportModuleCommand

    PS C:\temp\Cmdlets> .\sn.exe -Vr *

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    为程序集 ' , '添加了验证条目

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module:无法加载文件或程序集'my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : NotSpecified: (:) [Import-Module], FileLoadException
      • FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell .Commands.ImportModuleCommand

我应该提一下,我已经通过 Reflector 验证了所有必需的依赖程序集都存在于同一目录中。