Visual Studio 里面的 Help Viewer 提示Error: “.cab未经Microsoft签名” 问题解决
文章目录
- 一、问题描述
- 二、准备工作
- 1、.NET Reflector 下载
- 2、Reflexil插件下载
- 3、.NET Reflector 添加 Reflexi 插件
- 三、开始破解
- 四、测试
- 五、总结
一、问题描述
最近在学习 C#,准备装MSDN 文档,接着在安装文档时,提示下面错误:
经过查资料分析后得知:
Help Viewer 提示 “.cab 未经 Microsoft 签名” 错误,主要是因为证书验证未通过,可通过反编译修改相关 DLL文件来绕过签名验证
即就是证书验证部通过,需要安装相关软件,去反编译dll文件,然后绕过验证。接着往下。
二、准备工作
1、.NET Reflector 下载
可以网上找一下,我这里提供一个地址 :https://www.red-gate.com/products/reflector/
下载后并安装,安装成功图如下:
2、Reflexil插件下载
https://github.com/sailro/Reflexil/releases
3、.NET Reflector 添加 Reflexi 插件
即将 上面下载的 Reflexil 插件解压到任意目录,然后导入第一步的 .NET Reflector 软件中
点击后,依次按照步骤,将 .dll 文件添加到软件
查看到有插件标识,则代表插件安装成功
软件准备好了,那接下来就是 破解 Microsoft.VisualStudio.Help.dll文件
三、开始破解
点击 .NET Reflector 的 file 加载 Microsoft.VisualStudio.Help.dll 文件
正常情况 Microsoft.VisualStudio.Help.dll 文件 是在 C:\Program Files (x86)\Microsoft Help Viewer 目录下
查看 文件,导入成功
搜素指定的方法 :VerifyMicrosoftChain
点击 VerifyMicrosoftChain 方法,右侧下部的窗口滑到最后
需要将【ldc.i4.1】修改为【ldc.i4.0】或者将前2行代码修改为2个【nop】
我直接将前两个改成 nop ,直接在上面右击即可
改成这样的:
点击保存 .dll 文件
找个文件夹保存下:
我是直接保存到 Microsoft.VisualStudio.Help.dll 所在的文件夹,直接覆盖掉。
如果怕出问题,可以先备份原来的文件,在去覆盖。
四、测试
完成上面的文件替换后,直接就可以重新安装测试了
直接更新完成,也不报错了,完美解决哦
成功查询到函数说明
五、总结
整个问题围绕 .cab未经Microsoft签名 展开。其实 就是 利用 .NET Reflector 软件和 Reflexil 去 破解 Microsoft.VisualStudio.Help.dll 文件的里面的 VerifyMicrosoftChain 函数,修改IL 代码以绕过签名验证错误。然后重新生成新文件去替换老的。