freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ollydbg圖文入門教程資料-文庫(kù)吧資料

2024-11-11 05:21本頁(yè)面
  

【正文】 。如果我們輸入的是負(fù)數(shù),則此處功能就是把 EAX 中的值取反 00401404 |. 5E POP ESI 。 把 EDX中的值與經(jīng)過(guò)上面運(yùn)算后的 ECX 中值相加送到 EAX 00401402 |. 33C2 XOR EAX,EDX 。 指針加 1,指向再下一個(gè)字符 004013FB | 0AC0 OR AL,AL 004013FD |.^ 75 F1 JNZ SHORT 。 每位字符運(yùn)算后的值與 2倍上一位字符運(yùn)算后值相加后送 ECX 004013F8 |. 8A06 MOV AL,BYTE PTR DS:[ESI] 。 每位字符減 16 進(jìn)制的 30,因?yàn)檫@里都是數(shù)字,如 1 的 ASCII 碼是 “31H”,減 30H 后為 1,即我們平時(shí)看到的數(shù)值 004013F2 |. 8D0C89 LEA ECX,DWORD PTR DS:[ECX+ECX*4] 。 取 “”號(hào)后的第一個(gè)字符 004013ED |. 46 INC ESI 。 不等則跳 004013E6 |. BA FFFFFFFF MOV EDX,1 。 指針加 1,指向下一個(gè)字符 004013E2 |. 3C 2D CMP AL,2D 。 EDX 清零 004013DF |. 8A06 MOV AL,BYTE PTR DS:[ESI] 。 把注冊(cè)碼框中的數(shù)值送到 ESI 004013DB |. 33C9 XOR ECX,ECX 。 ESI 入棧 004013D3 |. 33C0 XOR EAX,EAX 。 不等則完蛋 光標(biāo)停在 00401328 地址處的那條指令上。 關(guān)鍵,要按 F7 鍵跟進(jìn)去 0040132D |. 3BC6 CMP EAX,ESI 。刪掉 00401474 地址處的斷點(diǎn)后,我再按 F8 鍵,呵,完了,跑到 的領(lǐng)空了。 原來(lái)是跳到另一個(gè)斷點(diǎn)了。 0040148C $ FF25 24204000 JMP DWORD PTR DS:[amp。 00401486 $ FF25 20204000 JMP DWORD PTR DS:[amp。 00401480 $ FF25 1C204000 JMP DWORD PTR DS:[amp。 0040147A $ FF25 30204000 JMP DWORD PTR DS:[amp。等等,怎么回事?怎么按一下 F8 鍵跑到這來(lái)了: 00401474 $ FF25 2C204000 JMP DWORD PTR DS:[amp。s Crack Head”,對(duì)話框顯示的內(nèi)容是 “Now write a keygen and tut and you39。 MessageBoxA 從上面的代碼,我們很容易看出 00401328 地址處的 CALL 是關(guān)鍵,必須仔細(xì)跟蹤。 hOwner 0040136E |. E8 19010000 CALL JMP.amp。 Text = Now write a keygen and tut and you39。 Title = Crudd39。re done.,0 0040135F | 6A 00 PUSH 0 。 比較 0040132F |. 75 42 JNZ SHORT 。 GetWindowTextA 00401328 |. E8 A5000000 CALL 。斷點(diǎn)設(shè)好后我們轉(zhuǎn)到我們調(diào)試的程序上來(lái),現(xiàn)在我們?cè)诒晃覀冋{(diào)試的程序上點(diǎn)擊那個(gè) “Check It”按鈕,被 OllyDBG 斷下: 00401323 |. E8 4C010000 CALL JMP.amp。這個(gè)程序只需在第一條指令設(shè)斷點(diǎn)就可以了。在這個(gè)函數(shù)上右擊,在彈出菜單上選擇 “ 在每個(gè)參考上設(shè)置斷點(diǎn) ” ,我們會(huì)在 OllyDBG 窗口最下面的那個(gè)狀態(tài)欄里看到“ 已設(shè)置 2 個(gè)斷點(diǎn) ” ?,F(xiàn)在回到我們調(diào)試的程序上來(lái),我們現(xiàn)在就是要找一下我們調(diào)試的程序有沒(méi)有調(diào)用 GetDlgItemTextA 或 GetWindowTextA 函數(shù)。一般我們打開的程序看到的調(diào)用都是 ASCII 類型的函數(shù),以 “A” 結(jié)尾。對(duì)于編譯為 UNCODE 版的程序可能在 Win98 下不能運(yùn)行,因?yàn)? Win98 并非是完全支持 UNICODE 的系統(tǒng)。每個(gè)函數(shù)都有兩個(gè)版本,一個(gè)是 ASCII 版,在函數(shù)后添加一個(gè) A 表示,如 GetDlgItemTextA,另一個(gè)是 UNICODE 版,在函數(shù)后添加一個(gè) W 表示。我們?cè)? OllyDBG 的反匯編窗口中右擊鼠標(biāo),在彈出菜單中選擇 查找 當(dāng)前模塊中的名稱 (標(biāo)簽 ),或者我們通過(guò)按 CTR+N 組合鍵也可以達(dá)到同樣的效果(注意在進(jìn)行此操作時(shí)要在 OllyDBG 中保證是在當(dāng)前被調(diào)試程序的領(lǐng)空,我在第一篇中已經(jīng)介紹了領(lǐng)空的概念,如我這里調(diào)試這個(gè)程序時(shí) OllyDBG 的標(biāo)題欄顯示的就是 “[CPU 主線程 , 模塊 CrackHea]” ,這表明我們當(dāng)前在被調(diào)試程序的 領(lǐng)空)。先不要點(diǎn)那個(gè) “Check It” 按鈕,保留上圖的 狀態(tài)。用 PEiD 檢測(cè)一下,結(jié)果為 MASM32 / TASM32,怪不得程序比較小。再試試輸入字母或其它字符,輸不進(jìn)去。仍然選擇 鏡像打包中的一個(gè)名稱為 CrackHead 的 crackme?,F(xiàn)在我們把斷點(diǎn)禁用,在 OllyDBG 中按 F9 鍵讓程序運(yùn)行?,F(xiàn)在我們?cè)诓藛? 查看 斷點(diǎn) 上點(diǎn)擊一下,打開斷點(diǎn)窗口(也可以通過(guò)組合鍵 ALT+B 或點(diǎn)擊工具欄上那個(gè) “B” 圖標(biāo)打開斷點(diǎn)窗口): 為什么要做這一步,而不是把這個(gè)斷點(diǎn)刪除呢?這里主要是為了保險(xiǎn)一點(diǎn),萬(wàn)一分析錯(cuò)誤,我們還要接著分析,要是把斷點(diǎn)刪除了就要做一些重復(fù)工作了。 我們執(zhí)行到現(xiàn)在可以很容易得出結(jié)論,這個(gè) CALL 也就是把我們輸入的注冊(cè)碼與 00440F4C 地址處指令后的 “GFX 754IER954” 作比較,相等則 OK。 這里跳走就完蛋 大家注意看一下,地址 00440F51 處的 CALL 和上面我們分析的地址 00440F34 處的 CALL 是不是匯編指令都一樣?。窟@說(shuō)明檢測(cè)用戶名和注冊(cè)碼是用的同一個(gè)子程序。 ASCII GFX754IER954 00440F51 |. E8 D62BFCFF CALL 。我們一路按 F8 鍵,來(lái)到第二個(gè)關(guān)鍵代碼處: 00440F49 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP4] 。我們按 F9 鍵讓程序運(yùn)行,出現(xiàn)錯(cuò)誤對(duì)話框,點(diǎn)確定,重新在第一個(gè)編輯框中輸入 “Registered User”,再次點(diǎn)擊那個(gè) “Register now !”按鈕,被 OllyDBG 攔下。 比較 00403B5B |. 75 58 JNZ SHORT 。 把我們輸入的用戶名送到 ECX 00403B57 |. 8B1F MOV EBX,DWORD PTR DS:[EDI] 。 用戶名長(zhǎng)度值右移 2 位,這里相當(dāng)于長(zhǎng)度除以 4 00403B53 |. 74 26 JE SHORT 。 用戶名長(zhǎng)度大于 “Registered User”長(zhǎng)度則跳 00403B4D |. 01C2 ADD EDX,EAX 。 “Registered User”字串的長(zhǎng)度送 EDX 00403B49 |. 29D0 SUB EAX,EDX 。 用戶名為空則跳 00403B3F |. 85FF TEST EDI,EDI 00403B41 |. 74 6B JE SHORT 00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI4] 。 相同則跳 00403B3B |. 85F6 TEST ESI,ESI 。 把 EDX 內(nèi)的數(shù)據(jù) “Registered User”送到 EDI 00403B33 |. 39D0 CMP EAX,EDX 。 這里跳走就完蛋 當(dāng)我們按 F8 鍵走到 00440F34 |. E8 F32BFCFF CALL 這一句時(shí),我們按一下 F7 鍵,進(jìn)入這個(gè) CALL,進(jìn)去后光標(biāo)停在這一句: 我們所看到的那些 PUSH EBX、 PUSH ESI 等都是調(diào)用子程序保存堆棧時(shí)用的指令,不用管它,按 F8 鍵一步步過(guò)來(lái),我們只關(guān)心關(guān)鍵部分: 00403B2C /$ 53 PUSH EBX 00403B2D |. 56 PUSH ESI 00403B2E |. 57 PUSH EDI 00403B2F |. 89C6 MOV ESI,EAX 。 ASCII Registered User 00440F34 |. E8 F32BFCFF CALL 。如下圖所示: 現(xiàn)在我們來(lái)按 F8 鍵一步步分析一下: 00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP4] 。而 EAX=00000009 指的是你輸入內(nèi)容的長(zhǎng)度。我們看一下信息窗口,你應(yīng)該發(fā)現(xiàn)了你剛才輸入的內(nèi)容了吧?我這里顯示是這樣: 堆棧 SS:[0012F9AC]=00D44DB4, (ASCII CCDebuger) EAX=00000009 上面的內(nèi)存地址 00D44DB4 中就是我們剛才輸入的內(nèi)容,我這里是 CCDebuger。如果你在 調(diào)試選項(xiàng)CPU 標(biāo)簽中把 “顯示跳轉(zhuǎn)路徑 ”及其下面的兩個(gè) “如跳轉(zhuǎn)未實(shí)現(xiàn)則顯示灰色路徑 ”、 “顯示跳轉(zhuǎn)到選定命令的路徑 ”都選上的話,就會(huì)看到是從什么地方跳到出錯(cuò)字串處的: 我們?cè)谏蠄D中地址 00440F2C 處按 F2 鍵設(shè)個(gè)斷點(diǎn),現(xiàn)在我們按 F9 鍵,程序已運(yùn)行起來(lái)了。 ASCII Wrong Serial,try again! 00440F98 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F9D |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00440F9F |. E8 C4C0FFFF CALL 大家注意看一下上面的注釋,我在上面標(biāo)了兩個(gè)關(guān)鍵點(diǎn)。 ASCII Wrong Serial,try again! 00440F7E |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F83 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00440F85 |. E8 DEC0FFFF CALL 00440F8A |. EB 18 JMP SHORT 00440F8C | 6A 00 PUSH 0 00440F8E |. B9 80104400 MOV ECX, 。 ASCII Congrats! You cracked this CrackMe! 00440F64 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F69 |. 8B
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1