国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
OllyDBG破解入門實例(圖)_3
現(xiàn)在我們來按 F8 鍵一步步分析一下:
00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 把我們輸入的內(nèi)容送到EAX,我這里是“CCDebuger”
00440F2F |. BA 14104400   MOV EDX,CrackMe3.00441014     ; ASCII "Registered User"
00440F34 |. E8 F32BFCFF   CALL CrackMe3.00403B2C    ; 關(guān)鍵,要用F7跟進去
00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ; 這里跳走就完蛋
當我們按 F8 鍵走到 00440F34 |. E8 F32BFCFF   CALL CrackMe3.00403B2C 這一句時,我們按一下 F7 鍵,進入這個 CALL,進去后光標停在這一句:

我們所看到的那些 PUSH EBX、 PUSH ESI 等都是調(diào)用子程序保存堆棧時用的指令,不用管它,按 F8 鍵一步步過來,我們只關(guān)心關(guān)鍵部分:
00403B2C /$ 53     PUSH EBX
00403B2D |. 56     PUSH ESI
00403B2E |. 57     PUSH EDI
00403B2F |. 89C6     MOV ESI,EAX       ; 把EAX內(nèi)我們輸入的用戶名送到 ESI
00403B31 |. 89D7     MOV EDI,EDX       ; 把EDX內(nèi)的數(shù)據(jù)“Registered User”送到EDI
00403B33 |. 39D0     CMP EAX,EDX       ; 用“Registered User”和我們輸入的用戶名作比較
00403B35 |. 0F84 8F000000   JE CrackMe3.00403BCA    ; 相同則跳
00403B3B |. 85F6     TEST ESI,ESI       ; 看看ESI中是否有數(shù)據(jù),主要是看看我們有沒有輸入用戶名
00403B3D |. 74 68 JE SHORT CrackMe3.00403BA7 ; 用戶名為空則跳
00403B3F |. 85FF     TEST EDI,EDI
00403B41 |. 74 6B JE SHORT CrackMe3.00403BAE
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ; 用戶名長度送EAX
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ; “Registered User”字串的長度送EDX
00403B49 |. 29D0     SUB EAX,EDX       ; 把用戶名長度和“Registered User”字串長度相減
00403B4B |. 77 02 JA SHORT CrackMe3.00403B4F ; 用戶名長度大于“Registered User”長度則跳
00403B4D |. 01C2     ADD EDX,EAX       ; 把減后值與“Registered User”長度相加,即用戶名長度
00403B4F |> 52     PUSH EDX
00403B50 |. C1EA 02 SHR EDX,2       ; 用戶名長度值右移2位,這里相當于長度除以4
00403B53 |. 74 26 JE SHORT CrackMe3.00403B7B ; 上面的指令及這條指令就是判斷用戶名長度最少不能低于4
00403B55 |> 8B0E     MOV ECX,DWORD PTR DS:[ESI] ; 把我們輸入的用戶名送到ECX
00403B57 |. 8B1F     MOV EBX,DWORD PTR DS:[EDI] ; 把“Registered User”送到EBX
00403B59 |. 39D9     CMP ECX,EBX       ; 比較
00403B5B |. 75 58 JNZ SHORT CrackMe3.00403BB5 ; 不等則完蛋
根據(jù)上面的分析,我們知道用戶名必須是“Registered User”。我們按 F9 鍵讓程序運行,出現(xiàn)錯誤對話框,點確定,重新在第一個編輯框中輸入“Registered User”,再次點擊那個“Register now !”按鈕,被 OllyDBG 攔下。因為地址 00440F34 處的那個 CALL 我們已經(jīng)分析清楚了,這次就不用再按 F7 鍵跟進去了,直接按 F8 鍵通過。我們一路按 F8 鍵,來到第二個關(guān)鍵代碼處:
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    ; 關(guān)鍵,要用F7跟進去
00440F56 |. 75 1A JNZ SHORT CrackMe3.00440F72 ; 這里跳走就完蛋
大家注意看一下,地址 00440F51 處的 CALL CrackMe3.00403B2C 和上面我們分析的地址 00440F34 處的 CALL CrackMe3.00403B2C 是不是匯編指令都一樣?。窟@說明檢測用戶名和注冊碼是用的同一個子程序。而這個子程序 CALL 我們在上面已經(jīng)分析過了。我們執(zhí)行到現(xiàn)在可以很容易得出結(jié)論,這個 CALL 也就是把我們輸入的注冊碼與 00440F4C 地址處指令后的“GFX-754-IER-954”作比較,相等則 OK。


好了,我們已經(jīng)得到足夠的信息了?,F(xiàn)在我們在菜單 查看->斷點 上點擊一下,打開斷點窗口(也可以通過組合鍵 ALT+B 或點擊工具欄上那個“B”圖標打開斷點窗口):

為什么要做這一步,而不是把這個斷點刪除呢?這里主要是為了保險一點,萬一分析錯誤,我們還要接著分析,要是把斷點刪除了就要做一些重復工作了。還是先禁用一下,如果經(jīng)過實際驗證證明我們的分析是正確的,再刪不遲?,F(xiàn)在我們把斷點禁用,在 OllyDBG 中按 F9 鍵讓程序運行。輸入我們經(jīng)分析得出的內(nèi)容:
用戶名:Registered User
注冊碼:GFX-754-IER-954
點擊“Register now !”按鈕,呵呵,終于成功了:

OllyDBG 入門系列(三)-函數(shù)參考

作者:CCDebuger
現(xiàn)在進入第三篇,這一篇我們重點講解怎樣使用 OllyDBG 中的函數(shù)參考(即名稱參考)功能。仍然選擇 crackmes.cjb.net 鏡像打包中的一個名稱為 CrackHead 的crackme。老規(guī)矩,先運行一下這個程序看看:

呵,竟然沒找到輸入注冊碼的地方!別急,我們點一下程序上的那個菜單“Shit”(真是 Shit 啊,呵呵),在下拉菜單中選“Try It”,會來到如下界面:

我們點一下那個“Check It”按鈕試一下,哦,竟然沒反應!我再輸個“78787878”試試,還是沒反應。再試試輸入字母或其它字符,輸不進去。由此判斷注冊碼應該都是數(shù)字,只有輸入正確的注冊碼才有動靜。用 PEiD 檢測一下,結(jié)果為 MASM32 / TASM32,怪不得程序比較小。信息收集的差不多了,現(xiàn)在關(guān)掉這個程序,我們用 OllyDBG 載入,按 F9 鍵直接讓它運行起來,依次點擊上面圖中所說的菜單,使被調(diào)試程序顯示如上面的第二個圖。先不要點那個“Check It”按鈕,保留上圖的狀態(tài)。現(xiàn)在我們沒有什么字串好參考了,我們就在 API 函數(shù)上下斷點,來讓被調(diào)試程序中斷在我們希望的地方。我們在 OllyDBG 的反匯編窗口中右擊鼠標,在彈出菜單中選擇 查找->當前模塊中的名稱 (標簽),或者我們通過按 CTR+N 組合鍵也可以達到同樣的效果(注意在進行此操作時要在 OllyDBG 中保證是在當前被調(diào)試程序的領(lǐng)空,我在第一篇中已經(jīng)介紹了領(lǐng)空的概念,如我這里調(diào)試這個程序時 OllyDBG 的標題欄顯示的就是“[CPU - 主線程, 模塊 - CrackHea]”,這表明我們當前在被調(diào)試程序的領(lǐng)空)。通過上面的操作后會彈出一個對話框,如圖:

對于這樣的編輯框中輸注冊碼的程序我們要設斷點首選的 API 函數(shù)就是 GetDlgItemText 及 GetWindowText。每個函數(shù)都有兩個版本,一個是 ASCII 版,在函數(shù)后添加一個 A 表示,如 GetDlgItemTextA,另一個是 UNICODE 版,在函數(shù)后添加一個 W 表示。如 GetDlgItemTextW。對于編譯為 UNCODE 版的程序可能在 Win98 下不能運行,因為 Win98 并非是完全支持 UNICODE 的系統(tǒng)。而 NT 系統(tǒng)則從底層支持 UNICODE,它可以在操作系統(tǒng)內(nèi)對字串進行轉(zhuǎn)換,同時支持 ASCII 和 UNICODE 版本函數(shù)的調(diào)用。一般我們打開的程序看到的調(diào)用都是 ASCII 類型的函數(shù),以“A”結(jié)尾。又跑題了,呵呵?,F(xiàn)在回到我們調(diào)試的程序上來,我們現(xiàn)在就是要找一下我們調(diào)試的程序有沒有調(diào)用 GetDlgItemTextA 或 GetWindowTextA 函數(shù)。還好,找到一個 GetWindowTextA。在這個函數(shù)上右擊,在彈出菜單上選擇“在每個參考上設置斷點”,我們會在 OllyDBG 窗口最下面的那個狀態(tài)欄里看到“已設置 2 個斷點”。另一種方法就是那個 GetWindowTextA 函數(shù)上右擊,在彈出菜單上選擇“查找輸入函數(shù)參考”(或者按回車鍵),將會出現(xiàn)下面的對話框:
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【原創(chuàng)】OllyDBG分析報告系列(1)
OllyDBG 入門系列(四)-內(nèi)存斷點
OllyDBG序列號追蹤小記
Linux反編譯全攻略
詳解反調(diào)試技術(shù)
qq反匯編日志
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服