六年前研究保護(hù)卡的時(shí)候,寫(xiě)下的一堆文字,最先被《看雪》論壇收錄,至今仍然能在網(wǎng)上搜索到,自己寫(xiě)的東西,被流傳開(kāi)來(lái),真的很有成就感的事情!懷戀一下,呵呵!(當(dāng)時(shí)還是小屁孩,文字略顯稚嫩)硬盤(pán)保護(hù)卡破解--小哨兵篇
作者:Ym 2002.6.15 23:43:50 email:yaomingmail@sina.com
現(xiàn)在硬盤(pán)保護(hù)卡日益盛行,網(wǎng)吧,學(xué)校隨處可見(jiàn),本人就遇到幾種類(lèi)型和品牌的,小哨兵是其中技術(shù)比較完善的一種.早期在學(xué)校機(jī)房遇到的看門(mén)狗,就存在嚴(yán)重的技術(shù)缺陷,只要修改cmos中的硬盤(pán)參數(shù)即可破解,所以這里我想著重談?wù)勑∩诒慕夥?當(dāng)然對(duì)付看門(mén)狗的方法在這里是行不通的,為此我琢磨了很長(zhǎng)時(shí)間,直到我前幾天在網(wǎng)上看到一篇破解硬盤(pán)保護(hù)卡的文章,給我一個(gè)嶄新的破解思路,但事實(shí)上按原文的方法還是不可破解小哨兵,但離成功僅一步之遙,這篇文章就算是一個(gè)補(bǔ)充說(shuō)明,希望能對(duì)大家有點(diǎn)幫助.
首先本人通過(guò)閱讀那篇文章后,得知保護(hù)卡是通過(guò)修改中斷向量來(lái)達(dá)到保護(hù)硬盤(pán)不被真正寫(xiě)入的,其中int13是關(guān)鍵,同時(shí)還修改了時(shí)鐘中斷來(lái)達(dá)到反跟蹤,恢復(fù)中斷向量表的目的.小哨兵攔截了int13的處理程序,將自己的程序掛到上面,這也是無(wú)法寫(xiě)進(jìn)數(shù)據(jù)的原因所在,知道了這個(gè),你一定會(huì)說(shuō)我們只要把bios的int13的程序地址,在dos下填入中斷向量表不就大功告成了,其實(shí)不然,小哨兵早以想到了這一點(diǎn),它會(huì)利用早以被它修改過(guò)的時(shí)鐘中斷定時(shí)檢查中斷向量表,它一旦發(fā)現(xiàn)0000:4c+3處為f0即會(huì)修改為別的值.原文章的建議是將時(shí)鐘中斷一一還原,本人覺(jué)得太過(guò)煩瑣,而且出錯(cuò)的可能性大,不可取.經(jīng)過(guò)嘗試將原中斷處理程序的第一條語(yǔ)句改為0255:0148(此不一定) jmp f000:xxxx即可.
這里還要談?wù)剎xxx的獲取,這一步也是關(guān)鍵,我一開(kāi)始用debug t跟蹤了幾次都出現(xiàn)了死機(jī),通過(guò)觀(guān)察每次死機(jī)地址都不同,懷疑小哨兵利用時(shí)鐘中斷反跟蹤,但每次跟蹤都給了一段時(shí)間后才死機(jī),所以在進(jìn)入int13后你要在這段時(shí)間內(nèi),以最快的速度,t到f000:xxxx
處,當(dāng)屏幕上t出第一個(gè)f000為段的地方時(shí),后面的偏移量即為我們要找的xxxx.記住它,相信這時(shí)你已經(jīng)死機(jī)了,重新啟動(dòng),f8進(jìn)dos.
debug
-d 0:4c
0000:004c 48 01 55 02
-a 0255:0148
-0255:0148 jmp f000:xxxx
-q
c:\>cd windows
c:\windows>win
OK,現(xiàn)在改個(gè)桌面,拷個(gè)游戲進(jìn)去,再重新啟動(dòng)試一下,還在吧,游戲可要藏好喲,祝你愉快!
posted on 2008-01-10 14:19
姚明 閱讀(1366)
評(píng)論(4) 編輯 收藏 引用 所屬分類(lèi):
Win32API