資源描述:
《穿透還原卡和還原軟件代碼》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、穿透還原卡和還原軟件的代碼.txt大悲無淚,大悟無言,大笑無聲。我們手里的金錢是保持自由的一種工具。女人在約會前,一定先去美容院;男人約會前,一定先去銀行。穿透還原卡和還原軟件的代碼穿透還原卡和還原軟件的代碼文章轉(zhuǎn)自:陪你醉生夢死還原卡和還原軟件被廣泛運(yùn)用于各種公共場合的電腦上,比如學(xué)校機(jī)房和網(wǎng)吧。這些還原卡和還原軟件(以下我簡稱為虛擬還原技術(shù))能夠記錄下一切對硬盤的寫操作,不論您對硬盤進(jìn)行拷貝還是移動刪除甚至是格式化分區(qū)等操作,只要一重新啟動,一切都會恢復(fù)到這個操作之前的情況,因此有些虛擬還原廠商還會在廣告詞中加上一句
2、“可以防范一切電腦病毒”。這種虛擬還原的方法在大部分時候的確可以對公共機(jī)房的電腦起到很好的保護(hù)作用,難道真的沒有一種方法能夠穿透這種保護(hù)機(jī)制么?答案是否定的,下面請聽我一一道來。一、虛擬還原技術(shù)的原理本文所說的是一種普遍運(yùn)用于還原卡或還原軟件上的技術(shù),當(dāng)然,不同品牌不同廠商生產(chǎn)的可能不盡相同,但原理卻是相通的。首先,還原卡和還原軟件會搶先奪取引導(dǎo)權(quán),將原來的0頭0道1扇保存在一個其他的扇區(qū),(具體備份到那個扇區(qū)是不一定的),將自己的代碼寫入0頭0道1扇,從而能在操作系統(tǒng)之前得到執(zhí)行權(quán),這一點類似于
3、一個引導(dǎo)型病毒;然后,我們來看看虛擬還原技術(shù)在操作系統(tǒng)之前都做了些什么:1.將中斷向量表中的INT13H的入口地址保存;2.把自己用于代替INT13H的代碼寫入內(nèi)存,并記住入口地址,當(dāng)然這種“寫入內(nèi)存”并不是普通的“寫”,而是一種我們稱為“常駐”的方法,有關(guān)“常駐程序”的實現(xiàn)方法我們不另外花篇幅來描述了,3.將中斷向量表中INT13H的入口地址改為這段常駐程序的入口地址。補(bǔ)充一點,虛擬還原程序在修改INT13H的入口后往往都會
4、修改一些其他中斷入口,當(dāng)然也是通過常駐程序來實現(xiàn)的,這些中斷用來實現(xiàn)對中斷向量表中INT13H入口地址監(jiān)控,一旦發(fā)現(xiàn)被修改,就馬上把它改回,這樣做同樣是用來防止被有心人破解。好了,你已經(jīng)看出來了,這段用來替代BIOS提供的INT13H的代碼才是虛擬還原技術(shù)的關(guān)鍵,那么這段代碼到底實現(xiàn)了些什么了,以下是本人對此拙淺的理解:1.?dāng)r截所有INT13H中對硬盤0頭0道1扇的操作這些包括讀寫操作,把所有的對0頭0道1扇的操作改為對虛擬還原程序備份的那個扇區(qū)的操作,這樣做的目的是保護(hù)虛擬還原代碼不被破壞,并且不能被有心人讀出進(jìn)行破解
5、,即使你用扇區(qū)編輯工具查看主引導(dǎo)區(qū),實際上你看到的是這個備份的主引導(dǎo)區(qū)。2.?dāng)r截所有INT13H中的寫硬盤操作這里包括對8G以下的硬盤的普通通過磁頭、磁道、扇區(qū)定位的INT13H中的寫操作,和擴(kuò)展INT13H中基于扇區(qū)地址方式的對大硬盤的寫操作,甚至包括擴(kuò)展INT13H中對一些非IDE接口的硬盤的寫操作。至于攔截后做什么是虛擬還原技術(shù)實現(xiàn)的關(guān)鍵,在早期的DOS系統(tǒng)當(dāng)中完全可以“什么都不做”,也就是說當(dāng)用戶寫硬盤時實際上是什么都沒做,但現(xiàn)在的操作系統(tǒng)都要對硬盤進(jìn)行一些必要的寫操作,比如對虛擬內(nèi)存的寫
6、操作。眾所周知,虛擬內(nèi)存實際上就是硬盤,而如果禁止操作系統(tǒng)寫硬盤的話顯然后果是不堪設(shè)想的。所以,大多數(shù)虛擬還原廠商用的方法是占用一些硬盤空間,把硬盤所進(jìn)行的寫操作做一個記錄,等系統(tǒng)重新啟動后還原這一記錄,但是怎樣科學(xué)記錄硬盤的寫操作,是我一直沒想通的問題,這種“科學(xué)”應(yīng)該體現(xiàn)在時間上和硬盤空間的占用量上的,也就是說怎么樣用最少的時間和最少的硬盤空間來記錄硬盤的寫操作是實現(xiàn)關(guān)鍵,如果有這方面想法的朋友歡迎和我交流;3.備份端口70H,71H中的內(nèi)容,并把最后一次執(zhí)行時端口70H,71H的內(nèi)容和備份的
7、內(nèi)容做比較,不一樣就提示BIOS被修改,是否還原,并通過密碼驗證修改BIOS是否合法。二、PC機(jī)的中斷機(jī)制中斷提供了最基本的硬件和軟件的接口,它使得程序員不必了解硬件系統(tǒng)的細(xì)節(jié),只要直接調(diào)用系統(tǒng)提供的中斷服務(wù)子程序,就可以完成相應(yīng)功能,這樣能使得程序設(shè)計更為方便。其實現(xiàn)機(jī)制如下:當(dāng)某一中斷源發(fā)出中斷請求時,CPU能夠決定是否響應(yīng)這一中斷請求(當(dāng)CPU在執(zhí)行更為重要的工作時,可以暫不響應(yīng)),如果允許響應(yīng)該中斷,CPU會在現(xiàn)行的指令執(zhí)行完后,把斷點處的下一條指令地址和各寄存器的內(nèi)容和標(biāo)志位的狀態(tài),推入堆棧進(jìn)行保護(hù),然后轉(zhuǎn)到中
8、斷源服務(wù)程序的入口,進(jìn)行中斷處理,當(dāng)中斷處理完成后,再恢復(fù)被保留的各寄存器、標(biāo)志位狀態(tài)和指令指針,使CPU返回斷點,繼續(xù)執(zhí)行下一條指令。為了區(qū)別各個中斷,CPC系統(tǒng)給每個中斷都分配了一個中斷號N,比如INT3H是斷點中斷,INT10H是顯示中斷,我們今天要討論的主要是INT13H磁盤讀寫中斷。要說清楚PC機(jī)上的中斷機(jī)