无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品★IDC大全★服务器租赁、托管★优惠促销★
可防勒索的强大数据备份恢复软件卡瑞飞系统和装机二合一超级U盘广告联系 QQ:184822951 微信:wuyouceo
查看: 2236|回复: 116
打印 上一主题 下一主题

[原创] WIN10PE连接手机(MTP支持)

  [复制链接]
跳转到指定楼层
1#
发表于 2018-12-16 12:11:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 slore 于 2019-1-3 10:03 编辑

背景
手机能上网,下载东西传到电脑的话,不需要网络的维护PE就够了。

所以想解决WIN10PE下无法使用MTP驱动的问题。

再次感谢Noelblanc(原生显示桌面功能开启方法发现者,善于反编译调试爱骑自行车的法国退休老爷爷)

不能启动的原因是,系统启动的时候,services.exe调用InitWudfDriverManager()函数初始化UMDF服务失败。InitWudfDriverManager: Cannot initialize UMDF driver manager in WinPE(骑行旅游了3,4个月没给我消息,上个月回来给了我这条重要的线索).

当HKLM\System\Control\MiniNT存在就失败了。
不知道是PE下功能不全,还是单纯的微软限制,所以进行了验证。


我开始想着把services.exe中的MiniNT字符串改成NiniNT就可以了。结果这个进程是系统保护程序,改动1个字节就蓝屏了。

然后想着离线把MiniNT删除试试,结果发现离线的SYSTEM中不存在此项,应该是启动时初始化的。
尝试用已经不流行(补充:XPE, WIN7PE还有,WIN8之后就没有再用了)的native shell,在进系统前删除该注册表项(native下确认存在MiniNT),
然后还是蓝屏,应该是PE下的其他系统进程服务需要该项存在。

目前是写了个dll注入winlogon.exe在services.exe启动前删除该项,等几秒,再添加该项让winlogon.exe继续启动。这个秒数不固定,但是通过这种方法我们得以验证,PE下无法启动WUDF服务是微软限制。把不固定秒数问题解决,这种“曲线”方式我会发布一个MTP的WimBuilder2用的补丁。(通过进程检测代替等不确定秒数来实现,补丁见#6,如果不行源码也在自己修改等待时间编译测试。)

(2019-01-02)最终最小依赖补丁见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=411399

如果使用此dll跳过限制后,要注意,没有WUDFPlatform.dll初始化失败蓝屏,没有
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF注册表,初始化失败蓝屏。
(#6的补丁在MTP_Drv_Srv补充中添加了)


正规的方法估计需要写个ring0级别驱动,可以控制只让services.exe读取不到该项目。
最近没什么空闲时间,就把原因和解除限制方法分享出来,有时间折腾的人来搞吧。

(我和Noel都是不使用PE的人。。。调查到这个地步搞清楚原理,我们就算完成。。。)




noel的手机:


我的Mate10手机:


评分

参与人数 5无忧币 +25 收起 理由
1301994096 + 5 手机电脑两用U盘可以互传啊
whyme22 + 5
tools241 + 5 了解微软的限制是最困难的, 其他问题便能迎.
sghihor + 5
freesoft00 + 5

查看全部评分

推荐
发表于 2018-12-25 15:02:01 | 只看该作者
总算搞定了,看上去还是ISO的问题。可能是我破解的BOOTMGR版本低了。

点评

最终确定是BCD的原因,你试试这样操作。 用BOOTICE编辑BCD,然后删掉默认的启动项,新建一个一样的启动项,这样启动之后就不产生那个DAT文件了。  详情 回复 发表于 2018-12-25 18:21
用WimBuilder2从零构建,不同版本(v1709, v1809, x86, x64)每次都成功。所以功能验证还是用原版的东西好,避免误导。  发表于 2018-12-25 17:20
回复 支持 1 反对 0

使用道具 举报

推荐
 楼主| 发表于 2018-12-22 14:36:10 | 只看该作者
本帖最后由 slore 于 2018-12-24 13:20 编辑

秒数不固定的问题,通过检测服务进程的方式,解决了,我机器600毫秒后可以了恢复MiniNT项目,
还测试了一个4秒的环境,机器有限,不过从代码来看没有问题。
(附件的Hook.dll是会在X:\写Hook.dat进程日志,如果其他人的环境也OK的话,元旦后我更新一个不写日志的版本。)

做了一个WimBuilder2的 MTP支持 补丁。
另外x64位的话,对未签名驱动有限制,所以顺便也放一个不检查驱动签名的补丁。


MTP_Support.zip (85.73 KB, 下载次数: 77)
Patch_drvinst.zip (49.33 KB, 下载次数: 47)


解压到WimBuilder2的任意工程目录下即可。如果不使用WimBuilder2的话,自己看批处理脚本,非常简单易懂。

犯了一个低级的错误,导致昨天没有成功,System32下面补充winusb.dll就行了。
(补丁包中给INF, System32,Drivers, FileRepository添加文件,就单把System32下给漏了。。。)

点评

收到,有的折腾了。以前一直折腾,就是服务启动不起来,再折腾一次试试  详情 回复 发表于 2018-12-22 15:07
回复 支持 1 反对 0

使用道具 举报

4#
发表于 2018-12-16 13:06:19 | 只看该作者
终于有解决方案了,类目
回复 支持 反对

使用道具 举报

5#
发表于 2018-12-16 14:27:29 | 只看该作者
本帖最后由 tools241 于 2018-12-23 13:08 编辑
...但是通过这种方法我们得以验证,PE下无法启动WUDF服务是微软限制。
...
(我和Noel都是不使用PE的人。。。)

由于微软的限制, 利用PE与手机连线显然有难度( 代价不低 ).
所以我特制 Win7x64.VHD (大小仅1G) 来与手机连线, 有兴趣者可参考:
  珍稀资源! Win7x64.VHD(仅1G)可与手机连线/无网路,采Grub4Dos由硬盘/U盘启动/UEFI启动 ==>
  http://bbs.wuyou.net/forum.php?mod=viewthread&tid=411643

注: 经测试在 "正常Win10系统" 与手机连线有时仍会失败, 且Win10x64.VHD不易精简,
     因此我特制 Win7x64.VHD 而不制作 Win10x64.VHD 来与手机连线.

    本人惯用的是10PE, 有兴趣者可参考:
   效率极致!   简/繁 x64/x86 10PE 17763.195, 17134.165, 15063 , x64 18290, 16299 --
                    含IE11+Firefox56+Chrome71+PotPlayer1.7.16291 PE影音上网 ==>
   http://bbs.wuyou.net/forum.php?mod=viewthread&tid=385866
注: 在简体版 x64/x86 10PE 17763.195 中已添加MTP相关文件, 若要与手机连线有诸多问题待测.

回复 支持 反对

使用道具 举报

6#
发表于 2018-12-16 20:14:35 | 只看该作者
我只想说


感谢Noel和slore。

等别的大大来弄吧。

回复 支持 反对

使用道具 举报

7#
发表于 2018-12-22 15:07:09 来自手机 | 只看该作者
slore 发表于 2018-12-22 14:36
秒数不固定的问题,找了个检查方法试了下,貌似可行,不过我机器600ms后可以了,
花的时间不长,我不确定 ...

收到,有的折腾了。以前一直折腾,就是服务启动不起来,再折腾一次试试
回复 支持 反对

使用道具 举报

8#
发表于 2018-12-22 19:27:50 | 只看该作者
wimboot上年提的问题楼主给解决了
otg otg
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2018-12-23 06:25:42 | 只看该作者
本帖最后由 slore 于 2018-12-23 06:36 编辑


成功的是我的hook.dll在Noel的PE下(英文截图)。他的PE源是ADK的winpe.wim而且他改造了非常多的东西,我的环境一直蓝屏,以至于我构建了无数次hook.dll的时间差。因为我用纯winre.wim从0开始构建,少了很多文件,注册表。验证到PE环境下限制解除,直到发现这2个蓝屏的补充,所以才给出 补丁。 剩下应该是补充文件和注册表的问题了。

这就是只靠对比文件差和注册表的方式无法突破的地方。

需要逆向分析,系统的处理流程。反汇编看services.exe, explorer.exe。用windbg.exe(微软出品)动态跟踪调试,在正常系统和PE比较执行顺序上有什么不同。

比程序开发难度要高。也不是一帆风顺,你们看到的只是结果,毕竟是闭源的,有时候真心靠运气发现突破口。WUDF服务相关资料断断续续3,4个月,然而没啥用,多数内容是正常系统下开发框架,使用的文档。偶然有句,该服务由services.exe初始化,然后才去调试它。

点评

老大,能不能方便放一个直接删除MiniNT项的补丁?  详情 回复 发表于 2018-12-23 07:47
回复 支持 反对

使用道具 举报

10#
发表于 2018-12-23 07:47:14 来自手机 | 只看该作者
slore 发表于 2018-12-23 06:25
成功的是我的hook.dll在Noel的PE下(英文截图)。他的PE源是ADK的winpe.wim而且他改造了非常多的东西,我 ...

老大,能不能方便放一个直接删除MiniNT项的补丁?

点评

只删除不创建?winpeshl.exe等程序会直接退出啊。 后续程序的话,你在PECMD中删除,效果一样。  详情 回复 发表于 2018-12-23 08:58
回复 支持 反对

使用道具 举报

11#
 楼主| 发表于 2018-12-23 08:58:43 | 只看该作者
红毛樱木 发表于 2018-12-23 07:47
老大,能不能方便放一个直接删除MiniNT项的补丁?

只删除不创建?winpeshl.exe等程序会直接退出啊。

后续程序的话,你在PECMD中删除,效果一样。

点评

后续再删,不是有点晚了么。 pe下很多地方限制都是这个原因,想弄个这样的环境研究一些东西。  详情 回复 发表于 2018-12-23 09:23
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持本站|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2019-1-18 18:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表