|
基本原理来自于“primo-io模式wes7x64-ramos[ms双启动镜像]”,http://user.qzone.qq.com/1543764927/blog/1402486319
与primo相比,SoftPerfect生成内存盘明显要迟,在系统将part.img作为系统盘时,主体盘还未建立,此时"\windows\system32"不能直接链接到主体盘,需要一个中转目录,该中转目录的内容应随着附体而改变,如"c:\sys32"。
附体前:系统文件来自于系统盘
┌────────────────┬────────────────┐
part.img系统盘 此时"C"为系统盘
├─────────────────────────────────┤
\windows\system32 --> \sys32 (实体目录)
├─────────────────────────────────┤
\windows\SysWOW64 --> \WOW64 (实体目录)
└─────────────────────────────────┘
附体后:系统文件来自于主体盘
┌────────────────┬────────────────┬──────────────────────┐
part.img系统盘 主体盘附体"C"盘 SoftPerfect主体盘
├────────────────────────────────────────────────────────┤
\windows\system32 --> \sys32 (junction) --> \windows\system32
├────────────────────────────────────────────────────────┤
\windows\SysWOW64 --> \WOW64 (junction) --> \windows\SysWOW64
└────────────────────────────────────────────────────────┘
1、安装驱动并配置内存盘:
boot.wim:在friend8179共享的native文件列表基础上补足以下文件:
\Windows\System32\CodeIntegrity\driver.stl
\Windows\System32\winload.exe
SoftPerfect内存盘://io模式,盘符为"b",克隆附体系统盘"c"
├─users
├─ProgramData
├─Program Files
├─Program Files (x86)
├─WOW64(junction到"c:\windows\sysWOW64",指向主体盘)
├─sys32(junction到"c:\windows\system32",指向主体盘)
└─windows
│win32k.sys(修改),所有实体文件和目录
└─system23(junction到"w:\windows\system23",指向系统盘,session相关文件需要放置在系统盘上,否则f4蓝屏)
part.img内存盘://大小64M就够了,盘符为"c",克隆后盘符为"w"
├─WOW64(ntdll.dll,缺少无法运行32位程序)
├─sys32
│ntdll.dll,apisetschema.dll,smss.exe(修改)
├─CodeIntegrity目录(包括bootcat.cache)
└─drivers(加载win32k.sys之前的驱动:"start=1"以及一些"start=3")
└─windows
├─fonts(junction到"b:\windows\fonts")
├─inf(junction到"b:\windows\inf")
├─system32(junction到"c:\sys32",附体前指向系统盘,附体后指向主体盘)
├─SysWOW64(junction到"c:\WOW64",附体前指向系统盘,附体后指向主体盘)
└─system23(session启动所需文件)
2、注册表设置://bat文件
rem 克隆附体"c"
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v C: /d \??\B: /f >nul 2>nul
rem 克隆系统盘为"w"
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v W: /d \Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750} /f >nul 2>nul
rem 非winpe方式启动,fbwf需要如下修改配置
reg add hklm\system\ControlSet001\Services\Fbwf /v EnabledOnAllSkus /t REG_DWORD /d 1 /f >nul 2>nul
3、使用sdi工具,将img文件放入到sdi文件part区。
sdimgr wes7x64.sdi /new
sdimgr wes7x64.sdi /import:part,0,part.img
4、用winhex修改:
wes7x64.sdi偏移0x440处修改为"57494d"(字符"WIM"),0x450处4个字节=0x410处4个字节+0x418处4个字节,注意低位在前。
修改smss.exe,按"Unicode"方式搜寻字符"\system32",偏移0x3e7a处,修改为"System23".
修改win32k.sys,按"Unicode"方式搜寻字符"\system32";偏移0x2b012a,修改为"System23"
5、启用testsigning模式需要使用"dseo13b.exe"处理win32k.sys及其它相关驱动的数字签名。
其它:
1、需要注意驱动文件的更新需要牵涉到3个镜像文件:boot.wim、sdi[part区中的part.img]、SoftPerfect内存盘。
2、system文件的更新,有效位置在boot.wim文件中。
3、主体盘也可以使用其它的ramdisk驱动,如:imdisk、QSoft RAMDisk。需要注意的是:"start=1",相应的驱动文件需要位于硬盘上。
|
|