“江民炸彈”的介紹與清除.doc_第1頁
“江民炸彈”的介紹與清除.doc_第2頁
“江民炸彈”的介紹與清除.doc_第3頁
“江民炸彈”的介紹與清除.doc_第4頁
“江民炸彈”的介紹與清除.doc_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

“江民炸彈”的介紹與清除 2002-3-21 瀏覽次數(shù):1504次 江民炸彈是個(gè)更厲害更恐怖的惡意程序,是我見過的最狠毒的硬盤炸彈之一。為什么叫“江民”炸彈,我想大家也都知道吧?畢竟用過KV系列軟件的人有很多,如果當(dāng)年你曾中過KV殺毒軟件的邏輯炸彈,那么對(duì)這個(gè)“江 民”炸彈你也不會(huì)陌生會(huì)有熟悉的感覺哦_! 軟件解壓縮后有4個(gè)文件,一個(gè)是說明文件readme.exe,一個(gè)是制作解鎖盤用的文件,還有兩個(gè)文件就是江 民炸彈了。它們的名字分別為Jmbs.arj、JMBOS. zip,其實(shí)它們都是一個(gè)文件壓縮而成,只不過擴(kuò)展名不同而已。如果你把它們解壓會(huì)看到j(luò)mbs.exe文件,大小為1809字節(jié)。這個(gè)jmbs.exe就是江 民炸彈了。如果你不小心運(yùn)行了它,機(jī)器的硬盤將會(huì)被死鎖住,無論你用軟驅(qū)還是光驅(qū),都不能啟動(dòng)計(jì)算機(jī),硬盤和報(bào)廢了沒什么區(qū)別!如果不懂得解法,基本上就只有買硬盤了!哈哈,恭喜恭喜,可以升級(jí)了。 軟件原理:計(jì)算機(jī)在引導(dǎo)DOS系統(tǒng)時(shí)將會(huì)搜索所有邏輯盤的順序,當(dāng)DOS被引導(dǎo)時(shí),首先要去找主引導(dǎo)扇區(qū)的分區(qū)表信息,位于硬盤的零頭零柱面的第一個(gè)扇區(qū)的OBEH地址開始的地方,當(dāng)分區(qū)信息開始的地方為80H時(shí)表示是主引導(dǎo)分區(qū),其他的為擴(kuò)展分區(qū),主引導(dǎo)分區(qū)被定義為邏輯盤C盤,然后查找擴(kuò)展分區(qū)的邏輯盤,被定義為D盤,以此類推找到E,F(xiàn),G.“邏輯鎖”就是在此下手,修改了正常的主引導(dǎo)分區(qū)記錄將擴(kuò)展分區(qū)的第一個(gè)邏輯盤指向自己,DOS在啟動(dòng)時(shí)查找到第一個(gè)邏輯盤后,查找下個(gè)邏輯盤總是找到是自己,這樣一來就形成了死循環(huán),這就是使用軟驅(qū),光驅(qū),雙硬盤都不能正常啟動(dòng)的原因。實(shí)際上這“邏輯鎖”只是利用了DOS在啟動(dòng)時(shí)的一個(gè)小小缺陷,便令不少高手都束手無策。知道了“邏輯鎖”的“上鎖”原理,要解鎖也就比較容易了。 解決辦法: 方法一:把rescue.exe拷貝到一張空白的1.44MB軟盤上,插入軟驅(qū),然后運(yùn)行。顯示“OK”之類的提示信息后,你就有了一張江 民炸彈的解鎖盤,如果你發(fā)現(xiàn)里面一個(gè)文件也沒有,不要驚訝,你沒有做錯(cuò)什么,就是這個(gè)樣子的??煸囋嚢?,用這張恢復(fù)盤啟動(dòng)機(jī)子,如果出現(xiàn)unlock的字樣,那就恭喜你,成功地解鎖了!想當(dāng)年,我用這張解鎖盤給朋友解鎖,可沒少美餐啊!她們是怎么中的就不用我說了吧,嘻嘻_! 方法二:修改DOS啟動(dòng)文件 首先準(zhǔn)備一張DOS6.22的系統(tǒng)盤,帶上debug、pctools5.0、fdisk等工具。然后在一臺(tái)正常的機(jī)器上,使用你熟悉的二進(jìn)制編輯工具(debug、pctools5.0,或者是運(yùn)行在Windows下的Ultraedit都行)修改軟盤上的IO.SYS文件(修改前記住改該文件的屬性為正常),具體是在這個(gè)文件里面搜索第一個(gè)“55aa”字符串,找到以后修改為任意其他數(shù)值即可。用這張修改過的系統(tǒng)軟盤你就可以順利地帶著被鎖的硬盤啟動(dòng)了。不過這時(shí)由于該硬盤正常的分區(qū)表已經(jīng)被邏輯炸彈給惡意修改了,你無法用FDISK來刪除和修改分區(qū),而且仍無法用正常的啟動(dòng)盤啟動(dòng)系統(tǒng),這時(shí)你可以用DEBUG來手工恢復(fù)。使用DEBUG手工修復(fù)硬盤步驟如下: a:debug -a -xxxx:100 mov ax,0201 讀一個(gè)扇區(qū)的內(nèi)容 -xxxx:103 mov bx,500設(shè)置一個(gè)緩存地址 -xxxx:106 mov cx,0001 設(shè)置第一個(gè)硬盤的硬盤指針 -xxxx:109 mov dx,0080 讀零磁頭 -xxxx:10c int 13硬盤中斷 -xxxx:10e int 20 -xxxx:0110退出程序返回到指示符 -g運(yùn)行 -d500查看運(yùn)行后500地址的內(nèi)容 這時(shí)候會(huì)發(fā)現(xiàn)地址6be開始的內(nèi)容是硬盤分區(qū)的信息,發(fā)現(xiàn)此硬盤的擴(kuò)展分區(qū)指向自己,這就使DOS或Windows啟動(dòng)時(shí)查找硬盤邏輯盤進(jìn)去死循環(huán),在DEBUG指示符下用E命令修改內(nèi)存數(shù)據(jù) 具體如下: E6BE xx.0 xx.0 xx.0. . .55 AA 55 AA表示硬盤有效的標(biāo)記,不要修改,xx0表示把以前的數(shù)據(jù)“xx”改成0,再用硬盤中斷13把修改好的數(shù)據(jù)寫入硬盤就可以了,具體如下: A:debug a 100 表示修改100地址的匯編指令 -xxxx:100 mov ax,0301 寫硬盤一個(gè)扇區(qū) -xxxx: 這里直接按回車 -g 運(yùn)行 -q 退出 然后運(yùn)行FDISK/MBR(重置硬盤引導(dǎo)扇區(qū)的引導(dǎo)程序),再重新啟動(dòng)電腦就行了。 怎么樣?用這種方法處理夠簡單的吧?而且這種方法還有一個(gè)好處就是可以保住盤上的數(shù)據(jù)!如果你不需要保數(shù)據(jù)的話,還有更加簡單的處理方法: 方法三:巧設(shè)BIOS,用DM解鎖 大家知道DM軟件是不依賴于主板BIOS的硬盤識(shí)別安裝軟件(所以在不能識(shí)別大硬盤的老主板上也可用DM來安裝使用大容量硬盤)。就算在BIOS中將硬盤設(shè)為“NONE”,DM也可識(shí)別并處理硬盤。 首先你要找到和硬盤配套的DM軟件(找JS要或去網(wǎng)上蕩),然后把DM拷到一張系統(tǒng)盤上。接上被鎖硬盤,開機(jī),按住DEL鍵,進(jìn)CMOS設(shè)置,將所有IDE硬盤設(shè)為“NONE”(這是關(guān)鍵所在?。?,保存設(shè)置,重啟動(dòng),這時(shí)系統(tǒng)即可 “帶鎖”啟動(dòng)。啟動(dòng)后運(yùn)行DM,你會(huì)發(fā)現(xiàn)DM可以繞過BIOS,識(shí)別出硬盤,選中該硬盤,分區(qū)格式化,就OK了。這么簡單?不過這種方法的弱點(diǎn)是硬盤上的數(shù)據(jù)將全部丟失。 方法四:對(duì)硬盤進(jìn)行熱拔插 在加電熱拔插之前應(yīng)該先做好了一切的準(zhǔn)備,并盡可能想一下會(huì)出現(xiàn)的問題,把硬盤的電源線先給拔松了一點(diǎn),防止在熱拔插時(shí)拔不出來,那就遭了,不過也不能太松不然會(huì)找不到硬盤的,找一張軟盤啟動(dòng)盤,并插到軟驅(qū)里,加電開機(jī),看著熟悉的畫面,心中盡管有些激動(dòng),但你的手可千萬不要抖啊,不然硬盤燒掉就慘了!眼睛牢牢盯住你的顯示器,軟驅(qū)燈亮之前(就是要在DOS自舉之前并且裝入硬盤驅(qū)動(dòng)后,)按下鍵盤上的“PAUSE”!再把硬盤上的電源線的給拔掉,然后就恢復(fù)暫定,一直到DOS啟動(dòng)完成出現(xiàn)DOS提示符的時(shí)候,這時(shí)你再把電源線給插到硬盤上去,這時(shí)如果硬盤沒壞的話,就會(huì)發(fā)現(xiàn)已經(jīng)可以用磁盤分區(qū)工具FDISK命令來查看硬盤的分區(qū)表了,不過沒有這么簡單,里面的分區(qū)表已經(jīng)被邏輯炸彈給惡意修改了,只能查看不能修改也不能刪除而且一團(tuán)糟,用普通的辦法還是不能解決的,此時(shí)只有用DEBUG來手工恢復(fù)了!具體方法同方法二。不過只能修復(fù)C盤也就是主引導(dǎo)分區(qū),因?yàn)閿U(kuò)展分區(qū)已經(jīng)修改了?;謴?fù)了以后,硬盤就可以用FDISK把主引導(dǎo)分區(qū)的其它空間分成擴(kuò)展分區(qū)與邏輯盤了。一切OK! 方法五:利用分區(qū)表備份恢復(fù) 這是最簡單的方法,在平時(shí)將硬盤的分區(qū)表備份一個(gè)(沒有的話,找一個(gè)與之相同型號(hào)的硬盤的分區(qū)表也可以),萬一硬盤被邏輯炸彈干掉了,用軟盤都起不動(dòng)的話,可以在BIOS里將硬盤設(shè)為“NONE”,啟動(dòng)后,將分區(qū)表的備份恢復(fù)回去,然后將硬盤的設(shè)置改回來,從新啟動(dòng)fdisk就可以了。以上的工作,不需要找什么特別的軟件,一般的殺毒軟件,如瑞星,KV3000都可以的。還有,如果有條件,最好裝一塊硬盤保護(hù)卡,可以對(duì)付絕大部分的病毒,至少,系統(tǒng)不會(huì)被破壞出了問題,冷啟一下就可以了。像CIH這樣直接修改BIOS數(shù)據(jù)的都可以恢復(fù)。 方法六:用硬盤邏輯鎖解鎖程序 如果硬盤被鎖死的癥結(jié)根源在于DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四個(gè)模塊,其中IO1中包含有一個(gè)很關(guān)鍵的程序SysInt_I,它在啟動(dòng)中很固執(zhí),非要去讀分區(qū)表,而且不把分區(qū)表讀完誓不罷休。如果碰上分區(qū)表是循環(huán)的,它就只有死機(jī)了(通常硬盤分區(qū)表被鎖住以后,形成一個(gè)閉合的循環(huán)鏈,IO.SYS從鏈頭讀起,試圖讀取所有分區(qū)的信息,從而形成死循環(huán)。如果修改IO.SYS文件,這樣讀的第十個(gè)扇區(qū)結(jié)尾處不是55 AA,就認(rèn)為不是一個(gè)邏輯分區(qū)的主引導(dǎo)記錄,停止讀盤,跳出死循環(huán)鏈。我們用UltraEdit打開C:IO.SYS,查找“b9 01 00 cd 13”(MS Dos6.22只有一處,Win98有2處要修改),改為“b9 10 00 cd 13”。不過,這樣操作后,這樣即使硬盤分區(qū)表是完好的,啟動(dòng)后也不認(rèn)硬盤。所以修改IO.SYS以后,如果要正常訪問硬盤還要將IO.SYS恢復(fù)原狀。)。很明顯,這是DOS的脆弱性和不完備性。其實(shí)這也不能怪DOS,因?yàn)镈OS為了獲得硬盤使用權(quán),就必需讀分區(qū)表參數(shù),而且DOS還約定驅(qū)動(dòng)器號(hào)不能超過26,只不過沒有考慮到此等循環(huán)分區(qū)表情形。一句話,機(jī)子不能啟動(dòng)不過是DOS操作系統(tǒng)造成的,如果另寫一個(gè)操作系統(tǒng),或許就能啟動(dòng)機(jī)子。當(dāng)然這只是說個(gè)笑話。 明白了病因在于DOS,問題就好辦了。DOS啟動(dòng)中不是要讀硬盤分區(qū)表嗎?我不讓你讀分區(qū)表甚至連硬盤都不讓你讀,不就可以順利啟動(dòng)了。的確是這樣的,開硬盤鎖的程序?qū)崿F(xiàn)方法就是基于這個(gè)思想形成的。當(dāng)然,這只有從軟盤啟動(dòng)著手了。 我們當(dāng)然不用自己去動(dòng)手編制這樣的程序了,因?yàn)橐呀?jīng)有好心的網(wǎng)友提供了這樣的程序,以下為某網(wǎng)友編制的硬盤邏輯鎖解鎖程序,對(duì)付硬盤邏輯鎖非常有用,下載地址: 0/wenxinjy/fix-io.rar,含源代碼及目標(biāo)程序,共1020字節(jié)。 使用方法:如果你的硬盤被老王的邏輯鎖給鎖住了,把這個(gè)小工具復(fù)制到你的引導(dǎo)盤上,運(yùn)行它Modify一下,然后用它來引導(dǎo)被鎖的機(jī)器。一切OK。注意修復(fù)硬盤后Restore回來。當(dāng)然你運(yùn)行它時(shí),軟驅(qū)要打開寫保護(hù)啦。 好了,有了上面這些方法你就不用再害怕邏輯炸彈了。如果你不小心“中彈”,就試試上面這些方法吧。 再 論 制 硬 盤 邏 輯 鎖 姜卓睿 雷必武 一、序言 由于教學(xué)工作需要,本人在參看了貴刊98年第4期硬盤邏輯鎖技術(shù)研究及應(yīng)用與99年第3期解開硬盤邏輯死鎖的一種有效方法的文章之后,決定以同類方法嘗試一下,結(jié)果未獲得成功,又“苦于”沒有KV300 L+ 版,不得不自己做一個(gè)硬盤邏輯鎖。在制作過程中發(fā)現(xiàn),僅僅只做循環(huán)鏈表是不夠的,并不能鎖住硬盤。以下是本人經(jīng)過多次實(shí)驗(yàn)后,總結(jié)出的一套加鎖和解鎖的方法,(本文所述均在本機(jī)上獲得通過!)以供大家參考。硬盤邏輯鎖的原理請(qǐng)參見以上文章。 二、制作前的準(zhǔn)備: 先將本硬盤(筆者使用的是Quantum SE 3.2G硬盤,C盤2.1G,D盤1.1G)的主引導(dǎo)程序(即0磁頭0柱面1扇區(qū)的內(nèi)容)備份到軟盤中,這里是保存在軟盤0磁頭0柱面2扇區(qū)中,以便萬一做不成功時(shí),進(jìn)行恢復(fù)。 C:DOSDEBUG -a 100 mov ax,201 mov bx,200 mov cx,1 mov dx,80 int 13 ;讀硬盤0磁頭0柱面1扇區(qū)的內(nèi)容到ES:200處 mov ax,301 mov bx,200 mov cx,2 mov dx, 0 int 13 ;寫ES:200處內(nèi)容到軟盤0磁頭0柱面2扇區(qū) int 3 -g=100 ;然后制作一張“啟動(dòng)盤1” : -a 200 mov ax,201 mov bx,2000 mov cx,2 mov dx,0 int 13 ;讀軟盤0磁頭0柱面2扇區(qū)的內(nèi)容到ES:2000處 jb 200 mov ax,301 mov bx,2000 mov cx,1 mov dx,80 int 13 jmp ffff:0000 -w 200 0 0 1 ;執(zhí)行此命令之前插入上述軟盤,將這一段起引導(dǎo)作用的程序?qū)懙杰洷P的0磁頭0柱面1扇區(qū),使之成為一張?zhí)厥獾摹皢?dòng)盤1”。三、制作硬盤鎖 我們先看一看硬盤分區(qū)表的信息(下述為實(shí)例,讀者在操作中,顯示的段地址不一定是1186): C:DOSDEBUG -a100 1186:0100 mov ax,201 1186:0103 mov bx,200 1186:0106 mov cx,1 1186:0109 mov dx,80 1186:010C int 13 1186:010E int 3 1186:010F -g=100 -d 3b0 L 50 1186:03B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 起始磁頭號(hào) 起始柱面號(hào)(01的高2位并上00) 1186:03C0 01 00 06 7F BF 07 3F 00-00 00 C1 FB 3F 00 00 00 結(jié)束磁頭號(hào)、扇區(qū)號(hào)、柱面號(hào)(格式同前) 起始扇區(qū)號(hào)(01的低6位) 1186:03D0 81 08 05 7F FF 0C 00 FC-3F 00 80 1D 20 00 00 00 1186:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 1186:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA -e 3c2 02 ; 將分區(qū)類型 06 改為 02,即XENIX,該字節(jié)含義如下: 0-無效分區(qū) 1-DOS 12位FAT 2-XENIX 4-DOS 16位FAT 分區(qū)容量32M -e3d0 01 00 ;將D區(qū)的起始扇區(qū)號(hào)和柱面號(hào)改為與C區(qū)相同的起始扇區(qū)號(hào)和柱面號(hào),形成循環(huán)鏈表 -a 100 1186:0100 mov ax,301 1186:0103 -g=100 ;將改后的內(nèi)容寫入硬盤主引導(dǎo)扇區(qū) -a 100 1186:0100 mov ax,201 1186:0103 -g=100 ;再次讀出硬盤主引導(dǎo)扇區(qū)內(nèi)容 -d 3b0 L 50 1186:03B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 1186:03C0 01 00 02 7F BF 07 3F 00-00 00 C1 FB 3F 00 00 00 1186:03D0 01 00 05 7F FF 0C 00 FC-3F 00 80 1D 20 00 00 00 1186:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 1186:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ;顯示表明以上分區(qū)表內(nèi)容已改好 -q ;退出DEBUG,重新啟動(dòng)系統(tǒng),一切OK!Haha,軟盤、硬盤都不能啟動(dòng)系統(tǒng)了! 四、癥狀說明: 1只修改C盤的分區(qū)類型,即將分區(qū)類型06改為02后,硬盤不能啟動(dòng),A盤可以啟動(dòng)。 2只做循環(huán)鏈表,Win95/98不能啟動(dòng),但DOS 6.22可正常啟動(dòng),啟動(dòng)后將有相同容量、相同數(shù)據(jù)的24個(gè)邏輯驅(qū)動(dòng)器(從C盤到Z盤),啟動(dòng)時(shí)提示如下錯(cuò)誤信息: Warning:Logical drives past Z exist and will be ignored 筆者在多年前就做過循環(huán)分區(qū)鏈表,它對(duì)DOS 6.22 的啟動(dòng)可以說無效,但對(duì)付DOS 6.22 的FDISK命令很管用,一運(yùn)行就“死機(jī)”(同 Win95/98 啟動(dòng)一樣,因循環(huán)檢查分區(qū)鏈表而呈死機(jī)狀)。 3以上兩條都修改后,C盤、A盤的DOS 6.22 都不能啟動(dòng),但可用 A 盤的DOS 3.3啟動(dòng),啟動(dòng)后可以運(yùn)行FDISK命令,也可用DEBUG等工具修改分區(qū)表(無需顧及C盤容量是否超過33M)。 由此可見,硬盤邏輯鎖只針對(duì)DOS高版本有效,對(duì)DOS 3.3根本不起作用,循環(huán)鏈表對(duì)Win95/98 的DOS 即已經(jīng)有效。 五、解開硬盤鎖的方法: 采用貴刊98年第4期硬盤邏輯鎖技術(shù)研究及應(yīng)用文中所述修改CMOS的方法也無法啟動(dòng)系統(tǒng),也就無法解開此邏輯鎖,需在另一臺(tái)機(jī)器上制作一張“啟動(dòng)盤2”,具體過程如下: C:DOSDEBUG -a 100 mov ax,201 mov bx,2000 mov cx,1 mov dx,80 int 13 mov al,06 ; C的分區(qū)類型改為06 mov 21c2,al mov al,0 mov 21d2,al ; D的分區(qū)類型改為0 ,屏蔽其它分區(qū) mov 21e2,al ; E的分區(qū)類型改為0 目的在于破壞循環(huán)鏈 mov 21f2,al ; F的分區(qū)類型改為0 mov ax,301 mov bx,2000 mov cx,1 mov dx,80 int 13 jmp ffff:0000 -w 100 0 0 1 ;將本段程序?qū)懙杰洷P的邏輯0扇區(qū),使之成為引導(dǎo)程序 -q 用作好的“啟動(dòng)盤2”啟動(dòng)死鎖機(jī)器,然后取出該“啟動(dòng)盤2”,再次開機(jī)切換到DOS 6.22系統(tǒng),此時(shí)用 Norton 的 DISKEDIT.EXE 等工具或直接用 DEBUG 即可修復(fù)分區(qū)表。 如果按照前面講的將原主引導(dǎo)備份到軟盤物理第二扇,也可以用“啟動(dòng)盤1”恢復(fù)主引導(dǎo)扇區(qū)的內(nèi)容,一啟動(dòng)即告成功恢復(fù)。 通訊地址: 430062 湖北大學(xué)經(jīng)濟(jì)學(xué)院 雷必武 E-mail: Or 對(duì)再論制作硬盤邏輯鎖的補(bǔ)充 讀了2000年第三期上再論制作硬盤邏輯鎖一文,不禁使所我對(duì)硬盤邏輯鎖問題再次產(chǎn)生了興趣,于是對(duì)此進(jìn)行了一些思考和研究。筆者曾在99年第三期上發(fā)表了一篇解開硬盤邏輯死鎖的一種有效方法,文中提到了制作循環(huán)分區(qū)表可以鎖住硬盤,后來一位遠(yuǎn)方的讀者朋友打電話告訴我循環(huán)分區(qū)表沒有鎖住他的硬盤,WIN95仍可以正常啟動(dòng)。我不信,于是就在自己的機(jī)子上再次做試驗(yàn),發(fā)現(xiàn)是可以鎖住的,只要加上循環(huán)分區(qū)表后,WIN95和DOS6.22都不能啟動(dòng)了。但一位素不相識(shí)的朋友不遠(yuǎn)千里打來電話,說的應(yīng)該也是事實(shí)。我于是又到系上機(jī)房找新買的機(jī)子做同樣的實(shí)驗(yàn),結(jié)果令我大吃一驚,確實(shí)有機(jī)子用循環(huán)分區(qū)表鎖不住硬盤。對(duì)那些用循環(huán)分區(qū)表鎖不住的硬盤,到底用什么招可以將其鎖住?我一時(shí)也沒有更好的辦法,甚至猜測是不是新的機(jī)型已經(jīng)不可能再被邏輯鎖鎖住了。由于我有其它一些事很忙,很久也沒有再對(duì)這個(gè)問題進(jìn)行思考。最近偶然看到這篇再論制作硬盤邏輯鎖,立刻再次引起了我對(duì)硬盤邏輯鎖強(qiáng)烈的興趣,于是又對(duì)硬盤鎖進(jìn)行研究和試驗(yàn)?,F(xiàn)將我的一些思考和試驗(yàn)結(jié)果告訴那些對(duì)硬盤鎖很感興趣的朋友們。以前的文章提到制作硬盤鎖,只要加循環(huán)分區(qū)表就行了。再論制作硬盤邏輯鎖一文提出了應(yīng)該還要修改C盤的分區(qū)標(biāo)志,如將硬盤0柱面0磁頭1扇區(qū)位于1C2H處表示FAT16的0BH修改為DOS和WINDOWS都不能識(shí)別的XENIX分區(qū)標(biāo)志02H。這的確是出了一個(gè)新招,對(duì)原來的硬盤鎖是一個(gè)改進(jìn)。該文還列舉了只修改C盤分區(qū)標(biāo)志、只做循環(huán)分區(qū)表和既修改分區(qū)標(biāo)志又做循環(huán)分區(qū)表三種情況下機(jī)子啟動(dòng)時(shí)的癥狀。最后的結(jié)論是只有既修改分區(qū)標(biāo)志又做循環(huán)分區(qū)表才能真正鎖住硬盤。這種情況不盡全面。下面列舉我所看到的一些現(xiàn)象。我的機(jī)子有兩個(gè)硬盤,第一個(gè)硬盤裝的是WIN95,第二個(gè)硬盤又獨(dú)立裝了一套WIN98。在WIN95下只制作循環(huán)分區(qū)表,DOS6.22和WIN95都不能再啟動(dòng),啟動(dòng)后出現(xiàn)“Warning: Logical drivers past Z existed and will be ignored”就死機(jī)了??墒钱?dāng)我在CMOS中去掉第一硬盤,只留裝WIN98的第二硬盤,同樣在該盤上只制作循環(huán)分區(qū)表,發(fā)現(xiàn)用軟盤的DOS6.22不能啟動(dòng),但WIN98卻可以啟動(dòng),只是啟動(dòng)后有26個(gè)盤符,但都是原來C盤的內(nèi)容。是不是凡WIN95就不能啟動(dòng)而WIN98就能啟動(dòng)呢?我發(fā)現(xiàn)也不是這樣的。我有幸一個(gè)公共機(jī)房不同機(jī)子上試驗(yàn),發(fā)現(xiàn)有的裝WIN98的機(jī)子可以啟動(dòng),有的又不能啟動(dòng);有的裝WIN95的機(jī)子能啟動(dòng),有的還是不能啟動(dòng)。而且更怪的是,同樣是DOS6.22,在有的機(jī)子上可以軟盤啟動(dòng),在有的機(jī)子上又出現(xiàn)跟我的機(jī)子用DOS啟動(dòng)一樣的死機(jī)癥狀。通過這諸多的不同現(xiàn)象,說明只制作循環(huán)分區(qū)表,對(duì)鎖住硬盤不一定有效。至于為什么對(duì)有的機(jī)子有效,而對(duì)有的機(jī)子無效,我猜測與操作系統(tǒng)和BIOS都有關(guān)系。不能啟動(dòng)的機(jī)子就不說了,凡能啟動(dòng)的機(jī)子,啟動(dòng)后無一例外有26個(gè)盤符,且各個(gè)盤都與原C盤一般大小,內(nèi)容也完全一樣。這倒很好解釋,因?yàn)橛醒h(huán)分區(qū)表存在,操作系統(tǒng)不可能讀到真正的D盤的內(nèi)容,每個(gè)邏輯盤在物理上讀到的都是原C盤的分區(qū)表和實(shí)際內(nèi)容。但不管是在我的第一硬盤和第二硬盤上,還是在我所有試驗(yàn)過的多臺(tái)不同機(jī)子上,都發(fā)現(xiàn)只要在循環(huán)分區(qū)表的基礎(chǔ)上再修改C盤的分區(qū)標(biāo)志,無一例外,不管是DOS6.22,還是WIN9X都不能再啟動(dòng)了。這說明,循環(huán)分區(qū)表加上修改C盤分區(qū)標(biāo)志,確實(shí)可以鎖住目前任何一個(gè)硬盤(安裝DOS或WINDOWS系統(tǒng)的)。如何解釋這一點(diǎn)呢?從前面那些加了循環(huán)分區(qū)表卻可以啟動(dòng)的機(jī)子來看,啟動(dòng)后的機(jī)子無一例外都是讀的第一個(gè)分區(qū)C盤的分區(qū)信息,說明C盤分區(qū)始終是讀成功了的,且C盤是一個(gè)有效的邏輯盤。而這里關(guān)鍵是將C盤分區(qū)標(biāo)志修改成了操作系統(tǒng)所不認(rèn)識(shí)的了。如何破解應(yīng)硬盤鎖呢?筆者這次也找來98年第3期上的硬盤邏輯死鎖技術(shù)研究及應(yīng)用細(xì)細(xì)讀了,并且也在不同機(jī)子上修改CMOS中硬盤參數(shù)的方法來試圖解鎖,都沒有成功。我分析原因如下:修改CMOS中硬盤參數(shù),確實(shí)是可以使D盤對(duì)應(yīng)的柱面、扇區(qū)和磁頭號(hào)發(fā)生改變,但我們制作的硬盤鎖中,硬盤主引導(dǎo)扇區(qū)中D盤的起始物理柱面、扇區(qū)和磁頭號(hào)已經(jīng)被改寫為與原C盤一樣的參數(shù)了,因此讀D盤的分區(qū)參數(shù)時(shí)實(shí)際上還是讀的主引導(dǎo)扇區(qū)(主引導(dǎo)扇區(qū)的物理位置始終不變),并未去真正的D盤物理位置上讀,因此修改CMOS中硬盤參數(shù)對(duì)解硬盤鎖沒有用處。當(dāng)然,該文主要是制作一個(gè)帶密碼的邏輯鎖,重點(diǎn)不在解鎖,因此這里也不再多討論它了。到底如何解鎖呢?對(duì)一個(gè)分區(qū)表沒有做任何備份的機(jī)子來說,最簡單和最直接的方法是破除循環(huán)分區(qū)鏈就一定可以成功。筆者那篇在99年3期上發(fā)表的文章解開硬盤邏輯死鎖的一種有效方法當(dāng)然是可以的,但整個(gè)編制程序的原理和過程都顯得復(fù)雜,這篇再論制作硬盤邏輯鎖中“啟動(dòng)盤2”所采用的方法,不失為一種極簡單的解決方法。但該方法還可以簡化。該方法制作的啟動(dòng)軟盤首先讀出硬盤主引導(dǎo)扇區(qū),然后修改C盤分區(qū)標(biāo)志為06H,然后修改D盤、E盤、F盤的分區(qū)標(biāo)志為DOS不認(rèn)識(shí)的0H,并將修改后的結(jié)果寫回硬盤主引導(dǎo)扇區(qū),最后重新用DOS6.22啟動(dòng)機(jī)子就可以了。該方法中修改C盤分區(qū)標(biāo)志是不必要的。因?yàn)槠茐挠脖P鎖關(guān)鍵是破壞分區(qū)鏈表,只要修改D盤的分區(qū)標(biāo)志為DOS所不認(rèn)識(shí)的,就不會(huì)再往下再繼續(xù)讀分區(qū)表了,從而也就不會(huì)在讀分區(qū)表時(shí)形成循環(huán)分區(qū)了。修改E盤、F盤分區(qū)標(biāo)志也不必要,因?yàn)楝F(xiàn)在凡是安裝DOS或WINDOWS的機(jī)子,分區(qū)表實(shí)際上都只占用了兩欄,也就是只有C盤和D盤的分區(qū)信息,至于E盤的分區(qū)信息,卻存放在D盤的物理起始柱面的0磁頭1扇區(qū)中,主引導(dǎo)扇區(qū)中根本就沒有,因此也就不用修改了。該文修改C盤分區(qū)標(biāo)志為DOS6.22認(rèn)識(shí)的06H,主要是想啟動(dòng)后能C盤可以使用,其實(shí)如果原來C盤使用的是FAT32文件系統(tǒng),則其分區(qū)標(biāo)志本來為0BH,現(xiàn)在即使將其修改為06H再用軟盤DOS6.22啟動(dòng),仍然無法使用C盤的,當(dāng)敲入C盤盤符時(shí),就會(huì)出現(xiàn)提示:Not ready reading driver C。因此此步實(shí)在不必要。要破壞循環(huán)分區(qū)表,只要DOS系統(tǒng)不認(rèn)識(shí)D盤分區(qū)標(biāo)志,循環(huán)分區(qū)自然就不起任何作用,機(jī)子當(dāng)然也就可以啟動(dòng)了,不過得用軟盤上的DOS啟動(dòng)。因此只需要在另一臺(tái)機(jī)子上制作一張啟動(dòng)盤就可以了(如果你只有一臺(tái)機(jī)子,只要在CMOS中掛起硬盤,然后從軟盤啟動(dòng),利用debug可以進(jìn)行同樣制作),方法如下:C:DOSDEBUG-a100mov ax, 201mov bx,2000 ;此處地址不能低于2000H。mov cx,1mov dx,80int 13mov al,02 ;將D盤分區(qū)標(biāo)志修改為DOS所不認(rèn)識(shí)的XENIX分區(qū)mov 21D2,almov ax,301int 13jmp ffff:0000 ; 調(diào)轉(zhuǎn)重新啟動(dòng)機(jī)子w 100 0 0 1 ; 將該段程序?qū)懭胲洷P引導(dǎo)扇區(qū)-q有一點(diǎn)需要解釋一下,修改硬盤主引導(dǎo)扇區(qū)的內(nèi)容是讀入內(nèi)存2000H后進(jìn)行操作的。其實(shí)這個(gè)2000H并不是唯一的,只要高于2000H且在內(nèi)存范圍內(nèi)都可以,為什么要高于2000H呢?這是因?yàn)橛迷撥洷P啟動(dòng)機(jī)子時(shí),這段程序是被加載于0000:7C00處執(zhí)行的,此時(shí)它的段地址為0000,而0000:0000到0000:1FFF這段恰好存放的是1024個(gè)中斷向量,如果將硬盤主引導(dǎo)扇區(qū)讀入這段內(nèi)存,將完全破壞中斷向量,使緊跟后面的INT 13無法執(zhí)行,機(jī)子無法啟動(dòng)。用該軟盤啟動(dòng)機(jī)子的執(zhí)行過程是這樣的:軟盤引導(dǎo)扇區(qū)的內(nèi)容首先被讀入內(nèi)存0000:7C00處,然后開始執(zhí)行該段程序,即讀出硬盤主引導(dǎo)扇區(qū)內(nèi)容并修改D盤分區(qū)標(biāo)志為DOS不認(rèn)識(shí)的XENIX分區(qū)標(biāo)志02H,然后寫回硬盤主引導(dǎo)扇區(qū),并跳轉(zhuǎn)到內(nèi)存ffff:0000處執(zhí)行,使機(jī)子重新啟動(dòng)。這時(shí)只需要拔出該軟盤并插入一張DOS6.22的啟動(dòng)盤就可以啟動(dòng)機(jī)子。機(jī)子啟動(dòng)后,通常硬盤的邏輯盤都不認(rèn)識(shí),但使用軟盤上的DEBUG或DISKEDIT工具都可以讀出硬盤主引導(dǎo)扇區(qū)內(nèi)容,然后加以修改,完成后重新啟動(dòng)機(jī)子就可以認(rèn)識(shí)硬盤了。上述所有過程筆者都已在不同機(jī)子上做過試驗(yàn),相信應(yīng)該沒有任何問題的?,F(xiàn)在,從再論制作硬盤邏輯鎖和上面的分析及簡化的解決方法來看,曾經(jīng)令人恐懼的硬盤鎖已經(jīng)變得可以采用極其簡單的方法來解決了。這不能不說是大家長期共同研究討論的結(jié)果 硬盤邏輯鎖原理及解決不知道你是否曾碰到過bios里面能夠檢測到硬盤,但是你從軟盤和硬盤都啟動(dòng)不了計(jì)算機(jī)的情形?也許這時(shí)候你就會(huì)認(rèn)為是硬盤壞掉了,可實(shí)際上,很有可能是你的硬盤中了邏輯鎖。 硬盤邏輯鎖總共有三種,本質(zhì)都是對(duì)硬盤的分區(qū)表作了修改,以前只是一些黑客程序使用它,開始大范圍對(duì)計(jì)算機(jī)造成危害是在臭名昭著的KV3000反盜版事件的時(shí)候,那時(shí)江民公司為了打擊盜版。在KV3000新版升級(jí)程序植入了一個(gè)黑客程序,當(dāng)檢測到用戶使用了盜版的KV3000以后就將硬盤的分區(qū)表鎖住,被稱為“主動(dòng)邏輯鎖”,其實(shí)就是硬盤邏輯鎖的一種,當(dāng)時(shí)卻使無數(shù)無辜的人受害,江民公司也因此被定罪。這是舊事不談,下面我們就來介紹一下它的三種情況和解決方法。 首先我們來了解一下硬盤的分區(qū)表。硬盤分區(qū)表位于磁盤的0磁頭0柱面1扇區(qū),這個(gè)扇區(qū)從01BEH開始的64個(gè)字節(jié)就是分區(qū)表。分區(qū)表共64字節(jié),分為4欄,每欄16個(gè)字節(jié)描述一個(gè)分區(qū)。如果用FDISK程序分區(qū),那最多只用兩欄,第一欄描述主引導(dǎo)分區(qū),第二欄描述擴(kuò)展分區(qū)。分區(qū)表的結(jié)構(gòu)與各字節(jié)的含義如下: 00H標(biāo)志活動(dòng)字節(jié)?;顒?dòng)DOS分區(qū)為80H,其它為00H。 01H本分區(qū)邏輯0扇區(qū)所在的磁頭號(hào)。 02H邏輯0扇區(qū)所在柱面中的扇區(qū)號(hào)。 03H邏輯0扇區(qū)所在的柱面號(hào)。 04H分區(qū)類型標(biāo)志。 05H本分區(qū)最后一個(gè)扇區(qū)的磁頭號(hào)。 06H最后一個(gè)扇區(qū)的扇區(qū)號(hào)。 07H最后一個(gè)柱面的柱面號(hào)。 08H硬盤上在本分區(qū)之前的扇區(qū)總數(shù),用雙字節(jié)表示。 0CH本分區(qū)的扇區(qū)總數(shù),從邏輯0扇區(qū)計(jì)數(shù),不含隱藏扇區(qū),用雙字節(jié)表示。 分區(qū)表的最后兩個(gè)字節(jié)是它的有效標(biāo)志,改變后將無法從硬盤啟動(dòng),這就是第一種簡單的鎖住硬盤的方法。不過比較容易解決,只要從軟盤啟動(dòng)就一切正常,啟動(dòng)后用Debug或Diskedit等軟件將硬盤分區(qū)表中的標(biāo)志恢復(fù)就可以了。第二種方法是修改分區(qū)參數(shù),如果將分區(qū)參數(shù)全部變?yōu)?,則啟動(dòng)后由于找不到分區(qū)參數(shù)無法從硬盤啟動(dòng),用啟動(dòng)盤從軟盤啟動(dòng)后也不認(rèn)硬盤,不過機(jī)器畢竟能夠啟動(dòng),我們可以在啟動(dòng)后用軟盤里的debug等工具修復(fù)被改動(dòng)的分區(qū)表參數(shù),重新啟動(dòng)后就沒問題了。 我們重點(diǎn)要講的就是第三種,也就是上文提到的“主動(dòng)邏輯鎖”,它是因?yàn)榉謪^(qū)表參數(shù)被修改成了一個(gè)死循環(huán)。正常啟動(dòng)時(shí)DOS接管硬盤后查找分區(qū)表,主引導(dǎo)分區(qū)被定義為C盤,然后查找邏輯盤,定義為D盤,然后是E、F、G,而這個(gè)主動(dòng)邏輯鎖就是將第一個(gè)邏輯盤(一般是D盤)的下一個(gè)分區(qū)指向它本身,不斷讀取下一個(gè),其實(shí)就是讀它自己,結(jié)果陷入死循環(huán)。因?yàn)镈OS啟動(dòng)必須包含基本輸入輸出文件io.sys(我們?cè)趙indows下也可以看到,位于C盤根目錄下)。而它是有些固執(zhí)的,啟動(dòng)以后非要把硬盤分區(qū)表讀完然后接管不可,所以無論我們用什么啟動(dòng),它一查找邏輯盤就死循環(huán),我們就看到了硬盤燈常亮系統(tǒng)掛起的情況了。那么我們?nèi)绾谓忾_它呢?從根本上講就是讓io.sys不起作用或者在它起作用以前將分區(qū)表參數(shù)修改回來。 1、debug法。 用這種方法首先必須要能啟動(dòng)機(jī)器,我們可以在一臺(tái)正常的電腦上修改啟動(dòng)軟盤中的io.sys文件,查找到第一個(gè)“55aa”字符串,找到以后修改為任何其他數(shù)值,用這張啟動(dòng)軟盤你就可以順利地帶著被鎖的硬盤啟動(dòng)了。不過這時(shí)該硬盤的分區(qū)表已經(jīng)不正常,所以我們無法用FDISK來刪除和修改分區(qū),而且仍然無法用正常的啟動(dòng)盤啟動(dòng)系統(tǒng),這時(shí)可以用DEBUG來手工恢復(fù)。具體命令如下: a:debug -a -?:100 mov ax,0201(讀一扇區(qū)內(nèi)容) -?:103 mov bx,500(設(shè)置一緩存地址) -?:106 mov cx,0001(設(shè)置第一硬盤的硬盤指針) -?:109 mov dx,0080(讀零磁頭) -?:10c int 13 (硬盤中斷) -?:10e int 20 -?:0110 回車 (注:-?各硬盤不相同,跟后面的:1?都是自動(dòng)顯示的,我們要輸入的只是其后的內(nèi)容) -g -d500 (查看運(yùn)行后緩存地址500的內(nèi)容,這時(shí)候我們會(huì)發(fā)現(xiàn)地址6be開始的內(nèi)容就是硬盤分區(qū)表信息,如果硬盤的擴(kuò)展分區(qū)正是指向自己,那么DOS或WINDOWS啟動(dòng)時(shí)就會(huì)因查找邏輯分區(qū)而陷入死循環(huán)。)在DEBUG指示符下繼續(xù)修改內(nèi)存數(shù)據(jù): E6BE ?.0 ?.0 ?.0 55 AA 55 AA是硬盤有效的標(biāo)志,不要修改,?.0表示把以前的數(shù)據(jù)“?”改成了0,再用硬盤中斷13把修改好的數(shù)據(jù)寫入硬盤就可以了: A:debug a 100 (表示修改100地址的匯編指令) -?:100 mov ax,0301 (寫硬盤一個(gè)扇區(qū)) -?: 回車 -g (運(yùn)行) -q (退出) 退出后運(yùn)行fdisk/mbr來重置硬盤引導(dǎo)程序,重新啟動(dòng)即可。 這種方法雖然麻煩一點(diǎn),但是它能夠恢復(fù)硬盤分區(qū)表,也就是說恢復(fù)以后硬盤中的數(shù)據(jù)也不會(huì)丟失。而以下方法雖然更加方便,但是要么硬盤中的數(shù)據(jù)難保,要么有一定危險(xiǎn)性。 2、外掛軟件法 這種方法原理都是繞過bios對(duì)硬盤的檢測而直接用一些能夠自己查找硬盤的軟件來控制硬盤。 首先是DM,現(xiàn)在每一個(gè)硬盤廠商都有自己的DiskManager程序,而且都能放進(jìn)一張軟盤里,你可以下載一個(gè)使用,如果不清楚自己硬盤的牌子,也可以用IBM出的DM萬用版,不過它對(duì)現(xiàn)在32G以上的大硬盤支持不好。我們先在bios里面將硬盤所在的IDE口設(shè)置為none,(如果你不知道哪個(gè)是,全部設(shè)為none也可以),然后用啟動(dòng)盤啟動(dòng)系統(tǒng),啟動(dòng)完成后將軟盤取出,放入裝有DM軟件的軟盤,運(yùn)行DM,它會(huì)檢測到你的病硬盤的存在,然后將它重新分區(qū)就搞定了。DM具體用法比較簡單,就不詳細(xì)說了,不過對(duì)E文不太好的朋友可能有些困難,請(qǐng)教身邊的高手吧。 我們還可以使用低格軟件,也是每一種硬盤都有自己的低格軟件,但也有通用的Lformat程序(只有30多k),前面的做法相同,還是在bios里面屏蔽掉硬盤,用啟動(dòng)盤啟動(dòng),然后換軟盤運(yùn)行低格程序?qū)τ脖P進(jìn)行低級(jí)格式化,由于分區(qū)表只在硬盤最前列部分,所以估摸著格過前面的分區(qū)表部分就可以停止了,然后重新啟動(dòng)在bios里面將硬盤設(shè)出來,就可以像一塊新的硬盤一樣對(duì)它進(jìn)行分區(qū)等操作了。 3、熱插拔 這是最危險(xiǎn)的一種方法,很有可能將你的硬盤燒毀,所以請(qǐng)謹(jǐn)慎。具體做法很簡單,首先將硬盤的電源線拔掉,然后軟盤啟動(dòng)系統(tǒng),啟動(dòng)完成后再將硬盤的電源線插上,這時(shí)候系統(tǒng)就能夠控制硬盤了,可以對(duì)它進(jìn)行分區(qū),恢復(fù)分區(qū)表等操作。我有一個(gè)菜鳥朋友就是在熱插拔硬盤3次以后搞定的。不過此種方法存在危險(xiǎn),強(qiáng)烈不推薦使用,如因此損壞,本人概不負(fù)責(zé)。 其實(shí)最好的情況是你有分區(qū)表備份,那恢復(fù)起來就比較容易了,而且數(shù)據(jù)也不會(huì)丟失。 解開硬盤邏輯鎖方法介紹三種有效的邏輯鎖解鎖方法(1)、使用DM之類的軟件對(duì)硬盤進(jìn)行低級(jí)格式化,這種方法不能保留硬盤數(shù)據(jù)。開機(jī)進(jìn)入BIOS設(shè)置,將帶有邏輯鎖的硬盤設(shè)置為None。重啟,使用軟盤啟動(dòng)到DOS環(huán)境,運(yùn)行事先復(fù)制到另一張軟盤上的DM程序,它可以正確識(shí)別被設(shè)置為None的硬盤,此時(shí)進(jìn)行低級(jí)格式化即可(只需低格開始幾個(gè)磁道,即格式化開始一會(huì)兒就停止)。這樣低級(jí)格式化后的硬盤就可以正常啟動(dòng)、重新分區(qū)和格式化了。(2)、通過匯編語句修改分區(qū)信息,這種方法稍微復(fù)雜,但可以保留部分或全部數(shù)據(jù)。首先準(zhǔn)備一張DOS啟動(dòng)盤,將Debug和Fdisk程序復(fù)制到上面。在其他電腦上,將軟盤上的IO.SYS文件的只讀屬性取消,并使用二進(jìn)制編輯工具(DOS環(huán)境的Debug和PCtools,Windws環(huán)境的Ultraedit)進(jìn)行修改,搜索第一個(gè)55AA字符串,改為任意字符(如66BB)。接下來用修改后的軟盤啟致力電腦了。啟動(dòng)后,通過Debug程序手工修改被修改的分區(qū)表,如下:A:debug-a-xxxx: 100 mov ax, 0201 (只讀一個(gè)扇區(qū)的內(nèi)容)-xxxx: 103 mov bx, 500 (設(shè)置一個(gè)緩存地址)-xxxx: 106 mov cx, 0001 (設(shè)置第一個(gè)硬盤的邏輯指針)-xxxx: 109 mov dx, 0080 (讀零磁頭)-xxxx: 10c int 13 (硬盤中斷)-xxxx: 10e int 20 -xxxx: 0110 (退出程序)-g (運(yùn)行)-d 500 (查看地址為500的寄存器) 從地址6BE開始的內(nèi)容是硬盤分區(qū)的信息,使用E命令修改內(nèi)存數(shù)據(jù):E6BE . 0 .0 .0 55 AA把數(shù)據(jù)改成0,再用硬盤中斷13把修改好的數(shù)據(jù)寫入硬盤:Adebug-a 100 (要修改的寄存器地址為100)-xxxx: 100 mov ax, 0301 (寫硬盤一個(gè)扇區(qū))-xxxx: (直接按回車)-g (運(yùn)行)-q (退出)最后,執(zhí)行Fdisk/MBR命令,重寫硬盤引導(dǎo)區(qū)的引導(dǎo)程序,重啟電腦。第三種方法:制作一張“解鎖”軟盤。首先將故障硬盤卸下,使用帶有Debug程序的DOS啟動(dòng)盤啟動(dòng)系統(tǒng),執(zhí)行Debug命令,然后將啟動(dòng)盤取出,放入一張已格式化的空白軟盤,在Debug環(huán)境中進(jìn)行如下操作:-A 0100XXXX: 0100 XOR AX, AXXXXX: 0102 PUSH AXXXXX: 0103 POP DSXXXX: 0104 PUSH AXXXXX: 0105 POP ESXXXX: 0106 MOV CX, 100XXXX: 0109 MOV BX, 7C00XXXX: 010C MOV Word PTR BX, 00XXXX: 0110 INC BXXXXX: 0111 INC BXXXXX: 0112 LOOP 10CXXXX: 0114 MOV AX, 0301XXXX: 0117 MOV CX, 0001XXXX: 011A MOV DX, 80XXXX: 011D MOV BX 7C00XXXX: 0120 INT 13XXXX: 0122 JMP FFFF:0000XXXX: 0127 -W 100 0 0 1Q接下來,并閉系統(tǒng)。將故障硬盤單獨(dú)作為主盤安裝好,使用制作剛制作的軟盤啟動(dòng)系統(tǒng),系統(tǒng)會(huì)自動(dòng)修復(fù),然后重啟。將軟盤取出,換上DOS啟動(dòng)盤,啟動(dòng)到DOS環(huán)境。此時(shí),硬盤邏輯鎖已經(jīng)解除,但無法使用,要進(jìn)行重新分區(qū)和格式化。如果要保存硬盤上的數(shù)據(jù),可以使用KV300等工具進(jìn)行分區(qū)掃描恢復(fù)操作。高手速成 給硬盤加邏輯鎖的方法和解法自從硬盤邏輯鎖或邏輯炸彈出現(xiàn)以來,可以說是禍害無窮。只要是硬盤被鎖上,叫天天不靈,叫地地不應(yīng),你是干著急也沒有辦法,自己辛辛苦苦整理的資料就不能使用了。 大家也可能知道用這種簡單的方法就可以解決:把硬盤在CMOS里屏蔽掉,再用光盤啟動(dòng)用低格工具對(duì)這個(gè)硬盤低格,鎖就沒有了,同時(shí)我們自己的數(shù)據(jù)資料也全部沒有了。有時(shí)候,使用這種方法有的硬盤按照上面的步驟操作時(shí)找不到硬盤,這時(shí)只有熱拔插(不斷電直接插拔硬盤數(shù)據(jù)線)才能找到硬盤進(jìn)行低格。弄不好的話,硬盤可能要報(bào)廢。不過下面介紹的方法就沒有那么危險(xiǎn)了,相對(duì)來說,不用擺弄硬盤和拆機(jī)箱。那我就詳細(xì)介紹一下硬盤為什么會(huì)被鎖上。一、計(jì)算機(jī)啟動(dòng)過程分析當(dāng)計(jì)算機(jī)自檢完成后,并更新過 ESCD (Extended System ConfigurationData,擴(kuò)展系統(tǒng)配置數(shù)據(jù))時(shí),如果你的計(jì)算機(jī)設(shè)置是從硬盤啟動(dòng),這時(shí)計(jì)算機(jī)將首先硬盤0柱面0磁頭1扇區(qū)(主引導(dǎo)區(qū)MBR)中的512個(gè)字節(jié)讀入內(nèi)存0000:7C00處并跳到0000:7C00處執(zhí)行;如果選擇從軟盤啟動(dòng),則計(jì)算機(jī)首先將A盤0磁道0磁頭1扇區(qū)的內(nèi)容讀入內(nèi)存0000:7C00處并跳到0000:7C00處執(zhí)行。在讀取過程中,計(jì)算機(jī)并不檢查該扇區(qū)的內(nèi)容是什么。接著執(zhí)行讀入的內(nèi)容(硬盤主引導(dǎo)區(qū)中的前466個(gè)字節(jié),軟盤沒有分區(qū)表,軟盤讀入的是其引導(dǎo)區(qū)的內(nèi)容,類似于C盤,D盤第一個(gè)扇區(qū)的內(nèi)容),首先開始檢測該扇區(qū)的最后兩個(gè)字李是不是“55AA”標(biāo)志,如果“55AA”不存在則打印“Invalid partition table(無效的分區(qū)表)”;如果有“55AA”并進(jìn)一步檢測有無硬盤分區(qū)表;如有并再進(jìn)一步分析硬盤分區(qū)表中的內(nèi)容是否正確;如果硬盤分區(qū)表正確可用,便接著讀取活動(dòng)分區(qū)的第一個(gè)扇區(qū)的內(nèi)容即引導(dǎo)區(qū)(DBR區(qū))的內(nèi)容,并把控制權(quán)移交。但硬盤分區(qū)表的內(nèi)容駐留內(nèi)存,供計(jì)算機(jī)調(diào)用。二、硬盤分區(qū)表和邏輯鎖的原理分析1. 硬盤分區(qū)表談到硬盤邏輯鎖加鎖原理,就不得不提到硬盤分區(qū)表的結(jié)構(gòu)。硬盤分區(qū)表位于硬盤的 0 磁道 0 柱面第1扇區(qū)(即0區(qū))(注意:該扇區(qū)為隱含扇區(qū),0道0面的全部扇區(qū)均為隱含扇區(qū),普通的磁盤訪問命令無法直接訪問,同時(shí)該磁道的其他62個(gè)扇區(qū)也是隱含的,因此有引多系統(tǒng)引導(dǎo)程序就把自己的程序代碼放在其他隱含扇區(qū),有些引導(dǎo)區(qū)病毒也把自己的代碼放在其他隱含扇區(qū)。)。在該扇區(qū)512字節(jié)中,硬盤的主引導(dǎo)記錄區(qū)MBR (Main Boot Record)只占用了前 446 個(gè)字節(jié)(偏移 000H- 偏移 1BDH ),另外的 64個(gè)字節(jié)(偏移 1BEH- 偏移 1FDH )是硬盤分區(qū)表DPT(Disk Partition Table ) , 最后兩個(gè)字節(jié) 55 AA (偏移1FEH偏移 1FFH )是分區(qū)結(jié)束標(biāo)志。主引導(dǎo)記錄中包含了硬盤的一系列參數(shù)和一段引導(dǎo)程序。其中的硬盤引導(dǎo)程序的主要作用是檢查分區(qū)表是否正確并且在系統(tǒng)硬件完成自檢以后引導(dǎo)具有活動(dòng)標(biāo)志(80H)的分區(qū)上的操作系統(tǒng),并將控制權(quán)交給活動(dòng)盤上的操作系統(tǒng)的啟動(dòng)程序。四個(gè)分區(qū)的入口位置偏移量內(nèi)容說明大小000h執(zhí)行代碼(啟動(dòng)計(jì)算機(jī)用)446 Byt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論