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

顶一下

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

赞一个

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

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

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

支持下,谢谢分享教程。

2012gdszlwq 发表于 2016-11-6 20:50:11

义无反顾的支持!!!!

12250279 发表于 2016-11-6 20:56:55

希望发布教程。。。。图文的那种,

tzxinqing 发表于 2016-11-30 08:55:22

支持下,谢谢分享教程。

happysong21 发表于 2016-11-30 14:30:46

支持楼主,期待实现工具!

2011xiongdeyuan 发表于 2016-11-30 18:05:21

支持下,谢谢分享教程

xman00 发表于 2019-12-23 20:34:30

回顾,感觉好高深。

wpyjp 发表于 2021-9-23 23:29:25

#在这里快速回复#很给力!

nndx2009 发表于 2021-11-17 21:59:33

技术太深奥了,小白完全不懂

nndx2009 发表于 2021-11-18 20:11:52

支持楼主。

7568168 发表于 2021-11-21 18:49:29

cntvic 发表于 2023-12-25 15:54:05

感谢分享
页: [1]
查看完整版本: IO-RAMOS的理解