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

正文內(nèi)容

ollydbg圖文入門教程資料-在線瀏覽

2025-01-06 05:21本頁面
  

【正文】 00440F93 |. BA 8C104400 MOV EDX, 。有人可能要問,你怎么知道那兩個地方是關(guān)鍵點?其實很簡單,我是根據(jù)查看是哪條指令跳到 “wrong serial,try again”這條字串 對應(yīng)的指令來決定的。我 在上面那個編輯框中隨便輸入一下,如 CCDebuger,下面那個編輯框我還保留為原來的 “754GFXIER954”,我們點一下那個 “Register now !”按鈕,呵, OllyDBG 跳了出來,暫停在我們下的斷點處。你可以在 堆棧 SS:[0012F9AC]=00D44DB4, (ASCII CCDebuger) 這條內(nèi)容上左擊選擇一下,再點右鍵,在彈出菜單中選擇 “數(shù)據(jù)窗口中跟隨數(shù)值 ”,你就會在下面的數(shù)據(jù)窗口中看到你剛才輸入的內(nèi)容。如我輸入的 CCDebuger 是 9 個字符。 把我們輸入的內(nèi)容送到 EAX,我這里是“CCDebuger” 00440F2F |. BA 14104400 MOV EDX, 。 關(guān)鍵,要用 F7 跟進去 00440F39 |. 75 51 JNZ SHORT 。 把 EAX 內(nèi)我們輸入的用戶名送到 ESI 00403B31 |. 89D7 MOV EDI,EDX 。 用 “Registered User”和我們輸入的用戶名作比較 00403B35 |. 0F84 8F000000 JE 。 看看 ESI中是否有數(shù)據(jù),主要是看看我們有沒有輸入用戶名 00403B3D |. 74 68 JE SHORT 。 用戶名長度送 EAX 00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI4] 。 把用戶名長度和 “Registered User”字串長度相減 00403B4B |. 77 02 JA SHORT 。 把減后值與 “Registered User”長度相加,即用戶名長度 00403B4F | 52 PUSH EDX 00403B50 |. C1EA 02 SHR EDX,2 。 上 面的指令及這條指令就是判斷用戶名長度最少不能低于 4 00403B55 | 8B0E MOV ECX,DWORD PTR DS:[ESI] 。 把 “Registered User”送到 EBX 00403B59 |. 39D9 CMP ECX,EBX 。 不等則完蛋 根據(jù)上面的分析,我們知道用戶名必須是 “Registered User”。因為地址 00440F34 處的那個 CALL 我們已經(jīng)分析清楚了,這次就不用再按 F7 鍵跟進去了,直接按 F8 鍵通過。 取輸入的注冊碼 00440F4C |. BA 2C104400 MOV EDX, 。 關(guān)鍵,要用 F7跟進去 00440F56 |. 75 1A JNZ SHORT 。而這個子程序 CALL 我們在上面已經(jīng)分析過了。好了,我們已經(jīng)得到足夠的信息了。還是先禁用一下,如果經(jīng)過實際驗證證明我們的分析是正確的,再刪不遲。輸入我們經(jīng)分析得出的內(nèi)容: 用戶名: Registered User 注冊碼: GFX754IER954 點擊 “Register now !” 按鈕,呵呵,終于成功了: OllyDBG 入門系列(三)-函數(shù)參考 作者: CCDebuger 現(xiàn)在進入第三篇,這一篇我們重點講解怎樣使用 OllyDBG 中的函數(shù)參考(即名稱參考)功能。老規(guī)矩,先運行一下這個程序看看: 呵,竟然沒找到輸入注冊碼的地方!別急,我們點一下程序上的那個菜單 “Shit” (真是 Shit 啊,呵呵),在下拉菜單中選 “Try It” ,會來到如下界面: 我們點一下那個 “Check It” 按鈕試一下,哦,竟然沒反應(yīng)!我再輸個 “78787878” 試試,還是沒反應(yīng)。由此判斷注冊碼應(yīng)該都是數(shù)字,只有輸入正確的注冊碼才有動靜。信息收集的差不多了,現(xiàn)在關(guān)掉這個程序,我們用 OllyDBG 載入,按 F9 鍵直接讓它運行起來,依次點擊上面圖中所說的菜單,使被調(diào)試程序顯示如上面的第二個圖?,F(xiàn)在我們沒有什么字串好參考了,我們就在 API 函數(shù)上下斷點,來讓被調(diào)試程序中斷在我們希望的地方。通過上面的操作后會彈出一個對話框,如圖: 對于這樣的編輯框中輸注冊碼的程序我們要設(shè)斷點首選的 API 函數(shù)就是 GetDlgItemText 及 GetWindowText。如 GetDlgItemTextW。而 NT 系統(tǒng)則從底層支持 UNICODE,它可以在操作系統(tǒng)內(nèi)對字串進行轉(zhuǎn)換,同時支持 ASCII 和 UNICODE 版本函數(shù)的調(diào)用。又跑題了,呵呵。還好,找到一個 GetWindowTextA。另一種方法就是那個 GetWindowTextA 函數(shù)上右擊,在彈出菜單上選擇 “ 查找輸入函數(shù)參考 ” (或者按回車鍵),將會出現(xiàn)下面的對話框: 看上圖,我們可以把兩條都設(shè)上斷點。好,我們現(xiàn)在按前面提到的第一條方法,就是 “在每個參考上設(shè)置斷點 ”,這樣上圖中的兩條指令都會設(shè)上斷點。 。 關(guān)鍵,要按 F7 鍵跟進去 0040132D |. 3BC6 CMP EAX,ESI 。 不等則完蛋 00401331 |. EB 2C JMP SHORT 00401333 |. 4E 6F 77 20 7 ASCII Now write a keyg 00401343 |. 65 6E 20 61 6 ASCII en and tut and y 00401353 |. 6F 75 27 72 6 ASCII ou39。 Style = MB_OK|MB_APPLMODAL 00401361 |. 68 0F304000 PUSH 。s Crack Head 00401366 |. 68 33134000 PUSH 。re done. 0040136B |. FF75 08 PUSH DWORD PTR SS:[EBP+8] 。 。而注冊成功則會顯示一個對話框 ,標題是 “Crudd39。re done.”現(xiàn)在我按一下 F8,準備步進到 00401328 地址處的那條 CALL 指令后再按 F7 鍵跟進去。 。] 。] 。] 。] 。這個斷點我們不需要,按一下 F2 鍵刪掉它吧??匆幌? OllyDBG 的標題欄: “[CPU 主線程 , 模塊 USER32],跑到系統(tǒng)領(lǐng)空了, OllyDBG 反匯編窗口中顯示代碼是這樣: 77D3213C 6A 0C PUSH 0C 77D3213E 68 A021D377 PUSH 77D32143 E8 7864FEFF CALL 怎么辦?別急,我們按一下 ALT+F9 組合鍵,呵,回來了: 00401328 |. E8 A5000000 CALL 。 比較 0040132F |. 75 42 JNZ SHORT ?,F(xiàn)在我們按 F7 鍵跟進: 004013D2 /$ 56 PUSH ESI 。 EAX 清零 004013D5 |. 8D35 C4334000 LEA ESI,DWORD PTR DS:[4033C4] 。 ECX 清零 004013DD |. 33D2 XOR EDX,EDX 。 把注冊碼中的每個字符送到 AL 004013E1 |. 46 INC ESI 。 把取得的字符與 16進制值為 2D 的字符 (即“”)比較,這里主要用于判斷輸入的是不是負數(shù) 004013E4 |. 75 08 JNZ SHORT 。 如果輸入的是負數(shù),則把 1 送到 EDX,即 16 進制 FFFFFFFF 004013EB |. 8A06 MOV AL,BYTE PTR DS:[ESI] 。 指針加 1,指向再下一個字符 004013EE | EB 0B JMP SHORT 004013F0 | 2C 30 SUB AL,30 。 把前面運算后保存在 ECX中的結(jié)果乘 5 再送到 ECX 004013F5 |. 8D0C48 LEA ECX,DWORD PTR DS:[EAX+ECX*2] 。 取下一個字符 004013FA |. 46 INC ESI 。 上面一條和這一條指令主要是用來判斷是否已把用戶輸入的注冊碼計算完 004013FF |. 8D040A LEA EAX,DWORD PTR DS:[EDX+ECX] 。 把 EAX 與 EDX異或。 ESI出棧。 把 ESI 中的值與 797A7553H 異或 0040140B \. C3 RETN 這里留下了一個問題:那個 ESI 寄存器中的值是從哪運算出來的?先不管這里,我們接著按 F8 鍵往下走,來到 0040140B 地址處的那條 RETN 指令(這里可以通過在調(diào)試選項的 “命令 ”標簽中勾選 “使用 RET 代替 RETN”來更改返回指令的顯示方式),再按一下 F8,我們就走出 00401328 地址處的那個 CALL 了。 比較 0040132F |. 75 42 JNZ SHORT 。根據(jù)前面的分析,我們知道 EAX 中存放的是我們輸入的注冊碼經(jīng)過計算后的值。關(guān)掉上面的窗口,再對信息窗口中的 EAX=FF439EBE 做同樣操作: 由上圖我們知道了原來前面分析的對我們輸入的注冊碼進行處理后的結(jié)果就是把字符格式轉(zhuǎn)為數(shù)字格式。這下就很清楚了,隨便在上面那個修改 ESI 圖中顯示的有符號或無符號編輯框中復(fù)制一個,粘貼到我們調(diào)試的程序中的編輯框中試一下: 呵呵,成功了。我們先不要求寫注冊機,但注冊的算法我們要搞清楚。要搞清注冊算法,必須知道上面那個 ESI 寄存器值是如何產(chǎn)生的,這弄清楚后才能真正清楚這個 crackme 算法。 OllyDBG 入門系列(四)-內(nèi)存斷點 作者: CCDebuger 還記得上一篇《 OllyDBG 入門系列(三)-函數(shù)參考》中的內(nèi)容嗎?在那篇文章中我們分析后發(fā)現(xiàn)一個 ESI 寄存器值不知是從什么地方產(chǎn)生的,要弄清這個問題必須要找到生成這個 ESI 值的計算部分。這次分析的目標程序還是上一篇的那個 crackme,附件 我就不再上傳了,用上篇中的附件就可以了。 。 關(guān)鍵,要按 F7 鍵跟進去 0040132D |. 3BC6 CMP EAX,ESI 。 不等則完蛋 我們重新用 OllyDBG 載入目標程序, F9運行來到上面代碼所在的地方(你上次設(shè)的斷點應(yīng)該沒刪吧?),我們向上看看能不能找到那個 ESI 寄存器中最近是在哪里賦的值。我們按上圖的操作在數(shù)據(jù)窗口中看一下: 從上圖我們可以看出內(nèi)存地址 40339C 處的值已經(jīng)有了,說明早就算過了。這時會跳出一個 “ 進程仍處于激活狀態(tài) ” 的對話框(我們可以在在調(diào)試選項的安全標簽下把 “ 終止活動進程時警告 ” 這條前面的勾去掉,這樣下次就不會出現(xiàn)這個對話框了),問我們是否要終止進程。 pModule = NULL 現(xiàn)在我們就要來設(shè)內(nèi)存斷點了。內(nèi)存訪問斷點就是指程序訪問內(nèi)存中我們指定的內(nèi)存地址時中斷,內(nèi)存寫入斷點
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1