|
本帖最后由 hhh333 于 2019-7-14 17:56 编辑
一、 注册表
1、控制及类
pe-sys\ControlSet001\Control\Print
pe-sys\ControlSet001\Control\Class\{1ed2bbf9-11f0-4084-b21f-ad83a8e6dcdc}
pe-sys\ControlSet001\Control\Class\{4658ee7e-f050-11d1-b6bd-00c04fa372a7}
pe-sys\ControlSet001\Control\Class\{49ce6ac8-6f86-11d2-b1e5-0080c72e74a2}
pe-sys\ControlSet001\Control\Class\{4d36e979-e325-11ce-bfc1-08002be10318}
pe-sys\ControlSet001\Control\Class\{c30ecea0-11ef-4ef9-b02e-6af81e6e65c0}
pe-sys\ControlSet001\Control\Class\{c7bc9b22-21f0-4f0d-9bb6-66c229b8cd33}
2、服务
pe-sys\ControlSet001\Services\Spooler
pe-sys\ControlSet001\Services\usbprint(注意,如果组件外置,这一项不要,系统注册表中有的话也要删除)
3、usbprint.inf安装包数据库记录(这一步不是必须)
用RegWorkshop在pe-sys\DriverDatabase位置查找usbprint.inf再导出备用
以上三项均从INSTALL.WIM的SYSTEM中提取。
二、 文件列表
可以分成三部分
1、 设备与打印机
Windows
│ splwow64.exe
│
├─inf
│ c_pnpprinters.inf
│ c_printer.inf
│ PrintQueue.inf
│ printupg.inf
│ usbprint.inf
│
├─PrintDialog(注:整个目录,但似乎没什么用)
│
└─System32
│ AppMon.dll
│ bidispl.dll
│ compstui.dll
│ DafPrintProvider.dll
│ defaultdevicemanager.dll
│ defaultprinterprovider.dll
│ DevDispItemProvider.dll
│ DeveloperOptionsSettingsHandlers.dll
│ deviceassociation.dll
│ DeviceCenter.dll
│ DeviceDisplayStatusManager.dll
│ DeviceDriverRetrievalClient.dll
│ DeviceEject.exe
│ DeviceElementSource.dll
│ DeviceEnroller.exe
│ DeviceMetadataRetrievalClient.dll
│ DevicePairing.dll
│ DevicePairingFolder.dll
│ DevicePairingProxy.dll
│ DevicePairingWizard.exe
│ deviceregistration.dll
│ DeviceSetupManager.dll
│ DeviceSetupManagerAPI.dll
│ DeviceSetupStatusProvider.dll
│ DevicesFlowBroker.dll
│ DeviceUxRes.dll
│ devinv.dll
│ DevPropMgr.dll
│ DevQueryBroker.dll
│ efswrt.dll
│ FaxPrinterInstaller.dll
│ FdDevQuery.dll
│ fdPnp.dll
│ fdprint.dll
│ fdWNet.dll
│ fdWSD.dll
│ findnetprinters.dll
│ fundisc.dll
│ fxsapi.dll
│ FXSMON.dll
│ FXSRESM.dll
│ gpprnext.dll
│ hgprint.dll
│ icm32.dll
│ icmui.dll
│ inetpp.dll
│ inetppui.dll
│ IPPMon.dll
│ localspl.dll
│ localui.dll
│ mgmtapi.dll
│ newdev.exe
│ ntprint.dll
│ ntprint.exe
│ OpcServices.dll
│ pcl.sep
│ print.exe
│ PrintBrmUi.exe
│ PrintDialogHost.exe
│ PrintDialogs.dll
│ printfilterpipelineprxy.dll
│ printfilterpipelinesvc.exe
│ PrintIsolationHost.exe
│ PrintIsolationProxy.dll
│ printmanagement.msc
│ PrintPlatformConfig.dll
│ PrintRenderAPIHost.DLL
│ printui.dll
│ printui.exe
│ PrintWSDAHost.dll
│ prncache.dll
│ prnfldr.dll
│ prnntfy.dll
│ prntvpt.dll
│ pscript.sep
│ puiapi.dll
│ puiobj.dll
│ rasadhlp.dll
│ RepCurUser.cmd
│ ReSpooler.cmd
│ serialui.dll
│ spoolss.dll
│ spoolsv.exe
│ srclient.dll
│ srcore.dll
│ sysprint.sep
│ sysprtj.sep
│ tcpmon.ini
│ umb.dll
│ usbmon.dll
│ webservices.dll
│ win32spl.dll
│ Windows.Devices.Printers.dll
│ Windows.Devices.Printers.Extensions.dll
│ Windows.Graphics.dll
│ Windows.Graphics.Printing.3D.dll
│ Windows.Graphics.Printing.dll
│ Windows.Internal.Shell.Broker.dll
│ WLIDNSP.DLL
│ WlS0WndH.dll
│ WSDApi.dll
│ WSDMon.dll(1903没有了)
│ wsdprintproxy.dll
│ WSDScanProxy.dll
│ XpsDocumentTargetPrint.dll
│ XpsFilt.dll
│ XpsGdiConverter.dll
│ XpsPrint.dll
│ XpsRasterService.dll
│ XPSServiceS.DLL
│ XPSSHHDR.dll
│ xwizard.exe
│ xwizards.dll
│ xwtpdui.dll
│ xwtpw32.dll
│
├─CatRoot
│ └─{F750E6C3-38EE-11D1-85E5-00C04FC295EE}(注:含Print字符的cat文件,其中~zh-cn类型的都可以不要)
│
├─drivers
│ usbprint.sys
│
├─driverstore
│ ├─en-US
│ │ c_dot4print.inf_loc
│ │ c_pnpprinters.inf_loc
│ │ c_printer.inf_loc
│ │ c_receiptprinter.inf_loc
│ │
│ ├─FileRepository
│ │ ├─c_dot4print.inf_x86_3a482d7106e67af5
│ │ │ c_dot4print.inf
│ │ │
│ │ ├─c_pnpprinters.inf_x86_332e93a45a3e656a
│ │ │ c_pnpprinters.inf
│ │ │
│ │ ├─c_printer.inf_x86_e6ba9e11e6380557
│ │ │ c_printer.inf
│ │ │
│ │ ├─c_receiptprinter.inf_x86_f0322e57fec0dc81
│ │ │ c_receiptprinter.inf
│ │ │
│ │ ├─printqueue.inf_x86_5599cddb064d37cf
│ │ │ printqueue.inf
│ │ │
│ │ └─usbprint.inf_x86_08d44a3fd742371d
│ │ usbprint.inf
│ │ usbprint.sys
│ │
│ └─zh-CN
│ bthprint.inf_loc
│ PrintQueue.inf_loc
│ usbprint.inf_loc
│
├─spool(整个目录)
│
└─zh-CN(下面对应的文件)
2、 基本驱动
Windows
├─INF
│ ntprint.inf
│ ntprint4.inf
│ tsprint.inf
│ wsdprint.inf
│
└─System32
├─catroot
│ └─{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
│ ntprint.cat
│ ntprint4.cat
│
└─DriverStore
├─en-US
│ ntprint4.inf_loc
├─FileRepository
│ ├─ntprint.inf_x86_ab738c05d09b470b
│ ├─ntprint4.inf_x86_9d6305e59342bba1
│ ├─tsprint.inf_x86_af7e87be969e4e2c
│ └─wsdprint.inf_x86_69b253d182b5dd8c
└─zh-CN
ntprint.inf_loc
tsprint.inf_loc
WSDPrint.inf_loc
3、 系统集成驱动
Windows
└─System32
├─CatRoot
│ └─{F750E6C3-38EE-11D1-85E5-00C04FC295EE}中PRN开头的数据
└─DriverStore
└─FileRepository下以PRN开头的目录
三、 处理
1、 注册表导入
把上述三项注册表导入PE的system中。
2、 spoolsv.exe的破解
因为HKEY_LOCAL_MACHINE\SYSTEM\Setup\SystemSetupInProgress=0打印才能开启,但影响装显卡等其他驱动。用二进制编辑器打开spoolsv.exe,搜索Unicode编码SystemSetupInProgress,这个串随便改动其中的任何一个字母就行。(18362似乎找不到也不需要破解)
也可以用PECMD的命令PUTF %Windir%\System32\spoolsv.exe,0x2D0C,0x54来修改的一个字母,其中偏移位置先找出来。
3、 安装的核心命令:
解压上述文件到系统中
ntprint.exe
net start spooler
PnPutil.exe -i -a "%Windir%\inf\usbprint.inf”
注意,如果数据库中没登记,可以直接PECMD脚本安装:FORX @%Windir%\System32\DriverStore\FileRepository\usbprint.inf*,inf,1,exec =*drvload.exe "%inf%\usbprint.inf"
如果你的打印机系统中已经集成,则可以直接使用了,如果没有可以自备驱动到设备管理中安装,或者可以安装网络共享的打印机,因为组件已经安装好了。
以上文件列表及方法以16299为蓝本。近期看18362去掉了好多系统自带驱动,如我的HPM1005一体机就没有自带驱动了。
|
评分
-
查看全部评分
|