无忧启动论坛

标题: (更新签名版)MTP补丁失效免替换文件解决方法 [打印本页]

作者: nianyueriPE    时间: 2021-10-10 22:12
标题: (更新签名版)MTP补丁失效免替换文件解决方法
本帖最后由 nianyueriPE 于 2025-7-7 23:58 编辑

目前由于Windows新版对设备驱动签名新的限制,原版MTP驱动补丁无法加载使用。
经过测试,发现新版Windows驱动如果使用在黑名单内的证书则无法加载。
好在,黑名单外的证书不受影响。这里我提供一份已签名mtphelper驱动。
使用SHA-1带时间戳版请把EVRootCA.reg导入注册表
windows使用证书黑名单策略,这个策略拦截在黑名单内的驱动加载,这个策略是通过系统更新下发的。导致用一些常见泄露的证书就算杀软不杀也加载不了驱动,微软现在的最新更新(来自https://blog.talosintelligence.com/old-certificate-new-signature/的小报告导致)导致手头上的证书几乎全军覆没。(详见https://bbs.kanxue.com/thread-273316.htmhttps://learn.microsoft.com/zh-c ... -driver-block-rules
(旧版)mtphelper驱动签名版链接:https://nianyueripe.lanzoub.com/iZot21vvv3oh
(测试,来自qq某人的合法签名,仅x64)新版链接:
https://pan.huang1111.cn/s/QzRZbfm
本身mtphelper驱动就会被某些杀软误报,我已经尽量把报毒数量压到最低了。
注意:如果MTP组件异常,请先运行net start mtphelper命令检查一下,如果服务已经启动则mtphelper驱动正常,提示证书被吊销则为签名失效,请及时告诉我。
可用签名所剩不多,且用且珍惜。







作者: 红毛樱木    时间: 2021-10-10 23:09
善君 韦   这个SHA256的证书已经被吊销了,不如直接用那个没吊销的SHA-1签
作者: ynifcp12    时间: 2021-10-11 00:20
测试可行,不知能不能过安全启动的机子
作者: 狼人72105    时间: 2021-10-11 06:23
同问。。。。
作者: lily9718    时间: 2021-10-11 06:34
谢谢
作者: wsdyleon    时间: 2021-10-11 07:25
11系统吗?
作者: caocaofff    时间: 2021-10-11 10:23
微软不是开始弃用SHA1了吗?都要改成SHA256了
作者: 826773297    时间: 2021-10-11 14:17
22000没有问题,22468补充了签名却提示签名错误
作者: 826773297    时间: 2021-10-11 16:27
已用上,感谢楼主签名,之前的问题已经解决了,mtp还能焕发青春,很稳的方案
作者: nianyueriPE    时间: 2021-10-11 18:34
ynifcp12 发表于 2021-10-11 00:20
测试可行,不知能不能过安全启动的机子

VM虚拟机测试可以
作者: 2048    时间: 2021-10-11 23:30
谢谢大佬的分享
作者: 红毛樱木    时间: 2021-10-20 16:56
win11pe测试可用  
作者: 黑中见白    时间: 2021-11-28 20:41
大佬,加个驱动签名吧

wdmon64.sys.7z (7.68 KB, 下载次数: 20)
作者: nianyueriPE    时间: 2022-2-28 01:18
黑中见白 发表于 2021-11-28 20:41
大佬,加个驱动签名吧

已签名版:链接:https://nianyueripe.lanzouq.com/iiACg00qlgcb
作者: 狼人72105    时间: 2022-4-20 16:06
厉害了我的国。。。
作者: lk_EC93    时间: 2022-7-9 17:19
超级厉害了我的国。。。
作者: hopehu    时间: 2023-4-11 17:33
真历害!
作者: martin313    时间: 2023-9-10 06:07
请帮忙看一下这个PE:http://bbs.wuyou.net/forum.php?m ... d=437237&extra=
第23楼的PE

如何通过签名,加载MTP驱动,谢谢……
作者: martin313    时间: 2023-10-17 20:47
本帖最后由 martin313 于 2023-10-17 22:46 编辑

刚做了个 22000.2538 版的PE,发现MTP驱动无加载,请问这个是什么原因?

检查了MTP相关文件与注册表都齐全,难道是mtphelper.sys失效?或者数字签名是否要更新一下?
大致搞明白了,是因为PE制作方案的原因,把\Windows\System32\DriverStore\FileRepository\下的相关驱动删了的缘故

作者: rbwrbw    时间: 2023-10-17 20:51
没玩过
作者: martin313    时间: 2023-10-18 08:43

用了楼主的新版签名,必须给5分好评!
作者: 2013koko    时间: 2023-10-27 09:28
一直使用这个,非常感谢!
作者: iaanqrm    时间: 2023-10-27 09:45

作者: martin313    时间: 2024-2-9 14:54

老大,32位的mtpHelper.sys的驱动签名失效了,启动PE就蓝屏了
作者: 紧急追踪    时间: 2024-2-9 17:53
感谢分享
作者: nianyueriPE    时间: 2024-2-9 23:33
martin313 发表于 2024-2-9 14:54
老大,32位的mtpHelper.sys的驱动签名失效了,启动PE就蓝屏了

哪个PE,版本是什么?不过蓝屏应该不是驱动的问题,加载不了的话应该直接启动管理器报错,我换个签名你试试。https://nianyueripe.lanzv.com/inKPd1ntyxqh
作者: nianyueriPE    时间: 2024-2-9 23:39
martin313 发表于 2024-2-9 14:54
老大,32位的mtpHelper.sys的驱动签名失效了,启动PE就蓝屏了

这个新的签名证书挺新,是R星前阵子的,应该不至于被封
作者: martin313    时间: 2024-2-10 00:15
nianyueriPE 发表于 2024-2-9 23:33
哪个PE,版本是什么?不过蓝屏应该不是驱动的问题,加载不了的话应该直接启动管理器报错,我换个签名你试 ...


谢谢
Win10PE_x32_19045.3393_zh-CN

刚刚测试了一下,仍然不行。(不会蓝屏,但MTP仍然显示无效签名)
作者: nianyueriPE    时间: 2024-2-10 11:41
本帖最后由 nianyueriPE 于 2024-2-10 12:12 编辑
martin313 发表于 2024-2-10 00:15
谢谢
Win10PE_x32_19045.3393_zh-CN

有导入EVROOT.reg吗?有开启安全启动吗?报错信息截图我看看。这个你试试https://nianyueripe.lanzv.com/i1JF31nv77bg
作者: martin313    时间: 2024-2-10 21:56
nianyueriPE 发表于 2024-2-10 11:41
有导入EVROOT.reg吗?有开启安全启动吗?报错信息截图我看看。这个你试试https://nianyueripe.lanzv.com/ ...


肯定导入了reg,这是标准动作。有无安全启动,应该是没,win7的虚拟机,老版本的64位PE的MTP功能正常。

测试了SHA1mtpHelper_PE_x86.sys与SHA256mtpHelper_PE_x86.sys均不行

这次测试的PE版本是Win10PE_x32_19045.3636_zh-CN.wim。报错截图附件

x64-2024-02-10-21-49-41.png (113.26 KB, 下载次数: 230)

x64-2024-02-10-21-49-41.png

作者: nianyueriPE    时间: 2024-2-10 22:05
martin313 发表于 2024-2-10 21:56
肯定导入了reg,这是标准动作。有无安全启动,应该是没,win7的虚拟机,老版本的64位PE的MTP功能正常。 ...

不对啊,mtphelper驱动如果未加载应该会提示加载了系统驱动但不成功,而不是提示不需要加载,会不会是这个PEmtp组件有问题?我电脑和这个PE同个版本号,那几个签名都能用。
作者: nianyueriPE    时间: 2024-2-10 22:10
本帖最后由 nianyueriPE 于 2024-2-10 22:11 编辑
martin313 发表于 2024-2-10 21:56
肯定导入了reg,这是标准动作。有无安全启动,应该是没,win7的虚拟机,老版本的64位PE的MTP功能正常。 ...

这是mtphelper驱动未加载但mtp组件完整的情况图片

002.png (21.47 KB, 下载次数: 111)

002.png

作者: nianyueriPE    时间: 2024-2-10 22:16
martin313 发表于 2024-2-10 21:56
肯定导入了reg,这是标准动作。有无安全启动,应该是没,win7的虚拟机,老版本的64位PE的MTP功能正常。 ...

你试试运行net start mtphelper命令,发一下运行结果
作者: martin313    时间: 2024-2-10 22:46
nianyueriPE 发表于 2024-2-10 22:16
你试试运行net start mtphelper命令,发一下运行结果


那看来是组件存在问题,等下我检查看看

x64-2024-02-10-22-45-10.png (73.57 KB, 下载次数: 102)

x64-2024-02-10-22-45-10.png

作者: hehuiying    时间: 2024-4-11 20:31
谢谢分享
作者: 深谷憂狼    时间: 2024-4-18 23:43
证书已被颁发者直接吊销


作者: nianyueriPE    时间: 2024-4-21 00:06
深谷憂狼 发表于 2024-4-18 23:43
证书已被颁发者直接吊销

请测试一下新版,记得导入EVROOT.reg。链接https://nianyueripe.lanzoub.com/iZot21vvv3oh
作者: 深谷憂狼    时间: 2024-4-21 16:10
nianyueriPE 发表于 2024-4-21 00:06
请测试一下新版,记得导入EVROOT.reg。链接https://nianyueripe.lanzoub.com/iZot21vvv3oh

好的
作者: 深谷憂狼    时间: 2024-4-21 17:29
已经可以了,没问题了





作者: 2011medp7060    时间: 2024-7-8 06:40
谢谢分享!!!
作者: martin313    时间: 2025-3-9 08:24
本帖最后由 martin313 于 2025-3-9 11:03 编辑

请问有没有 ARM 版的 mtphelper.sys ?


不知mtpHelper_PE_x64.dll能否取代mtpHelper_PE_x64.sys ?如果能取代的话,要导入哪些注册表?
下面的吧:
reg add "HKLM\Tmp_Software\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /d mtpHelper.dll /f
reg add "HKLM\Tmp_Software\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "HKLM\Tmp_Software\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0 /f


作者: nianyueriPE    时间: 2025-3-9 13:41
martin313 发表于 2025-3-9 08:24
请问有没有 ARM 版的 mtphelper.sys ?

这你得问问mtphelper的原作者store了,我之前有跟他说过arm的问题,他跟我说要抽时间看看,然后就8个月没回复。至于dll的问题,我记得wimbuilder2应该有使用mtp dll的选项,你可以参考一下。
作者: martin313    时间: 2025-5-16 21:53
最新版里,好像失效了

图片20250516215325.png (354.32 KB, 下载次数: 21)

图片20250516215325.png

作者: nianyueriPE    时间: 2025-5-16 23:02
martin313 发表于 2025-5-16 21:53
最新版里,好像失效了

哪个版本?我回去看看
作者: martin313    时间: 2025-5-17 08:06
nianyueriPE 发表于 2025-5-16 23:02
哪个版本?我回去看看


版本号,图中有
作者: nianyueriPE    时间: 2025-5-17 22:16
martin313 发表于 2025-5-17 08:06
版本号,图中有

确定了,证书又炸了。但我手上只剩几个证书了,建议是看看dll能不能取代sys。
作者: martin313    时间: 2025-5-17 22:50
nianyueriPE 发表于 2025-5-17 22:16
确定了,证书又炸了。但我手上只剩几个证书了,建议是看看dll能不能取代sys。

dll 可以用,虚拟机里测试成功;但听说物理机里加载dll,需要禁用安全启动

图片20250517224913.png (563.79 KB, 下载次数: 26)

图片20250517224913.png

作者: martin313    时间: 2025-5-17 23:03
nianyueriPE 发表于 2025-5-17 22:16
确定了,证书又炸了。但我手上只剩几个证书了,建议是看看dll能不能取代sys。


物理机加载 dll 就过不了安全启动这关,除非禁用安全启动(这么搞有点麻烦)

图片20250517230144.jpg (801.84 KB, 下载次数: 27)

图片20250517230144.jpg

作者: YWFhYmJi    时间: 2025-5-17 23:24
我用同一个证书签名,虚拟机测试安全启动没问题啊?报错提示的是winload.efi没签名吧,我写的驱动用这个证书签名也能加载
pan.huang1111.cn/s/75jgEig
作者: martin313    时间: 2025-5-18 06:33
YWFhYmJi 发表于 2025-5-17 23:24
我用同一个证书签名,虚拟机测试安全启动没问题啊?报错提示的是winload.efi没签名吧,我写的驱动用这个证 ...


确实是winload.efi的签名报错

刚刚测试了你分享的mtphelper.sys,在虚拟机里测试也一样显示证书被吊销(27842.1000PE)
作者: nianyueriPE    时间: 2025-5-18 20:36
YWFhYmJi 发表于 2025-5-17 23:24
我用同一个证书签名,虚拟机测试安全启动没问题啊?报错提示的是winload.efi没签名吧,我写的驱动用这个证 ...

你这两个证书我都用过,sha256的早就被拉黑了,sha1的刚被拉黑
作者: nianyueriPE    时间: 2025-5-18 20:37
YWFhYmJi 发表于 2025-5-17 23:24
我用同一个证书签名,虚拟机测试安全启动没问题啊?报错提示的是winload.efi没签名吧,我写的驱动用这个证 ...

估计是你的系统还没更新黑名单,所以能用
作者: nianyueriPE    时间: 2025-5-18 20:38
martin313 发表于 2025-5-18 06:33
确实是winload.efi的签名报错

刚刚测试了你分享的mtphelper.sys,在虚拟机里测试也一样显示证书被吊 ...

他的证书也早被拉黑了,话说会不会是因为之前微软更新了安全启动证书,而你的物理机没更新证书?
作者: martin313    时间: 2025-5-18 20:43
nianyueriPE 发表于 2025-5-18 20:38
他的证书也早被拉黑了,话说会不会是因为之前微软更新了安全启动证书,而你的物理机没更新证书?

这个不是很清楚
估计是测试版本的windows缘故吧
我的物理机还算是新机器呢,去年5月买的
作者: nianyueriPE    时间: 2025-5-18 20:52
martin313 发表于 2025-5-18 20:43
这个不是很清楚
估计是测试版本的windows缘故吧
我的物理机还算是新机器呢,去年5月买的

你回头更新下微软的安全启动补丁看看
作者: nianyueriPE    时间: 2025-5-18 20:58
martin313 发表于 2025-5-18 20:43
这个不是很清楚
估计是测试版本的windows缘故吧
我的物理机还算是新机器呢,去年5月买的

https://learn.microsoft.com/zh-c ... rce=recommendations。这里面说安全启动会导致appinit-dlls被禁用,无法使用mtphelper.dll
作者: YWFhYmJi    时间: 2025-5-18 21:48
应该是新版系统加入了对证书吊销的判断并且强制要求SHA256签名,以前的系统是可以正常加载被吊销的证书的,甚至不用时间戳
作者: YWFhYmJi    时间: 2025-5-18 22:01
新版系统封杀了很多不正规加载驱动的途径,那就不好搞了,只能关闭安全启动或往uefi里添加自定义证书,或者老老实实买证书。

找到了一个可以通过向uefi添加自定义证书的办法:github.com/HyperSine/Windows10-CustomKernelSigners/blob/master/README.zh-CN.md
作者: nianyueriPE    时间: 2025-5-19 00:17
YWFhYmJi 发表于 2025-5-18 21:48
应该是新版系统加入了对证书吊销的判断并且强制要求SHA256签名,以前的系统是可以正常加载被吊销的证书的, ...

x86的只判断是否在微软的黑名单内,与是否在CA吊销无关,arm才需要sha256
作者: nianyueriPE    时间: 2025-5-19 00:18
YWFhYmJi 发表于 2025-5-18 22:01
新版系统封杀了很多不正规加载驱动的途径,那就不好搞了,只能关闭安全启动或往uefi里添加自定义证书,或者 ...

这方法只在政府版win10原生支持,新版的windows加了限制不好搞,且bios用不了
作者: martin313    时间: 2025-6-8 07:15
请协助更改附件exe的签名信息,使其适用所有版本,不知是否可行?

explorer.rar

1.05 MB, 下载次数: 1, 下载积分: 无忧币 -2


作者: nianyueriPE    时间: 2025-6-8 16:28
martin313 发表于 2025-6-8 07:15
请协助更改附件exe的签名信息,使其适用所有版本,不知是否可行?

这个文件是要干嘛的?
作者: martin313    时间: 2025-6-8 18:02
nianyueriPE 发表于 2025-6-8 16:28
这个文件是要干嘛的?

哦,暂时不必了。本来想用它适用于多个PE版本的,后来看看不行,就放弃了。
作者: YWFhYmJi    时间: 2025-6-30 13:46
本帖最后由 YWFhYmJi 于 2025-6-30 19:09 编辑

能否帮忙测试一下重签名的 mtpHelper
pan.huang1111.cn/s/k2xj6uB
还有,能不能把您PE里的 \Windows\System32\ci.dll 发出来,我研究一下能不能在PE里使用未签名的 mtpHelper
作者: YWFhYmJi    时间: 2025-6-30 19:11
martin313 发表于 2025-6-8 18:02
哦,暂时不必了。本来想用它适用于多个PE版本的,后来看看不行,就放弃了。

能否帮忙测试一下重签名的 mtpHelper,确认一下这个证书在物理机上是否可用
pan.huang1111.cn/s/k2xj6uB
作者: martin313    时间: 2025-6-30 19:13
YWFhYmJi 发表于 2025-6-30 19:11
能否帮忙测试一下重签名的 mtpHelper,确认一下这个证书在物理机上是否可用
pan.huang1111.cn/s/k2xj6uB

这个是最近刚刚重新签名的吗?
作者: YWFhYmJi    时间: 2025-6-30 19:18
martin313 发表于 2025-6-30 19:13
这个是最近刚刚重新签名的吗?

这是之前5月份用新的泄露证书重签的,但当时因为我配置错误测试失败,以为不行,现在有时间再看了一下发现虚拟机能过win11最新版(27881)的安全启动,就想测试物理机
作者: martin313    时间: 2025-6-30 19:35
YWFhYmJi 发表于 2025-6-30 19:18
这是之前5月份用新的泄露证书重签的,但当时因为我配置错误测试失败,以为不行,现在有时间再看了一下发 ...

虚拟机里测试了可用,等下物理机测试看看(一般应该没问题)

图片20250630193433.png (733.71 KB, 下载次数: 4)

图片20250630193433.png

作者: martin313    时间: 2025-6-30 21:05
YWFhYmJi 发表于 2025-6-30 19:18
这是之前5月份用新的泄露证书重签的,但当时因为我配置错误测试失败,以为不行,现在有时间再看了一下发 ...


物理机测试了一下,没法启动,报错如图。大概是因为这个windows是测试版本的原因吧。

20250630210403.jpg (448.85 KB, 下载次数: 2)

20250630210403.jpg

作者: YWFhYmJi    时间: 2025-6-30 21:50
martin313 发表于 2025-6-30 21:05
物理机测试了一下,没法启动,报错如图。大概是因为这个windows是测试版本的原因吧。

不用这个驱动也没法启动吗?

如果签名还是过不了安全启动,我又做了一个备用方案,但是里面用到了有漏洞的驱动直接修改内核内存来加载无签名驱动,可能会蓝屏(不过如果多次蓝屏可以在开机时选择不加载)。

pan.huang1111.cn/s/K9a1XIY

用法:把mtpHelper.exe放到PE的System32里,在PE的SYSTEM注册表里ControlSet001\Control\Session Manager中的BootExecute中最后一行加入mtpHelper,默认开机会有3秒的中文提示信息(按U键取消加载MTP驱动),提供两个参数:
/English 英文显示
/SkipCheck 跳过开机提示信息直接加载

这个方案应该不会导致系统因为添加mtpHelper驱动直接没法启动,就算出问题也可以跳过加载。
作者: nianyueriPE    时间: 2025-7-6 00:37
martin313 发表于 2025-6-30 21:05
物理机测试了一下,没法启动,报错如图。大概是因为这个windows是测试版本的原因吧。

会不会是时间戳的原因?我加个时间戳你试试
作者: nianyueriPE    时间: 2025-7-6 00:50
martin313 发表于 2025-6-30 21:05
物理机测试了一下,没法启动,报错如图。大概是因为这个windows是测试版本的原因吧。

时间戳链接:https://pan.huang1111.cn/s/RY1kPHB
作者: nianyueriPE    时间: 2025-7-6 00:51
YWFhYmJi 发表于 2025-6-30 21:50
不用这个驱动也没法启动吗?

如果签名还是过不了安全启动,我又做了一个备用方案,但是里面用到了有漏 ...

不过这种漏洞迟早会被封吧?杀毒软件都报毒了,微软封禁驱动也不远了
作者: nianyueriPE    时间: 2025-7-6 00:57
YWFhYmJi 发表于 2025-6-30 21:50
不用这个驱动也没法启动吗?

如果签名还是过不了安全启动,我又做了一个备用方案,但是里面用到了有漏 ...

我在想mtphelper有一个注入winlogon.exe的dll版本,但是用appdll_init方法注入会在安全启动时被阻止。我在想既然你会写native程序,能不能写个native的dll利用微软的ifeo注入那个mtphelper.dll呢?(参考https://blog.csdn.net/lixiangminghate/article/details/70991168,这个机制的dll只能用ntdll的api,可以参考https://github.com/YuZhouRen86/VxKex-NEXT/的native部分注入dll)
作者: martin313    时间: 2025-7-6 06:28
本帖最后由 martin313 于 2025-7-6 07:11 编辑
nianyueriPE 发表于 2025-7-6 00:37
会不会是时间戳的原因?我加个时间戳你试试


报错的是winload.efi的签名验证问题,难道与mtphelper有关?
实机测试过了,启动仍然如71楼报错

作者: YWFhYmJi    时间: 2025-7-6 08:17
nianyueriPE 发表于 2025-7-6 00:57
我在想mtphelper有一个注入winlogon.exe的dll版本,但是用appdll_init方法注入会在安全启动时被阻止。我 ...

我试试能不能实现,以及VerifierDll能不能过安全启动
作者: nianyueriPE    时间: 2025-7-6 14:02
martin313 发表于 2025-7-6 06:28
报错的是winload.efi的签名验证问题,难道与mtphelper有关?
实机测试过了,启动仍然如71楼报错

你的实体机更新微软的安全启动补丁了吗?系统是最新的版本吗?微软之前更换了安全启动的密钥
作者: nianyueriPE    时间: 2025-7-6 14:03
YWFhYmJi 发表于 2025-7-6 08:17
我试试能不能实现,以及VerifierDll能不能过安全启动

目前根据微软的文档,appdll_init受限,VerifierDll倒是没说。如果可以实现的话之后mtphelper就彻底没问题了。
作者: martin313    时间: 2025-7-6 14:18
nianyueriPE 发表于 2025-7-6 14:02
你的实体机更新微软的安全启动补丁了吗?系统是最新的版本吗?微软之前更换了安全启动的密钥


应该是当前正式版本的最新版

图片20250706141803.png (25.27 KB, 下载次数: 2)

图片20250706141803.png

作者: nianyueriPE    时间: 2025-7-6 14:59
martin313 发表于 2025-7-6 14:18
应该是当前正式版本的最新版

实体机是什么版本?更新安全启动补丁了吗?引导pe的bootmgr是最新的2023CA签名的吗
作者: YWFhYmJi    时间: 2025-7-6 15:04
nianyueriPE 发表于 2025-7-6 14:03
目前根据微软的文档,appdll_init受限,VerifierDll倒是没说。如果可以实现的话之后mtphelper就彻底没问 ...

不好说,我刚刚测试的时候尝试在services.exe中注入VerifierDll,services.exe直接无法启动报错没有数字签名,但winlogon.exe可以正常注入,如果之后微软在winlogon.exe也验证数字签名就不行了。

native程序也不能保证一直可以,万一验证数字签名也就不行了。

win8.1新引入了PPL机制,直接导致系统进程没法通过远程线程注入。services.exe和几个系统文件也是只要修改就没法启动。

PE里不让用UMDF是微软特意加的,services.exe里初始化UMDF的函数InitWudfDriverManager调用了两个函数IsRunningWinPE和IsUMDFEnabledInWinPEMode,其中IsRunningWinPE函数就是通过判断有没有MiniNT项来检测是否是PE,IsUMDFEnabledInWinPEMode是通过调用ZwQueryLicenseValue检测是否允许PE里使用UMDF,在普通PE里默认不允许。这个不知道是什么逻辑,有没有方法通过设置注册表允许在PE里使用UMDF。
作者: Bluebells    时间: 2025-7-6 15:24
YWFhYmJi 发表于 2025-7-6 15:04
不好说,我刚刚测试的时候尝试在services.exe中注入VerifierDll,services.exe直接无法启动报错没有数字 ...

IsRunningWinPE 这个函数是在哪个动态链接库文件中?在微软官网找不到关于这个函数的任何信息,是未文档化函数还是非 winapi?
作者: nianyueriPE    时间: 2025-7-6 15:26
YWFhYmJi 发表于 2025-7-6 15:04
不好说,我刚刚测试的时候尝试在services.exe中注入VerifierDll,services.exe直接无法启动报错没有数字 ...

之前其他大佬研究的时候也就只能让services.exe检测不到MiniNT项,sys的思路是让services.exe无法访问到minint注册表,注入winlogon.exe是在services.exe初始化umdf时先删除minint再恢复minint。如果要让pe使用UMDF可能得参考之前有人搞的pe的RAMOS化,直接没有minint项
作者: nianyueriPE    时间: 2025-7-6 15:28
YWFhYmJi 发表于 2025-7-6 15:04
不好说,我刚刚测试的时候尝试在services.exe中注入VerifierDll,services.exe直接无法启动报错没有数字 ...

目前还没有校验的话只要能用就行,微软目前还没注意到这个问题。只需要用VerifierDll先注入你的dll,再让你的dll使winlogon.exe再加载完win32api后加载win32的mtphelper.dll就行
作者: YWFhYmJi    时间: 2025-7-6 15:32
本帖最后由 YWFhYmJi 于 2025-7-6 15:47 编辑
Bluebells 发表于 2025-7-6 15:24
IsRunningWinPE 这个函数是在哪个动态链接库文件中?在微软官网找不到关于这个函数的任何信息,是未文档 ...

这两个函数都在services.exe内部,反编译出来的,不是api。
但ZwQueryLicenseValue是ntdll的导出函数,IsUMDFEnabledInWinPEMode这个函数感觉是微软预留的PE UMDF开关
  1. BOOLEAN __stdcall IsUMDFEnabledInWinPEMode()
  2. {
  3.   BOOLEAN result; // al
  4.   int v1; // [rsp+40h] [rbp+8h] BYREF
  5.   int v2; // [rsp+48h] [rbp+10h] BYREF
  6.   int v3; // [rsp+50h] [rbp+18h] BYREF

  7.   v3 = 0;
  8.   v2 = 0;
  9.   v1 = 0;
  10.   if ( (unsigned int)ZwQueryLicenseValue(L"UMDF-WINPE-ENABLED", &v2, &v3, 4i64, &v1) ) // 这里的字符串是一个UNICODE_STRING,我给简化了
  11.     return 0;
  12.   if ( v1 != 4 )
  13.     return 0;
  14.   if ( v2 != 4 )
  15.     return 0;
  16.   result = 1;
  17.   if ( v3 != 1 )
  18.     return 0;
  19.   return result;
  20. }
复制代码

作者: Bluebells    时间: 2025-7-6 15:50
YWFhYmJi 发表于 2025-7-6 15:32
这两个函数都在services.exe内部,反编译出来的,不是api。
但ZwQueryLicenseValue是ntdll的导出函数,I ...

我只关心 IsRunningWinPE 这个函数,如果不是 winapi,估计这个函数的实现还是检测 MiniNT 这个注册表子项是否存在
关于 Native API,国外有几个网站有提供很多未文档化函数的详细信息(如 https://ntdoc.m417z.com/https://www.geoffchappell.com/ 等)
作者: martin313    时间: 2025-7-6 16:05
本帖最后由 martin313 于 2025-7-6 16:12 编辑
nianyueriPE 发表于 2025-7-6 14:59
实体机是什么版本?更新安全启动补丁了吗?引导pe的bootmgr是最新的2023CA签名的吗

晕,什么版本?79楼不是截图给你了么。没专门去更新安全启动补丁,不折腾。物理机能正常使用就行。一般都是在虚拟机里测试测试。
作者: YWFhYmJi    时间: 2025-7-6 16:08
Bluebells 发表于 2025-7-6 15:50
我只关心 IsRunningWinPE 这个函数,如果不是 winapi,估计这个函数的实现还是检测 MiniNT 这个注册表子 ...

mtpHelper.sys驱动就是用防止读取MiniNT这个注册表的方式尝试启用UMDF的,目前试了以下方法:
1. 重签名mtpHelper,暂时有效
2. 修改services.exe,蓝屏
3. native程序注入smss.exe再注入services.exe,smss.exe受保护无法注入
4. native程序关闭dse加载未签名mtpHelper.sys再恢复,暂时有效,杀软报毒
5. VerifierDLL注入到winlogon.exe,制作完毕,但我没有最新的win11pe暂时还没有测试
作者: martin313    时间: 2025-7-6 16:13
YWFhYmJi 发表于 2025-7-6 16:08
mtpHelper.sys驱动就是用防止读取MiniNT这个注册表的方式尝试启用UMDF的,目前试了以下方法:
1. 重签名 ...


最新的win11pe,在这儿:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=446705
作者: YWFhYmJi    时间: 2025-7-6 19:53
martin313 发表于 2025-7-6 16:13
最新的win11pe,在这儿:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=446705

感谢分享。由于目前这个网盘我下载不了,没法测试你的PE。但是我用Wimbuilder制作的27881 PE虚拟机开安全启动测试MTP成功。研究出来了新的方法,无需加载驱动、注入DLL,仅修改注册表。要用本论坛工具ProductPolicyEditor:bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=404508&pid=3505510&fromuid=912164
修改PE的ProductPolicy,添加一个DWORD项 UMDF-WINPE-ENABLED (services.exe内部固定字符串),值为1,之后PE就可以直接加载UMDF组件使用MTP。

这应该是微软的一个开关,修改后就允许PE中加载UMDF驱动。

作者: YWFhYmJi    时间: 2025-7-6 20:01
本帖最后由 YWFhYmJi 于 2025-7-7 09:54 编辑

改注册表的原理见IsUMDFEnabledInWinPEMode函数的代码,之后我可能会做一个命令行程序修改ProductPolicy
VerifierDll目前正在开发中
更新:VerifierDll开发完毕,本帖107楼

作者: martin313    时间: 2025-7-6 20:16
YWFhYmJi 发表于 2025-7-6 19:53
感谢分享。由于目前这个网盘我下载不了,没法测试你的PE。但是我用Wimbuilder制作的27881 PE虚拟机开安全 ...


123网盘与百度盘,都无法下载?

你提到的修改注册表成功加载的mtphelper.sys,这个仍然是要先新签数字签名才行的喽?
作者: YWFhYmJi    时间: 2025-7-6 20:31
martin313 发表于 2025-7-6 20:16
123网盘与百度盘,都无法下载?

你提到的修改注册表成功加载的mtphelper.sys,这个仍然是要先新签数 ...

123网盘流量限制了,百度网盘没会员。
修改注册表并不是为了加载驱动,是让ZwQueryLicenseValue返回1,从而使services.exe强制运行UMDF组件,这可能是微软预留的一个开关。这个方法并不是不让services.exe知道系统是PE,而是它已经知道这是PE但强制让它加载UMDF
作者: hua_wuxin    时间: 2025-7-6 21:39
martin313 发表于 2025-7-6 20:16
123网盘与百度盘,都无法下载?

你提到的修改注册表成功加载的mtphelper.sys,这个仍然是要先新签数 ...

是不再需要mtphelper.sys了。文件和注册表里的服务项都可以删掉。
作者: martin313    时间: 2025-7-6 22:06
hua_wuxin 发表于 2025-7-6 21:39
是不再需要mtphelper.sys了。文件和注册表里的服务项都可以删掉。


这么牛逼啊,只要改一个注册表就解决?!
作者: YWFhYmJi    时间: 2025-7-6 22:14
martin313 发表于 2025-7-6 22:06
这么牛逼啊,只要改一个注册表就解决?!

暂时需要用ProductPolicyEditor修改,手动修改比较麻烦
作者: martin313    时间: 2025-7-6 22:17
YWFhYmJi 发表于 2025-7-6 22:14
暂时需要用ProductPolicyEditor修改,手动修改比较麻烦

用ProductPolicyEditor修改也很方便啊,具体讲一下,要添加什么名称,添加的类型,最好截个图参考一下看看
作者: YWFhYmJi    时间: 2025-7-6 22:29
本帖的第3页有方法。但是不知道这个开关是什么时候开始有的,win10和win11的24h2正式版还没有这个开关,所以这个方法也只能作为备用方案。正式版系统用驱动或者VerifierDLL,测试版用改注册表方法。
作者: martin313    时间: 2025-7-6 22:31
YWFhYmJi 发表于 2025-7-6 22:29
本帖的第3页有方法。但是不知道这个开关是什么时候开始有的,win10和win11的24h2正式版还没有这个开关,所 ...


谢谢,搞定了

图片20250706223030.png (1.1 MB, 下载次数: 3)

图片20250706223030.png

图片20250706223017.png (85.81 KB, 下载次数: 3)

图片20250706223017.png

作者: martin313    时间: 2025-7-6 23:08
YWFhYmJi 发表于 2025-7-6 22:29
本帖的第3页有方法。但是不知道这个开关是什么时候开始有的,win10和win11的24h2正式版还没有这个开关,所 ...


如果能用批处理修改这个注册表,那就方便了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3