硬碟保護卡的原理分析 (2千字)

看雪資料發表於2015-11-15

硬碟保護卡的原理分析
                      dOSKEY lEE
    以下內容只是個人分析結果(想象),如果有不符合事實的情況請大家不~要~扁~我~!由於我自己沒有硬碟保護卡,只是在網咖用過幾次,所以……:)
    用很簡單的一句話來說,硬碟保護的運作機制很類似引導型病毒。它修改引導區,在起動時自動載入自己的驅動程式,它的驅動程式可能是放在某些隱藏扇區中或放在檔案中(.SYS DOS下的驅動程式,類似CD-ROM驅動程式)。如果是放在隱藏扇區中則可以有效的提高自己的隱秘性和安全性,而放在檔案中則是為了減少複雜性。您可能懷疑,放到檔案中安全嗎?不會被別人刪除嗎?且慢,請聽我慢慢倒來。
    載入的驅動十分類似DOS病毒。它接管INT13中斷和INT18,將FAT,引導區,CMOS資訊,中斷向量表等資訊都儲存到卡內的臨時儲存單元中。另外,再另外將FAT資訊儲存到臨時儲存單元中,用來應付我們對硬碟內資料的修改。保護卡可能是在硬碟中找到一部分連續的空磁碟空間然後,將我們修改的資料儲存到其中。
    每當我們向硬碟寫入資料時,其實還是寫入到硬碟中,可是沒有真正修改硬碟中的FAT。由於保護卡接管INT13,當卡發現寫操作,便將原先資料目的地址重新指向先前的連續空磁碟空間,並將先前背份的第二份FAT中的被修改的相關資料指向這片空間。當我們讀取資料時,和寫操作相反,當某程式訪問某檔案時,保護卡先在第二份背份的FAT中查詢相關檔案,如果是起動後修改過的,便在重新定向的空間中讀取,否則在第一份背份的FAT中查詢並讀取相關檔案。刪除和寫入資料相同,就是將檔案的FAT記錄重第二份背份的FAT中刪除掉。
    當硬碟保護卡收到INT18,或收到復位(RESET)等重新起動的資訊後,首先將原來的FAT,引導區,CMOS,中斷向量等資訊從卡內臨時儲存單元恢復到系統中。當你從新起動後發現上次修改的資料都丟失了。先前的那部分用來儲存修改資料的空間,由於沒有寫硬碟的FAT,所以還是空的磁碟空間。
    另外,使用者不可能格式化真正的硬碟,還是因為被接管的INT13。INT13的功能05H和06H便是格式化。如果使用者是快速格式化(FORMAT DRIVE /Q),保護卡只須將相關驅動器的FAT清空為格式化以後的模樣便可(當然是卡內儲存的第二份FAT)。如果是普通的格式化(每個扇區清空),保護卡也會配合工作得將其轉換為快速格式化,還是隻改FAT。
    對於其他的磁碟訪問機制由於我不大瞭解(低格?低格!),所以在此不再闡述,如果您對我的胡言亂語有什麼看法或您對硬碟保護卡也有所研究請電郵到doskey_lee@hotmail.com。我會盡量回答您的問題。另外,您讀過本文後是否有一種感覺,好像這個硬碟保護卡可以用軟體方法實現?我也這麼認為,我正在查詢相關資料,開發一套硬碟保護的軟體,大家一起賺錢啦~!
    本文歡迎轉載,但不得刪改其中任何部分和本資訊。

相關文章