無盤工作站原理分析

無盤系統就是用戶使用的客戶端機器沒有硬盤 客戶端向硬盤讀寫的內容均是通過網路從服務器獲取 從而減少人力維護成本。而服務器更改配置和更新客戶端的配置與硬盤中的內容,也只需要更改服務器上的鏡像文件,提升維護效率。

由於我沒接觸過無盤的具體底層開發 以下只是我對無盤的猜測理解

1 無盤的啓動

有硬盤的客戶機 從機器上電後,啓動BIOS,開始BIOS自檢。通過自檢後,bios找到硬盤上的主引導記錄MBR.

MBR開始讀取硬盤分區表DPT,找到活動分區,找到活動分區中的分區引導記錄PBR,並且把控制權交給PBR.

無盤的情況下,bios會啓動PXE(Pre-boot eXecution Environmrnt 引導前執行環境),PXE會通過DHCP和TFTP下載NBP(Net Boot Programm網絡引導程序)

NBPhui HOOK INT13h將磁盤的讀寫重定向到網絡上的磁盤服務器

比如說客戶端要求讀取本地磁盤上的多少扇區上的某某內容,實際會被轉化爲網絡請求,請求讀取網絡服務器上的某某磁盤文件上的某某扇區上的某某內容

 

2 驗證過程

hook INT 13H後,客戶端會通過UDP與服務器確認身份以及配置信息和磁盤鏡像。根據不同客戶端身份,服務器會提供不同的MBR和磁盤鏡像

客戶機將服務器遠端上的MBR下載到本地,開始執行,讀取遠端服務器上的硬盤鏡像,讀取硬盤分區表DPT,找到活動分區,找到活動分區中的分區引導記錄PBR,並且把控制權交給PBR......和本機啓動電腦流程基本一致。

以上過程可以參考 winaoe 開源代碼

 

3 windows運行流程

進入到windows運行流程時候,由於windows對磁盤的讀寫不再依靠INT 13H。而我們需要將對硬盤的讀寫轉化成網絡服務器上的硬盤鏡像讀寫。所以我們至少需要hook 兩個驅動網絡和硬盤驅動。 而不同的客戶機實際上網卡和硬盤是各種各樣的,所以我們還需要hook註冊表,以便針對不同的客戶機加載不同的網卡驅動.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章