2010p212937 发表于 2016-11-6 12:05:56

IO-RAMOS的理解

本帖最后由 2010p212937 于 2016-11-30 09:12 编辑

写这贴子主要是想折腾win10的 IO RAMOS,想把自己对这种方式的理解写出来,看大家有没有更方便的做法,这个方案的原作者是本论坛的2012wuzhong。


大概的思路是这样的,
1,安装一个以X盘为系统盘的系统,装好P驱软件
1,用X盘上的系统文件制作一个本机驱动的PE(主要是用到本机的注册表和本机的硬件的驱动文件和P驱的驱动)
2,此PE用到的SDI(SDI其实是一个IMG文件),此SDI文件里有system32,Program Files (x86),Program Files的文件夹软连接到你的IO盘生成的R盘上的相对应的system32,Program Files (x86),Program Files文件夹(这个R盘就是你原系统C盘上的系统全部文件)
3,PE引导驱动时,会依次顺序用到,ramdisk.sysy   fbwf.sys   wimfsf.sys,但我们的做的PE故意去掉wimfsf.sys驱动,当PE引导到fbwf.sys驱动时,他完成的操作是释放到sdi的所有文件到X盘上,但是因为没有wimfsf.sys驱动,所以PE运行到这里就结束了,但windows系统引导到启动到用户桌面的过程包括各种进程,驱动已经完成,因为X盘上的所有操作都是软连接到IO模式R盘上的对应system32,Program Files (x86),Program Files等文件夹,所以此时系统的所有读写都是在IO盘上的。


现在聊聊系统引导过程和用户登录过程,主要是和smss文件和win32.sys有关,这两个文件在系统启动过程中会去调用system32里的相关文件,所以要用winhex 去修改他们的调用路径,因为只有当P驱的驱动加载时,R盘才会出现,当PE用ramdisk驱动,生成X盘时。他就可以去软连接R盘上的system32和原系统根目录的相关文件夹,当X盘和R盘都出现时,系统启动到SMSS,注册表初始化,加载win32子系统时,就不会出现找不到文件的错误,也就是蓝屏。

有不对的地方或者你有更好的方法请跟贴,谢谢


1,从系统引导过程和用户登录过程说起,大概是下面几方面(这部分是从看雪摘录过来的)

1. CPU 初始化
2. 驱动加载(BOOT、START、AUTO)
3. 系统线程创建
4. 各类进程创建顺序


之前部分内核部分已经初始化完成,下面进入创建第一个会话创建过程*(从这里开始相关--------------------------------------------)

*NewProcess:
   +0x084 UniqueProcessId : 0x00000330 Void
   +0x174 ImageFileName   : "autochk.exe" //磁盘检查进程
**Parent:
   +0x084 UniqueProcessId : 0x00000310 Void
   +0x174 ImageFileName   : "smss.exe"
//磁盘检查进程会加载驱动
*LoadDriver:
"\SystemRoot\System32\Drivers\Cdfs.SYS"
   +0x000 Length         : 0x4a
   +0x002 MaximumLength    : 0x4c
   +0x004 Buffer         : 0xe15a0980"\SystemRoot\System32\Drivers\Cdfs.SYS"
*LoadDriver:
"\SystemRoot\System32\Drivers\diskdump.sys"
   +0x000 Length         : 0x52
   +0x002 MaximumLength    : 0x54
   +0x004 Buffer         : 0x805790ea"\SystemRoot\System32\Drivers\diskdump.sys"
*LoadDriver:
"\SystemRoot\System32\Drivers\vmscsi.sys"
   +0x000 Length         : 0x4e
   +0x002 MaximumLength    : 0x50
   +0x004 Buffer         : 0xe1695000"\SystemRoot\System32\Drivers\vmscsi.sys"

//*加载并初始化注册表*

//*加载win32子系统*
*LoadDriver:
"\SystemRoot\System32\win32k.sys"
   +0x000 Length         : 0x3e
   +0x002 MaximumLength    : 0x3e
   +0x004 Buffer         : 0xe15c68b0"\SystemRoot\System32\win32k.sys" //win32子系统内核模块


y7y007 发表于 2016-11-6 12:10:27

支持一下,期待各位继续折腾!发扬ramos

343119214 发表于 2016-11-6 12:30:09

义无反顾的支持 希望不要做一键的兼容性不好 做个手工教程

y7y007 发表于 2016-11-6 12:48:28

一键的也可继续跟进

上帝是笨蛋 发表于 2016-11-6 13:22:31

支持。

不知 发表于 2016-11-6 14:26:41

顶一下

muzb 发表于 2016-11-6 14:39:22


支持一下

古今一梦 发表于 2016-11-6 15:26:10

赞一个

wuyouman01 发表于 2016-11-6 16:11:28

楼主你好,请问支持win10 win8的metro吗?

追风 发表于 2016-11-6 18:17:07

支持下,谢谢分享教程。
页: [1] 2
查看完整版本: IO-RAMOS的理解