Tag: strongname

如何强烈命名非托管C ++ Dll?

我正在使用一个C#应用程序,该应用程序使用EasyHook库进行DLL注入。 EasyHook要求使用它的任何应用程序都有很强的名称。 为了强烈命名应用程序,我需要确保我使用的所有库都具有强名称。 这对我的所有托管库都很容易,但我还有一个非托管的c ++库,我需要强烈命名。 经过一些搜索,我似乎无法找到一种方法来签署我的非托管DLL,即使使用源代码。 可以这样做,如果是这样,我还需要做什么? 感谢您的任何建议或帮助!

无法将程序集安装到缓存中?

我试图在Visual Studio 2010命令提示符上向缓存添加程序集。 我收到此错误“将程序集添加到缓存失败:尝试安装没有强名称的程序集”。 我从名为ListTasks2的WCF服务应用程序添加ListTasks2.dll程序集。 我从来没有遇到类似名称的项目,所以为什么现在提出一个问题呢? 注意:我尝试在Visual Studio中签名它仍然无法正常工作。 我想知道这可能是一个许可问题。 我使用了不同的用户凭据,并且能够添加程序集。 问题是我加载了VS解决方案,该项目签署了程序集。 我应该创建一个密钥对吗?

正确的方式来签署.net核心组件

我正在尝试签署一个.net核心库,我只是不确定我是否做得正确 1)使用VS Command Promp我叫sn -k mykey.snk 2)将mykey.snk复制到myproject文件夹 3)在project.json添加了密钥文件 “frameworks”: { “netstandard1.6”: {} }, “buildOptions”: { “outputName”: “MyLib”, “keyFile”: “mykey.snk” } 这是正确的,库(dll)是否可以在.net核心和完整.net 4.6应用程序上使用?

我怎么能看到我的集会的强名?

我有一个项目,我为它创建了一个强名称密钥文件。 我怎么知道我的集会的强名是什么? 这似乎应该是显而易见的,但我找不到任何参考。

什么是.NET中的“强名”?

可能重复: 什么是强命名,我如何强名二进制? 实际上,昨天我参加了一次采访。 他们在那里问了一个关于强名的问题。 我无法猜出它是什么? 请解释一下。 谢谢。

没有强命名的代码签名是否会让您的应用程序被滥用?

试图了解authenticode代码签名和强命名。 我是否正确地认为,如果我对引用一些dll(不是强名称)的exe进行代码签名,恶意用户可以替换我的DLL并以看起来好像是由我签名但正在运行的方式分发应用程序他们的代码? 假设这是真的,看起来你真的不想签署一个.NET应用程序而没有强烈命名整个事情,否则你给人们在你编写的应用程序的幌子下执行代码的能力? 我不确定的原因是我在网上发现的所有文章(包括关于使用SN + Authenticode的MSDN文档)似乎都没有提到这一点,这似乎是一个相当重要的理解点(如果我理解正确) ?

snk与代码签名证书

在我的组织中,我们使用具有强名称程序集的snk文件。 我们自己生成snk。 此外,我们在二进制文件上使用代码签名签名。 我们从Verisign获得了pfx。 这两个过程有什么区别? 是不是从Verisign也没有收到snk的问题?

检查程序集是否有强名称

是否可以检查动态加载的程序集是否已使用特定的强名称进行签名? 比较AssemblyName.GetPublicKey()方法返回的值是否足够/安全? Assembly loaded = Assembly.LoadFile(path); byte[] evidenceKey = loaded.GetName().GetPublicKey(); if (evidenceKey != null) { byte[] internalKey = Assembly.GetExecutingAssembly().GetName().GetPublicKey(); if (evidenceKey.SequenceEqual(internalKey)) { return extension; } } 这不能被欺骗吗? 我不确定SetPublicKey()方法是否对构建的程序集有任何影响,但即使是MSDN文档也显示了如何在动态生成的程序集(reflection发射)上使用它,这意味着你可以从中提取公钥。托管应用程序并将其注入您自己的程序集并运行恶意代码,如果以上是安全防范,或者我错过了什么? 有更正确和安全的方法吗? 我知道如果相反的情况是这种情况,也就是说,我想要保护程序集只被签名主机调用,那么我可以使用StrongNameIdentityPermission属性标记程序集。