破解的程式:Windows超級設定723。
前幾天在論壇上看了一篇破解文字框輸入限制的文章,得到些啟示,於是有了這篇破文。
執行程式,提示註冊,可輸入框竟不能輸入,嘗試用貼上法也行。註冊碼很容易找到,用__vbastrcomp比較,
ollydbg跟蹤即可看到。可無論如何無法輸入。555!!!
跟蹤regform_load,發現不像是text1.enabled=false,因為如果那樣,輸入框沒有游標閃動,且不接受右鍵點
擊。反彙編找__vbaobjectset,看看前面是否有push 00(enabled=false)沒找到。用vbded反編譯也沒看出什麼
東西。看來是另做了手腳。
沒辦法,只好想辦法改記憶體來給它資料。以下用另一VB程式來模擬輸入。
00413013
LEA ECX,DWORD PTR SS:[EBP-38] --->文字框指標
00413016
PUSH ECX
00413017 PUSH EDI
00413018 MOV EAX,DWORD PTR DS:[EDI]
0041301A CALL DWORD PTR DS:[EAX+A0] --->讀文字框資料
00413020 TEST EAX,EAX
00413022 FCLEX
00413024
JGE SHORT EX611.00413038
00413026 PUSH 0A0
0041302B PUSH
EX611.00411A48
00413030 PUSH EDI
00413031 PUSH EAX
00413032 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;
MSVBVM60.__vbaHresultCheckObj
00413038 MOV EDX,DWORD
PTR SS:[EBP-38] --->得到輸入碼
0041303B LEA ECX,DWORD
PTR SS:[EBP-34]
0041303E MOV DWORD PTR SS:[EBP-38],0
00413045
CALL ESI
00413047 LEA ECX,DWORD PTR SS:[EBP-48]
0041304A
CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;
MSVBVM60.__vbaFreeObj
00413050 MOV EDX,DWORD PTR SS:[EBP-30]
00413053
MOV EAX,DWORD PTR SS:[EBP-34]
00413056 PUSH EDX
--->輸入碼
00413057 PUSH EAX
--->正確碼
00413058 PUSH 0
0041305A
CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCo>;
MSVBVM60.__vbaStrComp --->比較是否相等
在0041301A處跟入,裡面還有個call,再跟入,直到:
****CED2 PUSH DWORD PTR SS:[EBP+10]
****CED5 PUSH DWORD PTR SS:[EBP+C]
--->輸入碼。在OllyDbg中轉存跟隨數值,如果輸入為空,
可能顯示ABEF0108等亂碼。將其改為正確註冊碼即可。注意不要用寬字元,輸完後以00結束(98中好像用0001結
束)。
****CED8 CALL MSVBVM60.733BD01B
(以上地址前四位可能不同,但後四位應該是一樣的。)
再次執行Windows超級設定723,出現註冊提示直接點選確定,在****CED5處中斷。修改記憶體,收工。
本人水平不高,不能破解輸入限制,只能改記憶體。麻煩哪位高手看看怎麼破解,我等也好學習。