64位驱动签名工具64Signer

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

  • 背景介绍

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

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

这看上去很省心,但你如果再了解得深入一点,就会发现它其实很麻烦。

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

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

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

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

Bcdedit /set testsigning true

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

Bcdedit /enum {current}

bcd-testsigning

这个属性会在下次系统重启时生效。系统会一直记住这个属性,重启系统后也依然有效。

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

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

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

  • 使用64Signer

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

64signer

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

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

64Signer_success

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

64Signer_reboot

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

这个工具的贴心之处还没有完全展现出来,如果你看到曾经操作过的历史文件已被整理妥当,以动态列表的形式显示,而你只要点击一下就能展开并选择,贵用户的心情会不会更开心?如下图所示:

64Signer_fileList

补充

在有些启用了Secure Boot的机器上,不能打开TestSigning启动选项。这种情况下,64Signer就不能使用了。下面是一个例子:

C:\windows\system32>bcdedit /set {current} testsigning on
An error has occurred setting the element data.
The value is protected by Secure Boot policy and cannot be modified or deleted.

### 回答1: 关于APK签名工具哪个好用,这是一个因人而异的问题。以下是几个常用的APK签名工具供您参考: 1. jarsigner:这是Android开发工具包(SDK)自带的命令行工具,可以用于对APK进行签名。它简单易用,适合初学者使用。 2. ApkSigner:这是Google推出的一款APK签名工具,它提供了图形界面和命令行两种方式,具有签名验签的功能。它支持多种签名算法和证书格式,功能强大且易于操作。 3. SignApk:这是CyanogenMod团队开发的一款APK签名工具,它可以对APK进行签名和验签。它具有使用方便的命令行工具和简单的操作流程。 4. V2Signer:这是一款由微信团队开源的APK签名工具,它可以对APK进行V2签名,并支持增量签名,提高了签名效率。它使用简单,功能齐全。 由于APK签名工具涉及到个人偏好和项目需求的不同,所以没有一个“最好用”的签名工具。建议您根据自己的需求和使用习惯选择合适的签名工具,可以先尝试使用上述提到的几款工具,根据个人体验选择最适合自己的工具。 ### 回答2: 在选择APK签名工具时,有几个因素值得考虑。首先,工具的易用性非常重要。好的工具应该提供清晰简洁的界面,使用户能够轻松理解和操作。其次,工具的功能也很关键。一个好用的APK签名工具应该能够支持各种签名算法、证书格式和各种需要的签名参数。此外,工具还应该提供错误检测和自动修复的功能,以确保签名的准确性和完整性。另外,工具的稳定性和安全性也是需要考虑的因素。选择一个经过测试和验证的工具可以确保签名的稳定性,并保护您的签名证书免受恶意攻击。最后,工具的性能也很重要。速度快、资源占用少的工具可以提高工作效率,并节省时间和成本。根据这些标准,一些备受推荐的APK签名工具包括jarsigner、apksigner、Android Studio等。但请根据自己的需求和实际情况选择最适合自己的工具。 ### 回答3: 在选择APK签名工具时,有几个要考虑的因素: 首先是工具的易用性。好的签名工具应该提供简洁明了的界面和操作流程,让用户能够快速上手,完成签名过程。 其次是安全性。签名工具需要确保生成的签名文件具有足够的安全性,防止篡改和伪造。好的签名工具应该具有先进的加密算法和防护机制,保证签名的完整性和安全性。 另外是兼容性。签名工具应该能够兼容不同的Android版本和架构,以适应各种设备的需求。好的签名工具应该能够适配最新的Android平台,并且支持不同的CPU架构。 最后是性能和速度。签名工具应该能够快速完成签名过程,以提高开发效率。好的签名工具应该在保证签名安全的前提下,尽可能地提高签名速度,减少等待时间。 综上所述,目前市面上有很多APK签名工具可供选择,如Jarsigner、ApkSignerSignApk等。其中,Google官方推出的ApkSigner是一个很好的选择,它具有简单易用的界面、强大的安全性和兼容性,同时速度也较快。此外,ApkTool和Uber Apk Signer也是一些备受推崇的签名工具,它们都具备较好的易用性和性能。 总之,选择APK签名工具时,可以根据自己的需求和使用习惯,综合考虑上述因素,选择适合自己的好用工具
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值