无忧启动论坛

标题: 全面支持Win10 ARM64!已签名专用exFAT驱动制作完成 [打印本页]

作者: 朱玛12345678    时间: 2019-7-9 18:07
标题: 全面支持Win10 ARM64!已签名专用exFAT驱动制作完成
本帖最后由 朱玛12345678 于 2019-7-9 18:10 编辑

注意:该驱动仅适用于Windows 10 ARM64架构的系统,对于其他体系结构的系统则不可使用。

前言
在上个月之前,我成功制作出基于x64架构的已签名exFAT驱动并完美解决了启动时间过长的问题:http://bbs.wuyou.net/forum.php?m ... 14353&mobile=no
感谢一些热心坛友向我提交测试报告,帮助我改善并解决可能遇到的潜在问题。而这一次开帖更新将彻底解决基于ARM64平台的启动报错问题,下面让我们开始吧。

原因
说到驱动的数字签名,我当时并没有考虑到有ARM64这个特殊平台的存在。就在几天前有一位热心网友主动添加我为好友并向我反映了现有驱动不能使用导致无法从exFAT分区启动系统的问题,当他在细节中提到使用的设备为树莓派3B,运行Windows 10 ARM64操作系统时,我意识到这是一个完全在我意料之外的新问题。
由于我没有可用于测试的ARM64设备,因此在这期间均由他配合测试并向我反馈结果,经过我们的研究与测试连夜奋战了多天终于宣布解决,同时在此也感谢 @Monkey_Yang 的热心支持。

分析
既然是ARM64的系统,那么X64的驱动肯定是无法使用的,这样我就需要收集各版本ARM64系统的exFAT驱动并重新加入数字签名制作驱动包进行测试。
根据上一次签名驱动的经验,我立即用相同的方式为该驱动加上了数字签名,本以为这就能够解决问题。
截图20190703001920.jpg
然而汇报的实际测试结果却让我非常意外,在启动系统时居然提示无法验证此文件的数字签名。很奇怪该驱动明明已经有了数字签名而且还是显示有效的却被系统视为没有签名,而这在x64的系统上是完全没有这个问题的。
不过手动按F8选择禁用驱动程序强制签名验证则可以启动系统,但每次开机都要这样做的话显然太过麻烦也不是解决办法。
截图20190703002355.jpg
当时我认为应该是系统本身有问题,他报告当前用的系统版本是Win10 v1803,我就说尝试重装最新的Win10 v1903看看能不能解决,不过重装期间也因为机器配置原因在安装系统时遇到了一些小问题。
当重装完成后我再将新的已签名exFAT驱动发给他测试启动时,结果竟然和重装之前的情况完全一样。这真是怪事了,按说数字签名都是有的没道理不能识别啊。
截图20190703002355.jpg
后来仔细想了想也许这可能真的是数字签名问题,但一时半会儿又找不到能验证这个问题的方案。我沉思许久突然想到可以尝试把已经内置微软数字签名的NTFS驱动替换成自己做的签名,这或许可以得到答案。
截图20190703233546.jpg
结果本来能用的驱动在测试启动时也出现了数字签名验证不过的现象,这样的话基本可以确定不是系统问题而是我做的签名问题了。
截图20190703233909.jpg

思路
得到了这个测试结果也为我后面的研究打开了新的思路,接下来就要分析这两个数字签名之间的差异,看来这是一个要解决的新问题了。
经过我的研究发现其中有一个很大的不同之处在于:微软是用SHA256算法的证书来为文件做数字签名,而我是用SHA1算法的证书来为文件做数字签名。这很可能是签名算法过旧而导致的,似乎需要改用新的算法签名才能被系统识别。
截图20190704112105.jpg
那么要用新签名就得换证书,但寻找可用证书是件麻烦事。好不容易找到了一个SHA2的证书能用于做数字签名,但签署时间戳又是一个大问题。
截图20190704112209.jpg
还好能用微软的SignTool命令行再打一次有效的时间戳,这时测试了用纯SHA256数字签名的驱动已经可以通过系统的签名验证了。
截图20190704112333.jpg
出于兼容性考虑这次将采用SHA1+SHA2双签名制作ARM64版的exFAT驱动,最终成功搞定Win10 ARM64的签名验证问题。
截图20190704212104.jpg

实践
这次分享的exFAT驱动均从原版Win10ARM64系统映像中提取并由我添加内置双数字签名可快速通过ARM64系统签名验证,解压缩包后根据你的系统版本选择对应的驱动文件并直接放到C:\Windows\System32\Drivers文件夹内替换掉原文件再测试启动即可。
文件下载链接
论坛直接下载: exFAT(ARM64)驱动.zip (1.12 MB, 下载次数: 212)