Win98 的螢幕保護密碼破解方法
程式獵人
今天沒有什麼事情,雜誌製作完成後看一看從朋友借的光碟,從中看到了一個關於破解win98螢幕保護的密碼,這裡介紹如下:
螢幕保護密碼
利用系統的螢幕保護功能可以防止他人在自己不在的情況下偷用自己的計算機,從而起到保護資料安全的作用。不過在不配合其它限制功能的情況下,系統的螢幕保護密碼是非常脆弱的。我們在遺忘密碼之後只需使用“復位”鍵強行啟動計算機(某些設計不完善的螢幕保護程式甚至可以使用Ctrl+Alt+Del強行關閉,其操作就更簡單了),然後右擊桌面空白處並從彈出的快捷選單中執行“屬性”命令,開啟“顯示屬性”設定框並單擊“螢幕保護”選項卡,最後取消“密碼保護”選項即可(取消該選項時無需確認密碼)。另外,據說目前市面上還出現了一種專門用於破解螢幕保護密碼的光碟。插入該光碟之後,它就會利用Windows
98的自動執行功能啟動儲存在光碟上的螢幕保護密碼破解程式,對螢幕保護功能的密碼進行分析、破譯,最後再將密碼顯示在螢幕上或寫到軟盤上,這就更方便了(對不起,該功能只是道聽途說,本人並沒有親眼見到這樣的光碟)。
上面就是這個文章的作者提供的破解方法,但是我個人認為可以對win98的螢幕保護密碼進行研究一下,這樣就可以知道win98是使用什麼檔案來驗證密碼的。
現在先使用Regsnap來對登錄檔進行拍照,然後將螢幕保護密碼設為有,這樣就可以分析到win98是如何將屏保密碼放在登錄檔的哪個地方了。這樣分析後得到了這樣的結果。
HKEY_USERS\.DEFAULT\Control Panel\desktop\ScreenSaveUsePassword=0x00000001(1)
這裡就是win將密碼項開啟的選項,如果你將這個0x00000001(1)變為0x00000000(0)後就沒有屏保密碼了。也就是這個屏保密碼不再起作用了。
這個對屏保密碼的研究是最開始階段,下一步是將研究win是使用哪個程式來驗證屏保密碼的。
這裡依然還得借住工具來分析,先使用TRW2000來分析,將屏保啟動,出現驗證密碼的地方,在這裡先輸入任意的密碼後,設bpx hmemcpy後點選OK,被攔下來,它這時在系統中keneal中,按F12幾次就可以到達下面顯示為password!……字樣的地方,這裡就是我們想要得到的地方。
* Reference To: USER32.GetDlgItemTextA, Ord:00FDh
|
:78054201 FF15DC720578 Call dword ptr
[780572DC]
:78054207 85FF
test edi, edi <-出來
:78054209 751B
jne 78054226
:7805420B 8D45FC
lea eax, dword ptr [ebp-04]
:7805420E 8D8D78FFFFFF lea ecx, dword
ptr [ebp+FFFFFF78]
:78054214 50
push eax
:78054215 51
push ecx
* Reference To: MPR.WNetVerifyPasswordA, Ord:004Eh
|
:78054216 E87F020000 Call 7805449A
:7805421B 85C0
test eax, eax
:7805421D 7440
je 7805425F
:7805421F B801000000 mov eax,
00000001
:78054224 EB79
jmp 7805429F
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:78054209(C)
|
:78054226 8D8574FEFFFF lea eax, dword
ptr [ebp+FFFFFE74]
:7805422C 8D8D78FFFFFF lea ecx, dword
ptr [ebp+FFFFFF78]
:78054232 50
push eax
:78054233 51
push ecx
* Reference To: KERNEL32.lstrlenA, Ord:02E7h
|
:78054234 FF1558720578 Call dword ptr
[78057258]
:7805423A 50
push eax
:7805423B 8D8D78FFFFFF lea ecx, dword
ptr [ebp+FFFFFF78]
:78054241 51
push ecx
:78054242 E89A010000 call 780543E1
:78054247 57
push edi 加密後你輸入的密碼
:78054248 8D8D74FEFFFF lea ecx, dword
ptr [ebp+FFFFFE74]
:7805424E 51
push ecx 加密後真正的密碼
* Reference To: KERNEL32.lstrcmpiA, Ord:02DEh
|
:7805424F FF1554720578 Call dword ptr
[78057254]
:78054255 83F801
cmp eax, 00000001
:78054258 1BC0
sbb eax, eax
:7805425A F7D8
neg eax
:7805425C 8945FC
mov dword ptr [ebp-04], eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:7805421D(C)
|
:7805425F 33FF
xor edi, edi
:78054261 B801000000 mov eax,
00000001
:78054266 397DFC
cmp dword ptr [ebp-04], edi
:78054269 7534
jne 7805429F ***關鍵跳躍的地方
上面就是程式比較屏保密碼過程,上面是加密後再進行比較的過程,所以無法看到真正的密碼,但是你可以在***處強行跳躍的就可以了。這樣就可以回到win中了。
現在使用TRW就可以解決掉屏保密碼了。但是還是不行的,我們得找到win使用哪個程式來呼叫驗證密碼的過程。
現在使用File monitor來檢視win呼叫了什麼程式。
經過監視,發現win呼叫c:\windows\system\password.cpl程式來驗證密碼的過程。其實也用到了其它程式,但是這個就是我們要找的程式。
使用W32DASM來反彙編這個程式,發現就是我們要找的程式,於是我將
:78054266 397DFC
cmp dword ptr [ebp-04], edi
:78054269 7534
jne 7805429F ***關鍵跳躍的地方
這裡改為
:78054266 397DFC
cmp dword ptr [ebp-04], edi
:78054269 EB34
jmp 7805429F ***關鍵跳躍的地方
存檔,再進行屏保密碼驗證過程,你只要點選OK就可以了。win已經沒有了屏保密碼保護的功能。
好了,現在總結一下吧,如果你想開啟屏保保護的密碼,使用最後一種方法比較好,可以在另一臺電腦中將password.cpl修改為上面的那樣,重新啟動電腦就可以將它複製到相應的目錄下就可以了。這樣進行win中就是開始還有密碼保護也能點選OK回到win中來。
最後說的是希望大家來訪問我的網站:http://programhunter.myrice.com/welcome1.htm