首先声明,我是一个菜鸟。一下文章中涌现技术误导情况盖不负责

【作者:张佩】【工具下载:http://www.yiiyee.cn/Blog/64signer/】

  • 背景分析

微软对于自Vista开始的64位OS有新的数字签名策略,即全部内核驱动都必须是经过可信机构签发过数字证书的,否则系统拒绝加载。此策略的目的是增强系统安全防护,使得一干惯于偷偷摸摸、不知所自何来的内核模块没法在系统中容身。但它却也给端庄的内核开发人员带去了一个麻烦:开发进程中会不断生成新的驱动镜像文件,开发者不可能将每个内部版本都拿去申请数字签名,那样不仅太麻烦,而且会大大延长开发周期。

微软当然也斟酌到了这一点,它供给了一个可以制止签名检验的开机启动项。要运用此启动项,用户必须在启动电脑的时候,实时在键盘上按下F8键,在出来的启动菜单中选择倒数第二个启动项:Disable Driver Signature Enforcement.

这看上去很省心,但你如果再懂得得深刻一点,就会发明它其实很麻烦。

首先开机启动项只能手动选择,系统再次重启的时候,它会忘记上一次所选择的启动项,用户如果不再次实时按下F8按钮的话,就会错过机会,只能谋求下一次重启时的机会。如果开发者需要不断地进行重启测试的话,就必须有一个专人站在边上,作用就是实时地按下F8并在涌现的启动菜单中选择倒数第二项。这是很无聊并痛苦的事情,所以大多数开发者不肯采取这类方法。

其次就是在Win8系统上,用户在系统开机时已没有通过F8调出启动菜单的机会。这一点虽然可以避免,但进程却也复杂,这里不展开分析。

看到一扇关闭的窗户,不必急着懊丧,因为或许旁边正有一扇为你敞开的大门。微软还供给了一项称为Test Sign的技术,却正可以较好处理内核开发者的这项困扰。只不过它的实现方法比较复杂,虽然微软供给了详细的文档,但不到万不得已,开发者一般不会去详细研究其内容。从步调上来讲,这个技术分两个部分:

首先,启动Test Signing启动项属性。实现的一个简单方法是在控制台中运行如下命令:

Bcdedit /set testsiging true

此命令的意思是为以后系统启动项打开名为“TestSigning”的属性。如果再运行上面的命令,就能看到这个属性被列出:

Bcdedit /enum {current}

这个属性会在下次系统重启时生效。系统会始终记住这个属性,重启系统后也仍然有效。

第二是用一个测试证书对你的内核镜像文件(一般即.sys文件)进行签名。用户对此可能有点迷惑,稍微分析一下。原来如果认证机构为内核驱动签名的时候,会发表一个受信证书,这个证书最终会安装到用户系统中,而对镜像文件所进行的签名操纵,就是把证书信息写到文件中。系统通过验证这个证书来确认其受信与否。获得这个证书首先需要银子,其次也需要时光。但如果我自己可以给自己发表一个临时证书,又怎样呢?那当然又省心又快捷了。微软供给了这样的策略:在Test Signing模式下,测试证书能和其它商业证书一样任务无误。

那么这第二个步调其实又能细分为两个小步调:1. 创立测试证书;2.用测试证书为驱动签名。微软供给了相关工具,包含在最新的SDK或DDK中。简单来讲,用户应该应用makecert.exe创立证书,再用signtool.exe进行镜像文件签名。微软所供给的工具不止这两个,但这两个确实是最主要的。遗憾的是这些工具都只能运行在控制台中,用户界面不算友好,参数也很晦涩。这大概是为什么大多数内核开发者都不太应用这些工具的原因?

每日一道理
站在历史的海岸漫溯那一道道历史沟渠:楚大夫沉吟泽畔,九死不悔;魏武帝扬鞭东指,壮心不已;陶渊明悠然南山,饮酒采菊……他们选择了永恒,纵然谄媚诬蔑视听,也不随其流扬其波,这是执著的选择;纵然马革裹尸,魂归狼烟,也要仰天长笑,这是豪壮的选择;纵然一身清苦,终日难饱,也愿怡然自乐,躬耕陇亩,这是高雅的选择。在一番选择中,帝王将相成其盖世伟业,贤士迁客成其千古文章。

工具应用方法,请参考微软相关文档。

  • 应用64Signer

好了,当初一个崭新的新星涌现了。64Signer能帮助你一步到位。它不仅界面清晰明了,并且功能完整智能。开发者只要简单地进行一次拖拽,点最多两个按钮,就可以实现系统设置和文件签名等一系列的任务。深渊隐藏在坚固的桥面下,用户只要开车通过就行,而无需流连惊骇。

工具的操纵方法其实已简单明了地列在界面上(红色字体部分),但我还是愿意详细解释一下应用进程:

  1. 运行工具后它可以准确表现以后系统的Test Signing设置。如果此属性已被打开,则“Enable Test Signing Option”是主动钩住的;否则用户需点击一下(第一个点击)。
  2. 然后用户应将驱动文件拖拽到用户界面中来,或者手动输入路径,或者点击Open按钮从而通过文件对话框来选择,都可以(一次拖拽)。
  3. 最后点击Sign按钮(二次点击)。如果签名成功,用户能看到上面的成功提示(如果有看到失败的情况,请发邮件告诉我):

在关闭工具的时候,工具如果检测到你改变了Test Signing启动属性,会有上面的系统重启提示:

就这么简单,我总结为:一拖两点。

这个工具的知心的地方还没有完整展现出来,如果你看到曾经操纵过的历史文件已被整理妥善,以动态列表的情势表现,而你只要点击一下就能展开并选择,贵用户的心情会不会更高兴?如下图所示:

文章结束给大家分享下程序员的一些笑话语录: 警告
有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
小伙子说,“没事儿,我是一个程序员”。
那妇女说,“这又怎样?”
程序员说,“我们从来不关心 Warning,只关心 Error”

证书系统64驱动签名工具64Signer相关推荐

  1. zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY

    本版为改版驱动,仅供SMXDIY会员学习测试,禁止传播.众所周知,H310/B360/H370/Z390是没USB的WIN7驱动的.网上也找不到相关的资料,大家普遍默认没驱动,但这已经成为历史.我们这 ...

  2. 6月最新兼容15.0系统ipa重签名工具(win+mac)免费

    766signer是一款IPA/iOS/苹果重签名工具,支持windows电脑和Mac版苹果电脑. 下载地址: https://wwa.lanzoui.com/b010l6c2d 或者: window ...

  3. 标准代码签名证书和EV代码签名证书的区别,和双签名软件或驱动代码签名证书

    代码签名目前分为标准代码签名和EV扩展型代码签名,两者的相同点都是对企业组织进行更有效验证,针对32位或64位可移植可执行文件进行数字签名,通过对代码的数字签名可以减少软件下载时弹出的安全警告,保证代 ...

  4. IOS苹果ipa重签名工具(苹果签名工具,ios签名工具,支持Windows系统和Macos系统)

    此款ios苹果ipa重签名工具支持windows系统和Macos系统,是一款完全免费的IPA签名工具,签名时需要用到p12证书文件和provision描述文件,可以使用ios企业证书.个人证书对IPA ...

  5. ipa签名工具(IPA Resign Tool)在windows和macos系统下对苹果ipa文件一键重签名

    什么是苹果签名: 1.首先了解什么是苹果签名,苹果签名是苹果面向所有开发者用户提供的app发布方式,是苹果赋予开发者的一种权限,这对于开发者们来说,可以不用上架不用审核就可以直接安装在ios设备上测试 ...

  6. 放弃使用禁用驱动强制签名了,建议申请驱动签名证书

    驱动程序软件的数字证书和普通的其他软件有很大的区别.曾经,驱动程序也可以用 EV 代码签名证书进行数字签名,但随着微软的策略调整,想要给驱动获取数字签名,已经不仅仅是有 EV 代码签名证书就可以的了. ...

  7. java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书

    jdk自带的证书管理工具叫keytool,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 1. 名词 自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书. 证书 ...

  8. EV代码签名证书,支持Windows 10预览版和正式版驱动签名

    DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...

  9. android apk签名工具_Android 应用修改为系统签名的方法(macOS)

    在做 Android 工控机应用开发时,经常会涉及到一些要系统签名才能做的功能,比如应用静默更新,关机重启等功能. 本文介绍系统签名的具体操作方法. 需要准备的东西,相关的签名文件.签名工具.要签名的 ...

最新文章

  1. system.img格式打包学习
  2. centos出现磁盘坏道,怎么检索和修复
  3. ITK:比较两个图像并将输出像素设置为最小值
  4. hbase集群安装和shell操作
  5. linux下移除环境变量及mkdir命令介绍
  6. (转)Python 字符串格式化 str.format 简介
  7. linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
  8. robotframework安装_Robot Framework零基础入门教程
  9. join 子查询 效率_MySQL之多表查询
  10. spring 之 AOP 理解
  11. QQ自带截图功能(你想不到的强大, 必看,长截图/翻译/文本识别/钉在桌面/录屏)
  12. python多线程实现UDP网络通信代码演示
  13. 设计模式六大原则之--开闭原则(OCP)
  14. C++笔记 文件处理笔记
  15. JTAG与SWD接口定义映射
  16. R语言多重比较示例:Bonferroni校正法和Benjamini Hochberg法
  17. squirrelmail(小松鼠web邮件系统)
  18. 桌面计算机图标黄色,电脑桌面图标出现黄色小锁的解决方法教程[多图]
  19. 【BZOJ4716】假摔 二分+暴力
  20. 网站服务器域名费用入什么科目,域名费用计入什么科目

热门文章

  1. 量化投资-量化投资长跑取胜
  2. 数据结构第二版(朱昌杰版)习题五答案
  3. jquery绿色版dreamweaver提示
  4. HTTPS Explained
  5. 酒吧管理系统(大一c语言课程设计)
  6. 用Python实现类似Jmeter的自动化测试框架
  7. 海康网络摄像头二次开发
  8. win10 c语言语音朗读,Win10系统怎样朗读小说
  9. 爱格升33-387-085 Neo-Flex触摸屏支架技术参数
  10. 熟吃西红柿更保护心脏