Sto*_*orm 27 instrumentation strongname profiling visual-studio-2010
我有一个使用AjaxControlToolkit.dll和Log4Net.dll的网站.
当我尝试在VS 2010上运行性能分析工具时,它会给我以下警告:
AjaxControlToolkit.dll已签名并且检测它将使其签名无效.如果您在没有仪器后事件的情况下继续重新签名二进制文件,则可能无法正确加载.
现在,如果我选择继续而不重新签名,则分析将开始,但程序集不会加载并提供ASP.NET异常.
Chr*_*ich 21
如果您在开发计算机上执行此操作,则可以完全禁用强名称验证sn -Vr *
.如果你这样做,你不必辞职.这种方法可能存在安全风险,但如果您对此感到满意,则比辞职更容易.
具体来说,从MSDN,它说:
注册程序集以进行验证跳过.(可选)您可以指定以逗号分隔的用户名列表.如果指定infile,则验证仍处于启用状态,但infile中的公钥用于验证操作.可以使用*,strongname形式指定程序集以注册具有指定强名称的所有程序集.应将Strongname指定为表示公钥的标记化形式的十六进制数字字符串.请参阅-t和-T选项以显示公钥标记.
而安全风险:
警告:仅在开发期间使用此选项.将程序集添加到跳过验证列表会产生安全漏洞.恶意程序集可以使用添加到跳过验证列表的程序集的完全指定的程序集名称(程序集名称,版本,区域性和公钥标记)来伪造其标识.这将允许恶意程序集也跳过验证.
Vin*_*nce 17
ghusse链接到博客文章给出答案.答案在那里描述.正如他指出的那样,你必须在每个签名的程序集上使用一个post-instrument事件.
sn.exe
直接打电话最简单:
"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -R [pathOfDll] [pathOfSNK]
Run Code Online (Sandbox Code Playgroud)
请注意,[pathOfDll]
它位于与项目关联的目录obj\Debug中.
答案在这里描述.您必须在每个已签名的程序集上使用post-instrument事件.
我无法通过安装VS 2010来使其"按原样"工作.我必须将此命令行称为每个dll上的构建后事件:
"C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" & sn -Ra [pathOfDll] [pathOfSNK]
Run Code Online (Sandbox Code Playgroud)
请注意,[pathOfDll]位于与项目关联的obj\Debug目录中.
在尚未重新签名的已签名二进制文件上执行检测工作的最简单方法是完全禁用签名检查。这是机器范围的设置,您可以通过注册该*
模式的异常来激活它:
sn.exe -Vr *
Run Code Online (Sandbox Code Playgroud)
必须从提升权限的命令提示符下执行此命令。您会sn.exe
在SDK中找到(就我而言,我在中找到了它C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
)。
完成测试后,应该注销该异常:
sn.exe -Vu *
Run Code Online (Sandbox Code Playgroud)
否则您的计算机可能容易受到恶意代码的攻击,因为即使程序集被篡改,程序集也会受到信任。
另请参阅Access拒绝在Windows 7上运行sn.exe。
归档时间: |
|
查看次数: |
9118 次 |
最近记录: |