PE下的SETUPLDR.BIN文件有什么作用
?
一般來(lái)說(shuō),PE光盤(pán)必須的文件列表如下
?
WINNT.SIF
I386\WINPE.IM_
I386\SETUPLDR.BIN
I386\NTDETECT.COM
而WINNT.SIF文件內(nèi)容例子如下:
- [SetupData]
- BootDevice="ramdisk(0)"
- BootPath="\I386\SYSTEM32\"
- OsLoadOptions="/minint /fastdetect /rdpath=I386\WINPE.IMG"
SETUPLDR.BIN是啟動(dòng)文件,WINNT.SIF指定啟動(dòng)參數(shù)信息比如WINPE.IMG文件位置等。SETUPLDR.BIN加載時(shí)會(huì)根據(jù)WINNT.SIF里面的內(nèi)容來(lái)啟動(dòng),WINNT.SIF文件必須放在根目錄下。
啟動(dòng)文件加載過(guò)程大致如下:
?
SETUPLDR.BIN -> NTDETECT.COM -> WINNT.SIF -> 根據(jù)OsLoadOptions 加載WINPE.IMG-->讀取WINPE.IMG里面I386\TXTSETUP.SIF.....
現(xiàn)在的PE一般都把WINNT.SIF改名為WINNT.XPE,還有I386目錄也改成WXPE。SETUPLDR.BIN名字改的就更多了,一般可以根據(jù)文件大小看得出來(lái)。
其實(shí),WINNT.SIF位置,還有I386目錄都是通過(guò)SETUPLDR.BIN來(lái)指定的,SETUPLDR.BIN可以任意位置任意文件名。比如BOOT\MTLDR.BIN。修改WINNT.SIF和I386名字的方法網(wǎng)上有許多介紹,只需要直接查找替換就行了(用十六進(jìn)制編輯器打開(kāi)SETUPLDR.BIN查找替換,長(zhǎng)度要一樣)。如果要改的比以前短,就在替換的字符后面再加十六進(jìn)制0就可以了。
這里介紹另一種比較特殊的修改方法,直接定位修改:
首先了解一下SETUPLDR.BIN的一些結(jié)構(gòu),已知:
?
0X2A432 處的winnt.sif就是啟動(dòng)后讀取的文件名
0x2A43E 處的OsLoadOptions對(duì)應(yīng)了winnt.sif里面的OsloadOptions
WINNT.SIF可以隨意改成其它字符(據(jù)我所知在以前還沒(méi)有人改超過(guò)原來(lái)的字符數(shù)9),這里介紹改超過(guò)9個(gè)字符的方法如下圖有11個(gè)字符了。0x2a43d位置的00不能改,修改后對(duì)應(yīng)的文件是BOOT\PE.SIF。
還需要更長(zhǎng)的路徑可以嗎?當(dāng)然,接著往下看??聪聢DWINNT.SIF文件的位置被改成了CSPE/KERNEL/OsLoadOptions,這樣子不需要修改其它東西了。只需把WINNT.SIF放在CSPE/KERNEL目錄中里面改名為OsLoadOptions就可以了。
聰明的人可能已經(jīng)發(fā)現(xiàn)了,沒(méi)錯(cuò),借用了OsLoadOptions這個(gè)字符串。上面由于沒(méi)有改到這個(gè)字符串的內(nèi)容,所以還是可以啟動(dòng)的,接著看下圖。改到了OsLoadOptions字符串了。
這時(shí)如果使用CSPE/KERNEL/WINNT.SIF來(lái)啟動(dòng)會(huì)失敗的,因?yàn)樽址兞耍鉀Q方法也很簡(jiǎn)單,只要把WINNT.SIF里面的OsLoadOptions改成修改后的WINNT.SIF就可以了,WINNT.SIF內(nèi)容修改后如
- [SetupData]
- BootDevice="ramdisk(0)"
- BootPath="\I386\SYSTEM32\"
- WINNT.SIF="/minint /fastdetect /rdpath=I386\WINPE.IMG"
注意:上面的WINNT.SIF后面有一個(gè)00就截?cái)嘧址竺娴淖址筒灰?,這個(gè)路徑最長(zhǎng)可以28個(gè)字符,也就是寫(xiě)到0x2A44C位置例子如下圖:
上圖WINNT.SIF位置是BOOT\CSPE1\KERNEL\WINNT.SIF,OsLoadOptions從0X2A43E開(kāi)始到00結(jié)束,所以WINNT.SIF內(nèi)容要相應(yīng)的改成如下。
- [SetupData]
- BootDevice="ramdisk(0)"
- BootPath="\I386\SYSTEM32\"
- ERNEL\WINNT.SIF="/minint /fastdetect /rdpath=I386\WINPE.IMG"
有沒(méi)有看懂了?還有像其它地方基本上也是一樣的,希望對(duì)您有用?。。。?!
上一篇:pe下怎么設(shè)置IP地址 下一篇:什么是u盤(pán)啟動(dòng)模式