|
本來以前就要寫這一篇的,有事耽誤了,現(xiàn)在寫出來竽充數(shù)吧!
還原卡也稱硬盤保護(hù)卡,學(xué)校等單位采用較多,可以保護(hù)硬盤數(shù)據(jù)不被惡意修改,刪除。保護(hù)卡是一種硬件芯片,插在主板上與硬盤的MBR協(xié)同工作。在說明原理前,我想先提一種技術(shù)“BIOS映射地址搬移”。這種技術(shù)在前幾年,大行其道,但均秘而不喧。諸位以前玩解密的時(shí)候可能都用過龔成賓的SIMU97吧。它能在只讀的BIOS地址區(qū)實(shí)現(xiàn)寫入,因而能攔截到CALL F000:EC59等調(diào)用。這種調(diào)用在以軟盤為載體的加密方案中,有重要意義,后來為了躲過它,王江民沒辦法使用了UPD765。不過,根據(jù)我的分析UPD765讀寫軟盤時(shí)照樣可以攔截。剛才提的那種攔截方式的原理是這樣的[跟蹤所得],通過調(diào)用Int15h子功能,其他方法也可以,只要能切入保護(hù)模式,切入保護(hù)模式后,改掉BIOS所在段的段描述符。這種方法可以實(shí)現(xiàn)BIOS段的重定位,當(dāng)然就可以讓它可寫入了。用Int13H讀軟盤時(shí)Int13H會(huì)調(diào)用F000:EC59,這是攔截Int13h 的一種高級手段。其實(shí)圍繞硬盤保護(hù)的加密解密關(guān)鍵就看誰攔截的位置更底層。但對與硬盤保護(hù)卡來說,只要恢復(fù)Int13的BIOS級中斷向量就夠了。具體如何破解呢?找到Int13h的原始BIOS中斷向量值,填入中斷向量表。東北IT網(wǎng)這樣修改以后其他對Int13H 的鉤子通常就被繞過了 [有些部份如果覺得簡單請?zhí)^看 ^_^]
下面是找Int13入口的方法,我常用的幾種:
1。手工運(yùn)行Debug,最好在純DOS下:
Debug
- a100
- xor ax,ax 注意: 前面要加上功能號以選擇Int13H內(nèi)部的流程,避免進(jìn)入其他不經(jīng)過原始入口的流程
- int 13
- int3
然后輸入t回車,不斷的重復(fù),直到顯示的地址形如 F000:xxxx。記下這一地址,按q 回車退出。 這里假設(shè)了第一個(gè)F000:xxxx就是要找的入口,實(shí)際上可以在第2,3,4,。。。。出現(xiàn),要自己判斷一下,通常認(rèn)為就是第一個(gè)。
在(0:13H*4)=0:4cH 處填入這個(gè)地址。
例如得到的地址是F000:1234
運(yùn)行debug
-e 0:4c 34 12 00 F0 =======>把得到的原始入口填入Int13H的中斷向量表
-q
注意:
填的時(shí)候要仔細(xì),填錯(cuò)的話會(huì)死機(jī)。有些經(jīng)過針對性處理的機(jī)器,要進(jìn)一步鑒別。如在Int13內(nèi)部調(diào)用Int1ch. 如果在trace過程中發(fā)現(xiàn)如下代碼 CMP DL,80[意思是判斷是否針對硬盤操作] ,可以嘗試修改成不存在的硬盤號,比如改成CMP DL,FF。其他的都不要修改.試試 硬盤可寫嗎?如果可以的話就萬事大吉了。另外,不能在Windows的虛擬DOS窗口中使用這種方法。如果在Windows的虛擬DOS窗口運(yùn)行的話,請使用下一種方法。
2。Debug
- s F000:0 ffff 80 fa 80 強(qiáng)行搜索BIOS區(qū),通過比較入口代碼找到原始入口點(diǎn)
你可能會(huì)發(fā)現(xiàn)有好幾處。根據(jù)我的多次破解經(jīng)驗(yàn),通常這個(gè)地址在F000:8000以后。試驗(yàn)一下: 如果U F000:xxxx地址后發(fā)現(xiàn)代碼類似
-u F000:xxxx
PUSHF
CMP DL,80
JZ ....
.
.
.
[有些不是這樣,要注意鑒別。]
的話,填入向量表試試。通常破解就完成了。
我曾經(jīng)發(fā)現(xiàn)經(jīng)過以上中斷還原后,仍不能寫盤,或者死機(jī)的情況。經(jīng)跟蹤發(fā)現(xiàn)Int8H,Int 1CH,Int15H等向量對Int13H進(jìn)行了向量保護(hù)。解決辦法:把Int8H,Int1cH,Int15H 也改會(huì)原始中斷點(diǎn)(也是BIOS中斷)。嘗試寫盤成功
如果想獲得保護(hù)卡密碼的話,可以參考以下步驟:
1。找到Int13h原始點(diǎn)設(shè)回中斷向量表。
2。讀出MBR
3,分析讀出的MBR,找到密碼算區(qū)和加密算法
4,推算出密碼
|
|
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|