首页 程序笔记 Windows 7 驱动HCK测试和签名流程

Windows 7 驱动HCK测试和签名流程

前言

现在数字签名证书的交叉根证书都到期了,微软没有给新证书签发内核交叉证书,导致无法直接用新购买的数字签名证书做内核驱动的签名。现在驱动程序都是用普通签名+微软WHQL徽标认证,在Windows10中是直接用普通数字签名,然后通过HLK测试之后,上传到微软签名即可,而在Windows7中,类似的需要用HCK的方式提交认证,而且要先认证,再附加自己的签名。

HCK认证测试的流程

Step1:安装测试环境

在测试服务机上安装HCK的Controller和Studio。

测试服务器的要求:
英文版的Windows Server 2012或Windows Server 2008 R2 x64 sp1或更高版本,并且不能配置为域控服务器。
我使用的是Windows Server 2008 R2 x64 sp1英文版。

下载HCK安装包:https://go.microsoft.com/fwlink/p/?LinkID=317577
下载后拷贝到测试服务器上进行安装。

Step 2: 在测试机器上安装客户端

在测试驱动的机器上,打开系统的资源管理器,输入“\\测试服务器的IP地址\HCKInstall\Client”访问服务器上提供的安装程序,双击setup.exe执行安装,如下图:

安装过程中,在如下界面时,选择“Yes I will allow a port to be opened.”

Step3:新建一个machine pool(机器池)

机器池是一台或多台测试计算机的逻辑分组。在每台测试计算机上安装Windows HCK客户端后,这些计算机会自动添加到默认计算机池中。在使用测试计算机之前,需要将其移动到工作计算机池中。
每个项目都需要一个机器池。一个机器池可以用于多个项目。一个项目可以引用多个计算机池。

Studio配置机器池如下图所示:

Windows HCK Studio中点击上方的Configuration

在“Machine pool”的Root节点上点击右键,然后选择“Create Machine Pool”

然后将“default”Machine Pool中的需要用于测试的Client拖到新建的Machine Pool中。

Step4:新建测试工程

设置好测试服务器和客户机之后,就可以开始测试了。第一步是创建一个项目。项目定义了您想要测试的内容。最常见的项目是您想要提交认证的设备。在本例中,您创建一个项目,运行与该设备相关的所有认证测试,最后创建一个包含所有通过测试结果的包。
借助新的HCK测试概念特性,您可以创建代表各种场景的项目。此外,您可以创建几个较小的项目,并将结果合并到一个包中。
下图显示了“Studio项目”选项卡。

Step5:选择要认证的目标

Windows HCK Studio检测设备实现的所有功能。特定的可测试设备称为目标。一个设备可以包含多个目标,由一个或多个硬件id表示。使用选择选项卡,您可以使用以下视图筛选要测试的内容:

  • 系统:测试完整的客户端或服务器计算机。
  • 设备和打印机。测试连接到测试计算机的外部设备。该设备通常出现在测试计算机上的开始设备和打印机中。
  • 设备管理器。测试测试计算机或外部设备的组件,例如网卡。这是最详细的视图。
  • 软件设备。测试安装在测试计算机上的过滤器驱动程序、防火墙和防病毒软件。

注意 一些软件驱动程序与物理设备相关联。如果在“软件设备”下找不到您的驱动程序,请使用设备管理器上的搜索栏来查找与您的软件驱动程序相关联的设备。
下图显示了“Studio”选项卡的配置:

Step 6: 选择并运行测试

测试选项卡显示与您的设备上找到的功能相关的所有测试。您可以通过以下方式对测试结果进行筛选和排序:

  • Level (Basic, Functional, Reliability, Certification, Experiences, Optional)
  • Status
  • Test Name
  • Type (manual, non-distributed, special configuration, multiple machine)
  • Length
  • Target
  • Machine(s)
    因为手动测试会中断测试过程以等待用户输入,所以建议将它们与自动化测试分开运行。一些自动化测试需要额外的参数才能运行。
    下图显示了“Studio Tests”选项卡。

    选择需要运行的测试项,单击“Run Selected”即可运行测试,这里需要运行所有测试后续才能做微软的认证签名。

Step7:查看测试结果和日志文件

“Results”选项卡显示每个测试的详细信息。每个测试完成后,“状态”列会更新结果——通过或失败,如下图所示:

排除失败测试的故障

如果测试失败,您可以展开测试详细信息以查看相关的日志文件。

  1. 从列表中选择一个失败的测试,用红色x表示。
  2. 展开“测试名称”节点,展开“日志”节点,然后双击日志文件。 您可以查看这些日志文件:
  • .log file. Text dump.
  • .wtl file. Open to view error reports.
  • .xml file. Change file name extension to .wtl to view error reports.
    右键单击“ any test”以查看其他测试详细信息,包括:
  • Task logs.
  • Additional files.
  • Applied filters.
  • Errors.
  • Infrastructure (gather and execution logs).

Step8:创建一个submission package

在设备通过所有必要的测试之后,您可以创建一个submission package(.hckx文件)进行提交。 Windows HCK Studio支持包创建,所以你不需要使用单独的提交工具。它支持添加完成认证所需的资源文件(驱动程序、符号、勘误表)。您也可以合并多个包(.hckx文件)合并到一个包中。 下图显示了“Studio Package”选项卡。

  1. 选择“Package”选项卡。
  2. 如果您为设备使用了特殊驱动程序(可选),请通过以下方式提交:
  • 单击添“Add Driver Folder Browse”以选择文件夹,然后单击“OK”。
  • 在“Driver Properties”对话框中,选择适当的产品和区域设置,然后单击确定。
  1. 要添加符号(可选),右键单击驱动程序文件夹,单击“Add Symbols Browse”以选择文件夹,然后单击确定。
  2. 要添加补充文件夹(可选),如自述文件、应急消息、勘误表或手动过滤器,请单击添加“Add Supplemental Folder Browse”以选择文件夹,然后单击确定。
  3. 单击“Create Package”。 从签名选项对话框中,选择以下选项之一:

重要: 所有提交的文件都必须经过数字签名。

  • 不要签名以创建未签名的包,例如,发送给支持人员进行调试,或者稍后与其他包合并成单个提交包。
  • 使用证书存储创建数字签名包,这是最常见的情况。此选项要求在运行Windows HCK工 Studio的计算机上安装X509证书,例如VeriSign证书。从“Windows安全性”对话框中,选择适当的代码签名证书。
  • 通过使用可移植安全文件,使用证书文件创建数字签名包。此选项要求您提供X509证书文件(.cer文件)。
1

站心网

前言 现在数字签名证书的交叉根证书都到期了,微软没有给新证书签发内核交叉证书,导致无法直接用新购买的..

为您推荐

一文搞懂SaaS架构建设流程:业务战略设计、架构蓝图设计、领域系统架构设计、架构治理与实施

大家好,我是汤师爷~SaaS架构建设是一项复杂的系统工程,不仅需要技术层面的实现,更要从业务战略、架构设计、治理与实施等多个维度进行全面规划。一个成功的SaaS架构可以帮助企业降低IT成本、提升业务灵活性、加快..

如何设计功能测试用例

最近招聘面试测试工程师,发现很多测试工程师都是半路出家,对一些基本的测试概念,思路与技术没有认知。在设计测试用例的时候只是基于直觉与经验去测试。这就导致测试用例的设计既不全面,也不科学。一般功能测试指..

DISC测试,让你轻松读懂领导

我们常说“性格决定命运”,企业家的性格决定着企业的命运,而身处企业中的我们,如何和不同性格的老板相处,则直接关系到我们的职场命运。企业家作为掌舵者,他的行为自然决定了整条大船如何行进。行为来自于习惯,..

针对 Go 语言开发的 SQL 驱动模拟库

数据库交互是几乎所有应用程序不可或缺的一部分,开发者们常常需要对数据库进行各种操作,包括插入、更新、删除和查询等。然而,在开发过程中直接对真实数据库进行操作不仅耗时耗力,还可能带来数据一致性和安全性的..

WinToUSB | 把Windows塞进U盘里即插即用

不论是在外出差,还是在家临时办公,现在很多设备携带起来都不是那么方便,在这种情况下,有一个轻巧而高效的操作系统环境就显得格外关键。今天,要给大家介绍一款超级实用的便携式系统启动盘,凭借其独特功能和卓越..

.NET调试Windows服务的方法

很多朋友编写Windows服务的时候都会觉得调试很麻烦,甚至不知道怎么调试。有些人可能添加个windows窗体用按键触发相关方法或者靠打印日志调试,那么到底windows服务怎么调试呢? 怎么编写代码就不说了。就说调试吧,..

ASP.NET Core主机和应用启动流程

主机主要负责Web应用程序的启动和生存期的管理,配置服务器和请求处理管道。主机配置日志,依赖关系的注入。主机实际上是一个封装了应用资源的对象。创建主机生成器>配置主机>创建主机>运行主机Host有两种,通用主机..

程序员开发人员常用工具和网站

给大家分享一些程序员开发人员常用工具和网站,我相信这里总有一款工具适合你。排名不分先后~Visual Studio CodeVisual Studio Code官网地址:https://code.visualstudio.com/Visual Studio Code重新定义和优化了代..

类似sms-activate的国外手机验证码接码平台

很多网站需要通过手机验证码才能注册成功,例如最近大火的ChatGPT的官网OpenAI只能使用国外手机号注册。这里推荐几个可以接收国外手机验证码的平台。sms-activatehttps://sms-activate.org/cn站点推荐:ChatGPT手机..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

免费申请SSL证书的网站教程推荐

现在有很多平台可以申请的免费SSL证书让你的网站提供https服务。一些云服务器平台可能也会有一些免费SSL证书的服务。免费SSL证书安全吗?免费SSL证书可以使用,并且在许多情况下是足够安全的。免费SSL证书可以通过Le..

react使用echart图文教程

可以参考ECharts官网的文档:https://echarts.apache.org/handbook/zh/basics/import在React中使用ECharts可以通过以下步骤:安装ECharts库使用npm或者yarn安装ECharts库:npm install echarts --save引入ECharts库..

量化炒股的原理是什么?量化交易策略有哪些?

量化炒股是一种利用计算机程序和数学模型来进行投资决策的方法。它的原理是通过分析历史市场数据、价格走势、技术指标等多种因素,构建数学模型,用以预测未来股市走势和行情。这些模型能够自动执行交易,以实现更高..

头条搜索站长工具网站提交

头条搜索站长平台官网地址:https://zhanzhang.toutiao.com/头条站长是一款提供网站分析和优化建议的工具,可以帮助站长了解其网站的流量情况、用户行为、页面质量等信息,以便对网站进行优化和改进。它的功能和百度..

类似ChatGPT的AI产品有哪些?

在自然语言处理领域,有一些可以替代ChatGPT的工具和框架,以下是一些比较流行的:Transformer-XL:Transformer-XL是由CMU和Google共同开发的自然语言处理模型,具有较好的上下文理解能力和处理长文本的能力。该模型..

echars k线图tooltip formatter没有执行

使用echars生成k线图时,参考官网的示例发现无法修改tooltip的内容,经过研究发现官网示例代码是不正确的。以名为[K 线图刷选]的K线图为例,因为它的示例里有tooltip formatter的实现代码,但是实际上是没有执行的。..

OpenAI发布GPT-4 附注册方法

OpenAI GPT-4官网https://openai.com/research/gpt-4GPT-4官方公告OpenAI团队创建了GPT-4,这是OpenAI在扩大深度学习方面的最新里程碑。GPT-4是一个大型多模态模型(接受图像和文本输入,发出文本输出),虽然在许多..

网站域名年龄对SEO的影响

网站域名年龄对SEO的影响网站域名的年龄可以对搜索引擎优化(SEO)产生影响。一般来说,具有较长历史的域名更容易被搜索引擎认为是可信赖的和有价值的网站。这是因为一个域名在互联网上存在的时间越长,它就越有可能..

AI文本工具网站有哪些?

AI 文本工具是一类利用人工智能技术实现自然语言处理的在线工具。以下是一些常见的 AI 文本工具站,以及它们的简单介绍和官方网址:OpenAI GPT-3 PlaygroundOpenAI GPT-3 Playground 是由 OpenAI 推出的一个在线 AI ..

Quartz.NET-面向.NET的开源作业调度系统

什么是Quartz.NETQuartz.NET是一个流行的开源作业调度框架,可以用于在.NET应用程序中进行作业调度。它是Quartz调度器的.NET实现,提供了高度可定制化的作业调度功能,支持复杂的作业调度需求。Quartz.NET可以让您创..

发表回复

返回顶部