Password Keeper v6.3破解過程 (8千字)
Password Keeper v6.3破解過程 (難度:較易)
你是否有一大堆的密碼,email,5460,rar檔案.....。讓人頭大。也許Password
Keeper可以幫你一個忙。它是一個管理密碼的優秀軟體,只要記住一個密碼,你就可以管理你所有的帳號和密碼了。以下是其破解過程。
下斷點bpx GetDlgItemTexta,填入姓名gearboy,組織energy,假序列號654321,點OK,立即被TRW2000攔下。鍵入命令pmodule,若干F10返回到呼叫的Call處,即00414962。
017F:0041495F 6A65 PUSH
BYTE +65
017F:00414961 55
PUSH EBP
017F:00414962 E88978FFFF
CALL 0040C1F0 //由此Call返回,此Call取組織名
017F:00414967
8D7E32 LEA EDI,[ESI+32]
//停在此處,EDI指向組織名energy
017F:0041496A 6A32
PUSH BYTE +32
017F:0041496C 57
PUSH EDI
017F:0041496D 6A66
PUSH BYTE +66
017F:0041496F 55
PUSH EBP
017F:00414970
E87B78FFFF CALL 0040C1F0
017F:00414975 8D442430
LEA EAX,[ESP+30]
017F:00414979 6800010000
PUSH DWORD 0100
017F:0041497E 50
PUSH EAX
017F:0041497F 6A67
PUSH BYTE +67
017F:00414981
55 PUSH EBP
017F:00414982 E86978FFFF CALL 0040C1F0
//此Call取假序列號
017F:00414987 8D4C2440
LEA ECX,[ESP+40] //ECX指向假序列號654321
017F:0041498B
51 PUSH ECX
//ECX傳遞引數
017F:0041498C E8BE7A0000
CALL 0041C44F //將假序列號轉化為十六進位制數放入EAX
017F:00414991 56 PUSH
ESI
017F:00414992 8BD8 MOV
EBX,EAX //將假序列號的十六進位制形式放入EBX
017F:00414994
E8574A0000 CALL 004193F0 //將姓名長度放入EDX,並計算根據姓名計算出的部分和,具體在後面分析
017F:00414999 83C438 ADD
ESP,BYTE +38
017F:0041499C 3D92A71901 CMP
EAX,0119A792 //檢驗部分和是否為0119A792,可能是個超級使用者名稱產生的部分和,只要是滿足這個條件,任何密碼都能註冊,具體沒有深入研究,一般的使用者名稱都不會滿足這個條件,所以都直接跳到004149BB
017F:004149A1 7518 JNZ
004149BB //不等則跳
017F:004149A3 8B1D68414200
MOV EBX,[00424168]
017F:004149A9 68588B4200
PUSH DWORD 00428B58
017F:004149AE 56
PUSH ESI
017F:004149AF FFD3
CALL EBX
//call lstrcpya,使EAX指向Gregory Braun
017F:004149B1 68488B4200
PUSH DWORD 00428B48
017F:004149B6 57
PUSH EDI
017F:004149B7 FFD3
CALL EBX
//call lstrcpya,使EAX指向Software Design
017F:004149B9 EB07
JMP SHORT 004149C2
017F:004149BB 3D3CCE5F0D CMP EAX,0D5FCE3C
//又是一個超級使用者名稱比較
017F:004149C0 750C
JNZ 004149CE //不等則跳
017F:004149C2 57
PUSH EDI
017F:004149C3
56 PUSH ESI
017F:004149C4 E8575E0000 CALL 0041A820
017F:004149C9
83C408 ADD ESP,BYTE +08
017F:004149CC 8BD8 MOV
EBX,EAX
017F:004149CE 57
PUSH EDI
017F:004149CF 56
PUSH ESI
017F:004149D0 E84B5E0000
CALL 0041A820 //關鍵的Call,計算密碼,用F8跟入
017F:004149D5
83C408 ADD ESP,BYTE +08
017F:004149D8 3BD8 CMP
EBX,EAX //EBX中為假序列號的十進位制形式,EAX中為真序列號的十進位制形式,D EBX和D EAX可分別看到
017F:004149DA 5F POP
EDI
017F:004149DB 741D
JZ 004149FA //不跳則出錯
017F:004149DD 68CFEA0000
PUSH DWORD EACF
017F:004149E2 6888130000
PUSH DWORD 1388
017F:004149E7 55
PUSH EBP
017F:004149E8 E87375FFFF
CALL 0040BF60 //出錯對話方塊
-----------------------------------------------------------------------------------------
004149D0處用F8跟入後,程式碼如下
017F:0041A820 8B442404
MOV EAX,[ESP+04] //使EAX指向姓名gearboy
017F:0041A824
56 PUSH ESI
017F:0041A825 8B3584D14300 MOV ESI,[0043D184]
017F:0041A82B 50 PUSH
EAX //引數傳遞給子程式
017F:0041A82C 81CE78030000
OR ESI,0378
017F:0041A832 E8B9EBFFFF
CALL 004193F0 //計算部分和的子程式,結果入EAX,關鍵,用F8跟入
017F:0041A837
8B4C2410 MOV ECX,[ESP+10]
//使ECX指向組織名energy
017F:0041A83B 03F0
ADD ESI,EAX //ESI和EAX相加,結果入ESI,註冊碼中間結果
017F:0041A83D 51 PUSH
ECX //引數傳遞給子程式
017F:0041A83E E8ADEBFFFF
CALL 004193F0 //呼叫同一個計算部分和的子程式,所使用的是組織名
017F:0041A843 83C408 ADD
ESP,BYTE +08
017F:0041A846 03C6
ADD EAX,ESI //ESI和EAX相加,結果入EAX,此時EAX中即為正確註冊碼的十六進位制形式
017F:0041A848 5E POP
ESI
017F:0041A849 C3
RET
-----------------------------------------------------------------------------------------
0041A832處用F8跟入後,程式碼如下
017F:004193F0 51
PUSH ECX
017F:004193F1 53
PUSH EBX
017F:004193F2 8B5C240C
MOV EBX,[ESP+0C]
//EBX指向姓名gearboy
017F:004193F6 56
PUSH ESI
017F:004193F7 33F6
XOR ESI,ESI
017F:004193F9 53
PUSH EBX
017F:004193FA
8974240C MOV [ESP+0C],ESI
017F:004193FE FF1560414200 CALL `KERNEL32!lstrlenA`
//得到姓名長度,結果入EAX
017F:00419404 85DB
TEST EBX,EBX
//測試姓名是否為空
017F:00419406 744F
JZ 00419457 //不言而喻
017F:00419408 85C0 TEST
EAX,EAX //測試姓名長度是否為零
017F:0041940A
744B JZ 00419457
//懶得說了
017F:0041940C 33D2
XOR EDX,EDX
017F:0041940E 85C0
TEST EAX,EAX
017F:00419410
7E45 JNG 00419457
017F:00419412 55 PUSH
EBP
017F:00419413 57
PUSH EDI
017F:00419414 BE00974200 MOV
ESI,00429700 //ESI指向金鑰, D 00429700可看到
金鑰為|b!pz*ls;rn|lf$vi^Axpe)rx5aic&9/2m5lsi4@0dmZw94cmqpfhw,這是第一個金鑰,下面還有一個
017F:00419419 BF01000000 MOV EDI,01
//EDX作計數器,相當於i,i從1到姓名長度n
017F:0041941E 2BF3
SUB ESI,EBX
017F:00419420 8BCB
MOV ECX,EBX
017F:00419422
2BFB SUB EDI,EBX
017F:00419424 0FBE1C0E MOVSX EBX,BYTE
[ESI+ECX] //金鑰1的第i字元ASC碼符號擴充套件入EBX
017F:00419428 0FBEAC10C8964200 MOVSX
EBP,BYTE [EAX+EDX+004296C8] //004296C8指向第二個
金鑰,D 004296C8可看到#serB&nz|mfM1/5(!sd$Mq.{s]+sFjtKpzSdtzoXqmb^Al@dv:s?x/
從金鑰向後第n+i(n=姓名長度)個字元ASC碼入EBP
017F:00419430 0FAFDD
IMUL EBX,EBP //兩者帶符號相乘
017F:00419433 8D2C0F
LEA EBP,[EDI+ECX] //計數值i入EBP
017F:00419436 0FAFDD IMUL
EBX,EBP //和上面的計算結果帶符號相乘
017F:00419439 0FBE29
MOVSX EBP,BYTE [ECX] //姓名的第i個字元的ASC碼符號擴充套件入EBP
017F:0041943C
0FAFDD IMUL EBX,EBP
//再和以上結果相乘入EBX
017F:0041943F 8B6C2410 MOV
EBP,[ESP+10] //將上次的結果入EBP
017F:00419443 03EB
ADD EBP,EBX
//上次結果和這次相加
017F:00419445 42
INC EDX //計數器加1
017F:00419446 41 INC
ECX //姓名指標向後移動1位
017F:00419447
3BD0 CMP EDX,EAX
//檢驗計數值是否小於姓名長度
017F:00419449 896C2410
MOV [ESP+10],EBP //這次計算的中間結果入[ESP+10]
017F:0041944D 7CD5 JL
00419424 //小於姓名長度,迴圈
017F:0041944F 8BC5
MOV EAX,EBP
//計算結果入EAX
017F:00419451 5F
POP EDI
017F:00419452 5D
POP EBP
017F:00419453 5E
POP ESI
017F:00419454
5B POP EBX
017F:00419455 59 POP
ECX
017F:00419456 C3
RET
所以這個子程式是由金鑰1,金鑰2和姓名(或組織名)完成的求和運算過程。最後將這些結果相加,就是正確的註冊碼了。
歡迎轉載,謝謝。
By 季風(gearboy)
2002.4.12
相關文章
- OICQ HACK 1.0 破解過程 (9千字)2001-04-23
- Nullz CrackMe 1.1破解過程 (13千字)2001-09-18Null
- WebTimeSync 5.2.0 破解過程 (14千字)2001-10-05Web
- HEdit 2.0 的註冊破解過程 <<-------可能過時了高手末入
(8千字)2001-02-23
- dfx V4.0破解過程 (10千字)2000-09-24
- 破解過程-----請多多指教 (2千字)2000-12-31
- 電腦字型秀破解過程 (1千字)2001-03-18
- webeasymail的簡單破解過程 (2千字)2001-08-04WebAI
- Kryptel 3.8 暴力破解過程 (18千字)2001-09-18
- PUZZLER1.20破解過程 (4千字)2002-01-26
- SuperCleaner2.30破解過程 (11千字)2002-02-04
- Visual Zip Password Recovery 4.0破解
(1千字)2000-10-13
- post NOW! 破解過程!有意思。 (1千字)2000-12-30
- 有聲有色3.33破解過程 (4千字)2001-02-09
- 專業掃雷 1.2破解過程 (4千字)2001-02-17
- fulldisk A32 破解過程!(簡單) (1千字)2001-03-20
- 具體的破解過程來也! (10千字)2001-04-21
- 密碼大師4.0破解過程 (3千字)2001-05-06密碼
- EmEditor v3.16破解過程 (9千字)2001-07-22
- 對VCDCUT 4.03的分析破解過程 (18千字)2001-08-08
- 木馬克星5.33.60破解過程
(9千字)2002-03-28
- GaitCD破解全過程(installshield) (3千字)2015-11-15AI
- pecompact1.50破解過程 (加入BCG的第一篇) (8千字)2001-06-28
- 音樂賀卡廠4.10破解過程 (6千字)2001-08-11
- 蒙泰5.0加密狗破解過程 (6千字)2001-10-11加密
- 加密精靈V2.2破解過程 (9千字)2001-10-28加密
- 破解 OverNimble Localize Plus 1.04
全過程! (13千字)2015-11-15
- winimage完全破解 (8千字)2001-07-04
- 轉載:InstallShield Password 破解一例 (1千字)2001-02-09
- 我終於破解了魔裝網神了,破解過程!!,不過是用2.70破解的。 (1千字)2001-10-15
- 如何破解Bestofware SmartUI Activex 所有版本。(過程)
(5千字)2000-12-31UI
- PassWD2000破解過程~~~轉貼~~~~~~ (11千字)2001-10-10
- PowerArchiver破解過程。2015-11-15Hive
- 破解<<破解堅盾磁碟加密系統 V4.0>>的全過程 (10千字)2001-10-23加密
- supercleaner 2.0 超酷的系統清潔工具破解過程!
(3千字)2001-03-23
- 《伊妹捕神中文版》 破解過程詳解 (6千字)2001-04-29
- Don't Panic 3.2的破解過程(俺是新手) (3千字)2001-05-15
- 交作業了!!!!!!PECompact1.48破解過程 (6千字)2001-06-26