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

正文內容

ollydbg圖文入門教程資料-文庫吧資料

2024-11-11 05:21本頁面
  

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