用啟動軟碟啟動後,電腦不會進入我們平時看到的Windows 98,而是進入這種字元的狀態,也叫做DOS命令行狀態。
接下來我們該如何操作呢,我們在Windows 98的“運行”功能中,只要輸入檔案名,然後單擊運行按鈕或者回車就可以了,在DOS中,我們也是輸入檔案名稱,然後加回車,就可以運行它了。◎ 在DOS中,我們也是輸入檔案名稱,然後加回車,就可以運行它了。我們先取出啟動盤,把“KV300”軟碟放入軟碟機。如果是用“KV300”的軟碟啟動的,就不用換盤了。現在我們輸入防毒軟體的名稱“KV300”,這是防毒程式的名字,然後回車就可以運行它。 好了,這個就是“KV300”的主界面。 KV300啟動後的默認狀態是等候防毒,你看,這裡是提示信息,只要告訴它一個盤符就立即開始防毒了,比如想殺C糟上的病毒,就按字母C。想殺A盤就按A。
這是最基本的用法。除此以外,KV300還有這些功能:
在主界面
按F2,再輸入盤符是掃描病毒,也就是查毒但並不防毒;
按F3為防毒;
按F5可選擇查毒的路徑;
按F6可查看硬碟的分區表;
按F7會列出KV300能殺的所有病毒;
按F8可以顯示幫助信息;
按F9顯示版本信息;
按F10是系統測試和修復;如果我們的硬碟被CIH病毒破壞了的話,就需要用,就可以用這個功能拉恢復硬碟中邏輯分區。在個別的情況下也可能恢復基本分區C。
要退出KV300的話,就按Esc鍵。
破解:KV300解密一法探討 KV300分兩個版本:KV300 和KV300 版本,加密方式不同,這裡以KV300 版為例。目前國產防毒軟體中,除了KILL認證版、瑞星,KV300算比較大眾化一點。KV300的加密比較狠,做一張完善的KEY盤比較困難,用雙星磁碟分析工具掃描一下正版磁碟就知道最後約有10多個磁軌是非正常磁軌,即加密磁軌,上面記錄的檢測數據(密鑰)要複製出來也比較困難。但解密某一個升級版本很容易,只是解密限於一個版本。許多流傳的解密版本就這樣做的。我用目前最新的Z12版進行解密。解密版您可以在資源共享里下載(使用時需要在A驅里插入一張軟磁碟。運行時可能提示軟碟有引導區病毒,不必理睬,因為不是KEY盤),這裡特別聲明:您自由下載解密版,我不收取任何費用,沒有商業性的贏利性質,所以不存在盜版問題。官司我可吃不起喔!我只是純技術性的探討。如果您覺得有問題,請給我留言或是寫信。以下是解密過程: 運行softice 3.23,載入Windows 98,然後開一個DOS視窗。按Ctril-D切入softice,鍵入如下指令: wl wr wd bpint 13 然後按Ctrl-D切換到DOS視窗,運行KV300: D:\kv300\>kv300 當KV300調用中斷13H時被softice截住並自動切換到softice調試界面。查看被截住的這段KV300代碼,只是讀引導區、檢查引導區有無病毒。按Ctrl-↓往下找,發現這段代碼: 1EE8:C1C0 CALL 2E6A:52D2 1EE8:C1C5 JMP BYTE PTR [D76C],70 1EE8:C1CA JA C1DC 1EE8:C1CC CMP BYTE PTR [D76C],30 1EE8:C1D1 JB C1DC 1EE8:C1D3 MOV AX,33FF 1EE8:C1D6 CALL 2E6A:2563 1EE8:C1DB RET 1EE8:C1DC MOV AX,F000 …… 它先調2E6A:52D2子程式,然後檢查[D76C]處的一個位元組是否在30H與70H之間,否則跳轉1EE8:C1DC執行。經過簡單的試驗就知道2E6A:2563是正常的防毒界面入口,而1EE8:C1DC則是進一步檢查加密磁軌的代碼入口(分析這段代碼有助於製作KEY盤,不過比較煩瑣,它要讀大約6個左右加密磁軌上的密鑰來驗證是否為原盤,甚至有一段代碼繞過了BIOS調用而直接用原始的IN、OUT指令來讀盤,我們寂然不做KEY盤,完全可以不理睬這段代碼)。關鍵的跳轉分支已經找到了,現在需要修改程式禁止讀比較密鑰一節。最簡單的改法是將1EE8:C1D1的JB C1DC改為JB C1D3,直接跳入正常的防毒入口代碼。好,來個code on顯示機器碼: code on …… 1EE8:C1CC 803E6CD730 CMP BYTE PTR [D76C],30 1EE8:C1D1 7209 JB C1DC …… 輸入彙編指令JB C1D3,看機器碼是什麼: A C1D1 JB C1D3 得到: 1EE8:C1D1 7200 JB C1D3 這樣,將機器碼7209改為7200即可。那是否立馬取KV300.EXE中找代碼“803E6CD7307209”呢?我找過,找不到的!因為還有暗樁,這段代碼本身被加了密存放的,運行時這段代碼在記憶體中被解密。我們再用逆推法找解密這段代碼的程式段。繼續在softice中下指令: bc * bpmb 1EE8:C1D1 bd * 然後Ctrl-D退到DOS視窗後再Ctrl-D切換到softice,將斷點許可:be *,而後切換到DOS視窗中運行KV300。 D:\kv300\>kv300 運行中會被softice截住幾次,每次截住時用 d ES:EDI 指令查看數據區,如找不到JB C1DC的機器碼(“7209”)就繼續,直到找到為止。大約截住3次後,可以看到這段代碼: …… 6803:0069 SHR BP,1 DEC DX jnz 73 LODSW MOV DL,10 JAE 78 MOVSB JMP 69 6803:0078 …… 現在用 d ES:EDI 指令可以看到“7209”了。不過看這段代碼只是數據轉移,沒有實質性的解密工作。用 d DS:ESI 顯示“7209”機器碼位於地址DS:5098,softice中下指令: bc * bpmb DS:5098 exit 在DOS視窗中再次運行KV300。這次在6803:0050處: …… MOV SI,AX MOV DI,AX REPZ MOVSW …… 還是只是轉移數據。用d DS:ESI 顯示出“7209”地址位於1700:2558處。下指令: bc * bpmb 1700:2558 exit 在DOS視窗下再次運行KV300,這次softice在3867:3136處截住這段代碼: LODSW XOR AX,BX ADD AX,DX SUB DX,5B STOSW LOOP 3136 呵呵,一段很典型的解碼程式啊。注意到解碼時DS=ES,ESI=EDI,所以數據在原位地址變換。截住在LODSW代碼之後,此時AX中已裝入記憶體中的一個字,即將要解碼的字。AX=930A,按F8單步執行,具體數值是這樣的: XOR AX,434 ADD AS,7034 此時AX=0972,倒過來不就是我們要找的“7209”嗎?顯然,解碼公式是:(930A 異或 0434) 7234 = 0972。我們要得到“0072”的結果,可設未解碼前的數為X,則有:( X 異或 0434) 7234 = 0072,故 X = (0072 - 7234) 異或 0434,計算(Windows提供的計算器派上用場)得到X=8A0A,即將原碼的“0A93”改為“0A8A”就大功告成,實際上只改動一個位元組。用d DS:ESI命令顯示記憶體中未解碼前的數據:“0A931F8644BA”,記下來。現在可以改KV300.EXE檔案了!我沒有uedit,沒關係,用DOS的PCTOOLS也行,pctools不認識C:盤的32位FAT,將它拷貝到軟磁碟,同時將KV300.EXE也拷貝到軟磁碟,軟磁碟是16位FAT,所以pctools可以運行,用find功能找出“0A931F8644BA”串的位置,將“93”改為“8A”存檔。運行修改後的KV300.EXE,只要在A:驅里任意插一張軟磁碟,它都當是KEY盤而順利進入防毒界面。