我們先來運行一下這個 crackme(用 PEiD 檢測顯示是 Delphi 編的),界面如圖:
這個 crackme 已經把用戶名和註冊碼都輸好了,省得我們動手^_^。如下圖
我們在那個“Register now !”按鈕上點擊一下,將會跳出一個對話框:
好了,今天我們就從這個錯誤對話框中顯示的“Wrong Serial, try again!”來入手。啓動 OllyDBG,選擇菜單 文件->打開 載入 CrackMe3.exe 文件,我們會停在這裏:
我們在反彙編窗口中右擊,出來一個菜單,我們在查找->所有參考文本字串 上左鍵點擊:
但我們的目標是熟悉 OllyDBG 的一些操作,我就儘量使用 OllyDBG 自帶的功能,少用插件。好了,現在出來另一個對話框,如下圖
我們在這個對話框裏右擊,選擇“查找文本”菜單項,輸入“Wrong Serial, try again!”的開頭單詞“Wrong”(注意這裏查找內容要區分大小寫)來查找,(但我經過嘗試,只有選擇下面的“整個範圍”,系統纔開始查找,並找到所有符合條件的項目)。如下圖
找到兩處:
在我們找到的字串上右擊,再在出來的菜單上點擊“反彙編窗口中跟隨”,我們來到這裏:
見上圖,爲了看看是否還有其他的參考,可以通過選擇右鍵菜單查找參考->立即數,會出來一個對話框:
分別雙擊上面標出的兩個地址,我們會來到對應的位置:
我們在反彙編窗口中向上滾動一下再看看:
00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 ; ASCII "Registered User"
00440F34 |. E8 F32BFCFF CALL CrackMe3.00403B2C ; 關鍵,要用F7跟進去
00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ; 這裏跳走就完蛋
00440F3B |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
00440F3E |. 8B83 C8020000 MOV EAX,DWORD PTR DS:[EBX+2C8]
00440F44 |. E8 D7FEFDFF CALL CrackMe3.00420E20
00440F49 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00440F4C |. BA 2C104400 MOV EDX,CrackMe3.0044102C ; ASCII "GFX-754-IER-954"
00440F51 |. E8 D62BFCFF CALL CrackMe3.00403B2C ; 關鍵,要用F7跟進去
00440F56 |. 75 1A JNZ SHORT CrackMe3.00440F72 ; 這裏跳走就完蛋
00440F58 |. 6A 00 PUSH 0
00440F5A |. B9 3C104400 MOV ECX,CrackMe3.0044103C ; ASCII "CrackMe cracked successfully"
00440F5F |. BA 5C104400 MOV EDX,CrackMe3.0044105C