一個CrackMe的破解 *KeyFIle保護* (教你如何獲得 KeyFile) (5千字)
最近一直在研究KeyFIle保護的軟體破解,就到CCG的主頁上下載了一個CrackMe,試著破了一下,請看:
由於筆者沒有時間複查,所以如有錯誤的地方請大家支出!
這個crackme在咖菲貓的家(CCG)的主頁有下載.
下載地址:http://go3.163.com/~gfcrack/crackme/Cruehead.3.zip
一個CrackMe的破解 *KeyFIle保護* (教你如何獲得 KeyFile)
1/2破解人:TAE! 另外1/2破解人:XXX!!!
用FileMon檢測出此CrackMe會讀取crackme3.key這個檔案,所以我們手動建立它,然後開啟
這個檔案,輸入 1234567890abcd 這些字元.執行trw設定斷點BPX CreateFilea.然後運
行程式,被中斷,按F5,F12各一次.便來到了這兒:
* Possible StringData Ref from Data Obj ->"CRACKME3.KEY"
|
:00401028 68D7204000 push
004020D7
* Reference To: KERNEL32.CreateFileA, Ord:0000h
|
:0040102D E876040000 Call
004014A8
:00401032 83F8FF
cmp eax, FFFFFFFF <---我們到了這裡,
:00401035 750C
jne 00401043 // 檢測crackme3.key這個檔案
是否存在.存在就跳走.
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401035(C)
|
:00401043 A3F5204000 mov dword
ptr [004020F5], eax
:00401048 B812000000 mov eax,
00000012
:0040104D BB08204000 mov ebx,
00402008
:00401052 6A00
push 00000000
:00401054 68A0214000 push
004021A0
:00401059 50
push eax
:0040105A 53
push ebx
:0040105B FF35F5204000 push dword
ptr [004020F5]
* Reference To: KERNEL32.ReadFile, Ord:0000h
|
:00401061 E830040000 Call
00401496
//讀取檔案的位元組數
:00401066 833DA021400012 cmp dword ptr [004021A0],
00000012 //比較位元組數是不是12
:0040106D 75C8
jne 00401037
//小於12就跳走!完了
所以 Key 檔案的大小應該為18個位元組.
我們在Crackme3.key檔案中輸入18個字元,我是這樣輸的:1234567890abcdefgh
繼續來到這裡:
:0040106F 6808204000 push
00402008
:00401074 E898020000 call
00401311
*//對你輸入的字元編碼
:00401079 8135F920400078563412 xor dword ptr [004020F9], 12345678
註冊成功後,編碼後的
:00401083 83C404
add esp, 00000004
字元就是你的大名了!
:00401086 6808204000 push
00402008
:0040108B E8AC020000 call
0040133C
:00401090 83C404
add esp, 00000004
:00401093 3B05F9204000 cmp eax, dword
ptr [004020F9] //
:00401099 0F94C0
sete al
:0040109C 50
push eax
:0040109D 84C0
test al, al
:0040109F 7496
je 00401037
進入*那個Call看看吧!在這裡,*****運算核心*****
:00401311 33C9
xor ecx, ecx
//清空暫存器ecx
:00401313 33C0
xor eax, eax
//清空暫存器eax
:00401315 8B742404
mov esi, dword ptr [esp+04] //Keyfile中的字串給esi
:00401319 B341
mov bl, 41
//將A這個字元傳給bl
:0040131B 8A06
mov al, byte ptr [esi] //KeyFile中第一個字元給al,就是我們輸入的1
:0040131D 32C3
xor al, bl
//異或al,bl傳給al
:0040131F 8806
mov byte ptr [esi], al //al給esi
:00401321 46
inc esi
//指向下一個esi中的字元
:00401322 FEC3
inc bl
//bl加1
:00401324 0105F9204000 add dword
ptr [004020F9], eax //異或後的每個ascii碼的值相加給004020F9*(這個值很重要設為X)
:0040132A 3C00
cmp al, 00
:0040132C 7407
je 00401335
:0040132E FEC1
inc cl
:00401330 80FB4F
cmp bl, 4F
:00401333 75E6
jne 0040131B
//迴圈
從這裡可以知道程式取keyfile中的字串進行編碼(第一個字元和A異或,第二個字元於B異或……,然後將結果儲存在Esi中)
但Keyfile中的最後四個字元不參加運算,而是作為判斷是否為真正keyfile的關鍵字元!)
(注意:若我們Keyfile檔案中第一個字元為A那麼破解後無法顯示你的大名)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040132C(C)
|
:00401335 890D49214000 mov dword
ptr [00402149], ecx
:0040133B C3
ret
運算完成後,我們便來到這裡:*************(這也是我有疑問的地方,請各位幫忙!!!)*************
:00401079 8135F920400078563412 xor dword ptr [004020F9], 12345678
//X和12345678異或的值(設為Y)
:00401083 83C404
add esp, 00000004
:00401086 6808204000 push
00402008
:0040108B E8AC020000 call
0040133C
//取出keyfile最後四位字元
:00401090 83C404
add esp, 00000004
:00401093 3B05F9204000 cmp eax, dword
ptr [004020F9] //最後四位字元十六進位制是否為X
:00401099 0F94C0
sete al
:0040109C 50
push eax
:0040109D 84C0
test al, al
:0040109F 7496
je 00401037
//不能跳!
所以要讓我們keyfile的最後四位字元的十六進位制的值=Y
異或後的結果的第1位開始到第14位就是你的姓名了!!!
這樣,應該不難寫出序號產生器了吧? 可惜我不懂程式設計;(
請教高手們:
如何在文字檔案中輸入那些很奇怪的字元?如:Keyfile檔案的最後四位一定要為十六進位制的:12345678
那麼這個12的ascii字元怎麼輸入呢?是否需要程式設計來獲得?請高人指點,小弟謝了!!!!!!!
TAE!
2001年2月5日
相關文章
- 一個簡單的keyfile保護的破解 (3千字)2001-06-15
- 請看小弟KeyFile保護的破解 (7千字)2001-02-01
- duelist crackme 1 破解 (5千字)2000-10-16
- 第二個CrackMe的破解 (6千字)2001-08-17
- 希望萬變不離其中,先分析如何得到keyfile的部分
(7千字)2015-11-15
- Pexplorer 1.70 完全破解(KeyFile&Name+Code),附序號產生器~~~~~~~~~
(17千字)2002-04-03
- Grduw最新版破解過程(爆破keyfile,nag,時間限制,暗樁,字元加密)... (10千字)2001-10-16字元加密
- Fpc大哥crackme的破解。 (4千字)2001-09-22
- 硬碟保護卡的破解 (轉)~~~~ (2千字)2001-11-23硬碟
- 一個CrackMe的破解以及序號產生器的製作
(4千字)2001-08-16
- duelist crackme 2 破解(上) (6千字)2000-10-17
- 關於幾個簡單遊戲的CD保護破解。 (3千字)2001-01-05遊戲
- 冷雨飄心的第二個crackme的破解方法,大家看看對不對! (5千字)2001-10-18
- crackme破解教程(續) (高手莫入) (2千字)2001-03-17
- Nullz CrackMe 1.1破解過程 (13千字)2001-09-18Null
- 四個簡單的VB6 PCODE的crackme的2 Nag, 2 Code的破解。 (5千字)2001-10-14
- 硬碟保護卡破解--小哨兵篇 (1千字)2002-06-16硬碟
- 只需5項,教你保護資料安全!2023-03-17
- 如何破解Word文件密碼保護2017-01-16密碼
- 破解EXCLE保護2010-06-05
- 一個超容易破解的軟體! (5千字)2001-01-21
- Go語言如何獲得一個檔案的md5值2015-04-07Go
- 翻譯“如何破解VB5程式的密碼保護... ( By DMA-48!!! )”,希望不會翻重 (4千字)2001-06-30密碼
- 如何破解CuteFTP 4.0 (5千字)2000-07-20FTP
- 保護雲端資料的5個技巧2021-03-05
- labview密碼保護方式及如何保護labview密碼不被破解2016-06-11View密碼
- MongoDB副本集keyFile認證檔案必須滿足的條件2018-06-04MongoDB
- 改一個位元組破解星際爭霸母巢之戰1.08b的光碟保護 (1千字)2001-10-27
- 7個溫馨提示,教你保護網路安全!2022-06-16
- MongoDB 3.2.7 基於keyFile的認證在副本集+叢集分片中的使用2016-12-14MongoDB
- 保護MacBook安全,分享5個物理技巧2022-02-24Mac
- 對一種加密保護的思想的一點分析..... (1千字)2001-05-11加密
- flashsoft得簡單破解 (6千字)2001-05-26
- PolyView 破解 (5千字)2000-12-31View
- 破解MyMahj (5千字)2001-06-20
- 如何完美破解PE EXPLORER 1.2 (5千字)2001-06-13
- EXCEL工作表保護密碼破解2010-06-01Excel密碼
- 破解練習-CRACKME0012023-02-11