本帖最后由 liangyi 于 2022-9-19 16:13 编辑
1. PE 添加 netprofm 服务
起因:求助PE的 netprofm 服务的依赖组件及注册表
最近一时兴起折腾手上的一个 Win8PE,想给它添加 netprofm 服务,
两个依赖服务 Network Location Awareness、Remote Procedure Call (RPC) 均已启动,
相关文件加了
netprofm.dll
netprofmsvc.dll复制代码注册表也加了
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SafeBoot\Network\netprofm
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SQMServiceList
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\netprofm
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{C96887DA-A652-4426-905E-4A37546F847C}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DCB00C01-570F-4A9B-8D69-199FDBA5723B}
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{DCB00D01-570F-4A9B-8D69-199FDBA5723B}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{fbcfac3f-8459-419f-8e48-1f0b49cdb85e}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{fbcfac3f-8460-419f-8e48-1f0b49cdb85e}复制代码奈何就是开启不了服务,提示 “设备未就绪”,求助帖也沉鸟
错误提示如下:设备未就绪
netprofm启动失败.png (28.1 KB, 下载次数: 213)
下载附件
2022-8-18 16:45 上传
所以,只好随缘扒拉一下网络,看是否有相关信息,然后就扒到一个帖子(已解决)干掉peset后如何启动PE的网络组件 17楼 的解决代码,通过测试,在启动网络服务前,先修改 HKLM\SYSTEM\Setup\SystemSetupInProgress 的键值为 0 ,接着就可以成功开启 netprofm;也就是说,netprofm 服务启动前,会先检查 SystemSetupInProgress 的键值REGI HKLM\SYSTEM\Setup\SystemSetupInProgress=#0
serv netprofm复制代码
借助二进制编辑软件,可以看到 netprofmsvc.dll 中的 SystemSetupInProgress 字符串
netprofmsvc.dll中的字符串.png (43.92 KB, 下载次数: 223)
下载附件
2022-8-20 13:01 上传
———————————————————————————————————————————————————
延伸 -- 这个键值在系统中发挥什么作用呢?
搜索关于 SystemSetupInProgress 键值的资料,找到一篇发表于 2012年的文章 玩弄PE,让你的WinPE也穿上华丽的外衣 文章已贴在 2 楼,文章开篇提到Windows 如果是正常启动,Winlogon 启动后先初始化一些全局变量,接着检测 HKEY_LOCAL_MACHINE\SYSTEM\Setup 下的 SystemSetupInProgress 是否为 0,如果 SystemSetupInProgress = 0,则初始化系统服务后调用 MSgina.DLL 登录 XP;如果 SystemSetupInProgress = 1,则在启动系统服务 SamSs 时告诉它不要管 SAM 数据库,启动一些必要的服务后,比如 Services,lsass,然后就启动 HKEY_LOCAL_MACHINE\SYSTEM\Setup 下由 CmdLine 指定的程序,等待程序结束,重启或者关机。复制代码我们常见的,基于pecmd的PE,其启动接管工作就是由注册表 HKEY_LOCAL_MACHINE\SYSTEM\Setup 位置的 CmdLine 指定程序开始的
HKEY_LOCAL_MACHINE\SYSTEM\Setup
"CmdLine"="pecmd.exe Main %SystemRoot%\\System32\\pecmd.ini"复制代码文章还提到
每当应用程序要求合适的 dll 时,系统会调用 SXS.dll ,要求它调用指定 dll ,此时 SXS.dll 会先用 FusionpAreWeInOSSetupMode 函数判断 SystemSetupInProgress 是否为 0,若键值为 0,它会在 %SystemRoot%\WinSxS 文件夹中寻找,当有多个相同文件时,它就查看 C:\Windows\WinSxS\Manifests ,以 C:\Windows\WinSxS\Policies 中的规则来调用相应的文件。复制代码总的来说,正常系统的 SystemSetupInProgress = 0,PE的 SystemSetupInProgress = 1;要避免系统对 SystemSetupInProgress 的检测,要么临时修改 SystemSetupInProgress 的值,随后恢复;
要么就修改相关 dll / exe 文件中的 SystemSetupInProgress 字符串,如 SystemSetupInProgress ==> SystemSetupInProgrest,然后在 SYSTEM\Setup 下比照着 SystemSetupInProgress, 新建一个名称为 SystemSetupInProgrest 的 REG_DWORD 类型值 ,设为 0。以此作为判断欺骗,原 SystemSetupInProgress 不动,避免引起其他错误
相关搜索文章:
玩弄PE,让你的WinPE也穿上华丽的外衣
Check if program is running in a PE ?
=================================================================
2. Win8PE开始菜单右侧显示“程序”菜单修改
做个备忘,想修改开始菜单,却忘记了怎么改,搜索才发现,自己曾跟帖回复过别人 Win8PE开始菜单右侧显示“所有程序”或“程序”菜单修改
1.在 pecmd.ini 加入以下内容
REGI HKU\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowRecordedTV=#2
REGI ~HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{1A6FDBA2-F42D-4358-A798-B74D745926C5}=%%USERPROFILE%%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs复制代码2.清空路径 Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\ 下的文件及文件夹
3.打包测试(以原帖子两个图为例)
Win8PE开始菜单右侧程序.png (13.64 KB, 下载次数: 232)
下载附件
2022-8-19 11:31 上传
修改图.png (46.62 KB, 下载次数: 195)
下载附件
2022-8-19 11:33 上传
注意!!!:如果仅加入
REGI HKU\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowRecordedTV=#2
REGI ~HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{1A6FDBA2-F42D-4358-A798-B74D745926C5}=%%USERPROFILE%%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs复制代码且路径 Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\ 下存在 Programs 文件夹,就会是右侧的效果
=================================================================
3. 系统属性显示
论坛搜索到 pe系统属性里怎么显示的CPU频率和内存容量 ,根据 4楼 nttwqz 坛友的跟帖内容,补充相关文件
上传一个Win8PE的 system32/webm/Repository 文件夹打包,解开大概 2.8MB,别人大概可能或许能用吧
系统属性显示实际信息所需文件
system32/webm/Repository/
cimwin32.dll
esscli.dll
fastprox.dll
repdrvfs.dll
wbemcore.dll
wbemess.dll
wbemprox.dll
wbemsvc.dll
WmiPrvSD.dll
WmiPrvSE.exe
WMIsvc.dll
wmiutils.dll
其中Repository文件夹可以做到最小化,具体的做法不清楚,图省事直接用 boot.wim 的
systemcpl.dll
framedynos.dll
ncobjapi.dll复制代码
Repository.rar
(456.41 KB, 下载次数: 31)
2022-8-18 16:34 上传
点击文件名下载附件
Repository 文件夹打包下载积分: 无忧币 -2