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

正文內(nèi)容

ollydbg圖文入門(mén)教程資料-文庫(kù)吧在線文庫(kù)

  

【正文】 |. 77 02 JA SHORT 。 不等則完蛋 根據(jù)上面的分析,我們知道用戶(hù)名必須是 “Registered User”。而這個(gè)子程序 CALL 我們?cè)谏厦嬉呀?jīng)分析過(guò)了。老規(guī)矩,先運(yùn)行一下這個(gè)程序看看: 呵,竟然沒(méi)找到輸入注冊(cè)碼的地方!別急,我們點(diǎn)一下程序上的那個(gè)菜單 “Shit” (真是 Shit 啊,呵呵),在下拉菜單中選 “Try It” ,會(huì)來(lái)到如下界面: 我們點(diǎn)一下那個(gè) “Check It” 按鈕試一下,哦,竟然沒(méi)反應(yīng)!我再輸個(gè) “78787878” 試試,還是沒(méi)反應(yīng)。通過(guò)上面的操作后會(huì)彈出一個(gè)對(duì)話框,如圖: 對(duì)于這樣的編輯框中輸注冊(cè)碼的程序我們要設(shè)斷點(diǎn)首選的 API 函數(shù)就是 GetDlgItemText 及 GetWindowText。還好,找到一個(gè) GetWindowTextA。 關(guān)鍵,要按 F7 鍵跟進(jìn)去 0040132D |. 3BC6 CMP EAX,ESI 。re done. 0040136B |. FF75 08 PUSH DWORD PTR SS:[EBP+8] 。 。] ?,F(xiàn)在我們按 F7 鍵跟進(jìn): 004013D2 /$ 56 PUSH ESI 。 把取得的字符與 16進(jìn)制值為 2D 的字符 (即“”)比較,這里主要用于判斷輸入的是不是負(fù)數(shù) 004013E4 |. 75 08 JNZ SHORT 。 取下一個(gè)字符 004013FA |. 46 INC ESI 。 把 ESI 中的值與 797A7553H 異或 0040140B \. C3 RETN 這里留下了一個(gè)問(wèn)題:那個(gè) ESI 寄存器中的值是從哪運(yùn)算出來(lái)的?先不管這里,我們接著按 F8 鍵往下走,來(lái)到 0040140B 地址處的那條 RETN 指令(這里可以通過(guò)在調(diào)試選項(xiàng)的 “命令 ”標(biāo)簽中勾選 “使用 RET 代替 RETN”來(lái)更改返回指令的顯示方式),再按一下 F8,我們就走出 00401328 地址處的那個(gè) CALL 了。這下就很清楚了,隨便在上面那個(gè)修改 ESI 圖中顯示的有符號(hào)或無(wú)符號(hào)編輯框中復(fù)制一個(gè),粘貼到我們調(diào)試的程序中的編輯框中試一下: 呵呵,成功了。這次分析的目標(biāo)程序還是上一篇的那個(gè) crackme,附件 我就不再上傳了,用上篇中的附件就可以了。我們按上圖的操作在數(shù)據(jù)窗口中看一下: 從上圖我們可以看出內(nèi)存地址 40339C 處的值已經(jīng)有了,說(shuō)明早就算過(guò)了。還記得前面我叫大家記住的那個(gè) 40339C 內(nèi)存地址嗎?現(xiàn)在我們要用上了。選好以后松開(kāi)鼠標(biāo)左鍵,在我們選中的灰色部分上右擊: 經(jīng)過(guò)上面的操作,我們的內(nèi)存斷點(diǎn)就設(shè)好了(這里還有個(gè)要注意的地方:內(nèi)存斷點(diǎn)只在當(dāng)前調(diào)試的進(jìn)程中有效,就是說(shuō)你如果 重新載入程序的話內(nèi)存斷點(diǎn)就自動(dòng)刪除了。系統(tǒng)領(lǐng)空,我們現(xiàn)在要考慮返回到程序領(lǐng)空。 /pFileSystemNameSize = NULL 0040141B |. 6A 00 PUSH 0 。 。 每次計(jì)算結(jié)果再加上上次計(jì)算結(jié)果保存在 EDI 中 00401448 |. 49 DEC ECX 。我們知道 “GAME”有四個(gè)字節(jié),即 ASCII 碼為 “47414D45”。好了,這里弄清楚了,我們?cè)俳又勥@個(gè)程序的算法。先看一下這里: 00401419 |. 6A 00 PUSH 0 。 |RootPathName = NULL 0040142C |. E8 A3000000 CALL JMP.amp。 。先發(fā)到這感興趣的先消化一下。 通過(guò)分析這個(gè)程序的算法,我們發(fā)現(xiàn)這個(gè)注冊(cè)算法是有漏洞的。 大家應(yīng)該看出來(lái)點(diǎn)什么了吧?函數(shù)調(diào)用是先把最后一個(gè)參數(shù)壓棧,參數(shù)壓棧順序是從后往前。 |pMaxFilenameLength = NULL 00401421 |. 6A 00 PUSH 0 。只 要你對(duì)編程有所了解,這個(gè)注冊(cè)機(jī)就很好寫(xiě)了。上面的那條指令 MOV EBX,DWORD PTR DS:[ESI] 等同于 MOV EBX,DWORD PTR DS:[40339C]。 把計(jì)算后值送到內(nèi)存地址 40339C,這就是我們后來(lái)在 ESI 中看到的值 00401454 |. 61 POPAD 00401455 \. C3 RETN 通過(guò)上面的分析,我們知道基本算法是這樣的:先用 GetDriveTypeA 函數(shù)獲取磁盤(pán)類(lèi)型參數(shù),再用 GetVolumeInformationA 函數(shù)獲取這個(gè) crackme 程序所在分區(qū)的卷標(biāo)。 把 EDI 清零 00401440 | 8BC1 MOV EAX,ECX 。 |pVolumeSerialNumber = NULL 00401423 |. 6A 0B PUSH 0B 。 /RootPathName = NULL 0040140F |. E8 B4000000 CALL JMP.amp。 這就是我們第一次斷下來(lái)的地方 7C932F3B 40 INC EAX 7C932F3C 4F DEC EDI 7C932F3D 4E DEC ESI 7C932F3E ^ 75 CB JNZ SHORT 7C932F40 8B4D 10 MOV ECX,DWORD PTR SS:[EBP+10] 上面就是我們中斷后反匯編窗口中的代碼。我們現(xiàn)在在 40339C 地址處后面的 HEX 數(shù)據(jù)或 ASCII 欄中按住左鍵往后拖放,選擇一段。 pModule = NULL 現(xiàn)在我們就要來(lái)設(shè)內(nèi)存斷點(diǎn)了。 關(guān)鍵,要按 F7 鍵跟進(jìn)去 0040132D |. 3BC6 CMP EAX,ESI 。要搞清注冊(cè)算法,必須知道上面那個(gè) ESI 寄存器值是如何產(chǎn)生的,這弄清楚后才能真正清楚這個(gè) crackme 算法。根據(jù)前面的分析,我們知道 EAX 中存放的是我們輸入的注冊(cè)碼經(jīng)過(guò)計(jì)算后的值。 把 EAX 與 EDX異或。 指針加 1,指向再下一個(gè)字符 004013EE | EB 0B JMP SHORT 004013F0 | 2C 30 SUB AL,30 。 ECX 清零 004013DD |. 33D2 XOR EDX,EDX ??匆幌? OllyDBG 的標(biāo)題欄: “[CPU 主線程 , 模塊 USER32],跑到系統(tǒng)領(lǐng)空了, OllyDBG 反匯編窗口中顯示代碼是這樣: 77D3213C 6A 0C PUSH 0C 77D3213E 68 A021D377 PUSH 77D32143 E8 7864FEFF CALL 怎么辦?別急,我們按一下 ALT+F9 組合鍵,呵,回來(lái)了: 00401328 |. E8 A5000000 CALL 。] 。而注冊(cè)成功則會(huì)顯示一個(gè)對(duì)話框 ,標(biāo)題是 “Crudd39。 Style = MB_OK|MB_APPLMODAL 00401361 |. 68 0F304000 PUSH 。好,我們現(xiàn)在按前面提到的第一條方法,就是 “在每個(gè)參考上設(shè)置斷點(diǎn) ”,這樣上圖中的兩條指令都會(huì)設(shè)上斷點(diǎn)。而 NT 系統(tǒng)則從底層支持 UNICODE,它可以在操作系統(tǒng)內(nèi)對(duì)字串進(jìn)行轉(zhuǎn)換,同時(shí)支持 ASCII 和 UNICODE 版本函數(shù)的調(diào)用。信息收集的差不多了,現(xiàn)在關(guān)掉這個(gè)程序,我們用 OllyDBG 載入,按 F9 鍵直接讓它運(yùn)行起來(lái),依次點(diǎn)擊上面圖中所說(shuō)的菜單,使被調(diào)試程序顯示如上面的第二個(gè)圖。還是先禁用一下,如果經(jīng)過(guò)實(shí)際驗(yàn)證證明我們的分析是正確的,再刪不遲。 取輸入的注冊(cè)碼 00440F4C |. BA 2C104400 MOV EDX, 。 上 面的指令及這條指令就是判斷用戶(hù)名長(zhǎng)度最少不能低于 4 00403B55 | 8B0E MOV ECX,DWORD PTR DS:[ESI] 。 看看 ESI中是否有數(shù)據(jù),主要是看看我們有沒(méi)有輸入用戶(hù)名 00403B3D |. 74 68 JE SHORT 。 把我們輸入的內(nèi)容送到 EAX,我這里是“CCDebuger” 00440F2F |. BA 14104400 MOV EDX, 。有人可能要問(wèn),你怎么知道那兩個(gè)地方是關(guān)鍵點(diǎn)?其實(shí)很簡(jiǎn)單,我是根據(jù)查看是哪條指令跳到 “wrong serial,try again”這條字串 對(duì)應(yīng)的指令來(lái)決定的。 關(guān)鍵,要用 F7 跟進(jìn)去 00440F56 |. 75 1A JNZ SHORT 。好了,現(xiàn)在出來(lái)另一個(gè)對(duì)話框,我們?cè)谶@個(gè)對(duì)話框里右擊,選擇 “ 查找文本 ” 菜單項(xiàng),輸入 “Wrong Serial, try again!” 的開(kāi)頭單詞 “Wrong” (注意這里查找內(nèi)容要區(qū)分大小寫(xiě))來(lái)查找,找到一處: 在我們找到的字串上右擊,再在出來(lái)的菜單上點(diǎn)擊 “ 反匯編窗口中跟隨 ” ,我們來(lái)到這里: 見(jiàn)上圖,為了看看是否還有其他的參考,可以通過(guò)選擇右鍵菜單查找參考 立即數(shù),會(huì)出來(lái)一個(gè)對(duì)話框: 分別雙擊上面標(biāo)出的兩個(gè)地址,我們會(huì)來(lái)到對(duì)應(yīng)的位置: ***************************************************************************************** 00440F79 |. BA 8C104400 MOV EDX, 。有點(diǎn)跑題了,呵呵。今天的目標(biāo)程序是看雪兄《加密與解密》第一版附帶光盤(pán)中的 鏡像打包中的 CFF Crackme 3,采用用戶(hù)名 /序列號(hào)保護(hù)方式。(相當(dāng)于 SoftICE 中的 F5) CTR+F9:執(zhí)行到返回。(相當(dāng)于 SoftICE 中的 F9) F8:?jiǎn)尾讲竭^(guò)。要注意的是 OllyDBG 對(duì)插件的個(gè)數(shù)有限制,最多不能超過(guò) 32 個(gè),否則會(huì)出錯(cuò)。如果不設(shè)置這個(gè) UDD 目錄, OllyDBG 默認(rèn)是在其安裝 目錄下保存這些后綴名為 udd 的文件,時(shí)間長(zhǎng)了就會(huì)顯的很亂,所以還是建議專(zhuān)門(mén)設(shè)置一個(gè)目錄來(lái)保存這些文件。 啟動(dòng)后我們要把插件及 UDD 的目錄配置為絕對(duì)路徑,點(diǎn)擊菜單上的 選項(xiàng) 界面,將會(huì)出來(lái)一個(gè)界面選項(xiàng)的對(duì)話框 ,我們點(diǎn)擊其中的目錄標(biāo)簽:因?yàn)槲疫@里是把 OllyDBG 解壓在 F:\OllyDBG 目錄下,所以相應(yīng)的 UDD 目錄及插件目錄按圖上配置。用鼠標(biāo)左鍵點(diǎn)擊注釋標(biāo)簽可以切換注釋顯示的方式。 寄存器窗口: 顯示當(dāng)前所選線程的 CPU 寄存器內(nèi)容。還有一個(gè)常用到的標(biāo)簽就是上圖后面那個(gè)字體,在這里你可以更改 OllyDBG 中顯示的字體。 另外一個(gè)重要的選項(xiàng)就是調(diào)試選項(xiàng),可通過(guò)菜單 選項(xiàng) 調(diào)試設(shè)置 來(lái)配置: 新手一般不需更改這里的選項(xiàng),默認(rèn)已配置好,可以直接使用。建議插件不要添加的太多。每按一次這個(gè)鍵執(zhí)行一條反匯編窗口中的 一條指令,遇到 CALL 等子程序不進(jìn)入其代碼。 此命令在執(zhí)行到一個(gè) ret (返回指令 )指令時(shí)暫停,常用于從系統(tǒng)領(lǐng)空返回到我們調(diào)試的程序領(lǐng)空。原版加了個(gè) UPX 的殼。獲得程序的一些基本信息后,還要用查殼的工具來(lái)查一下程序是否加了殼,若沒(méi)殼的話看看程序是什么編譯器編的,如 VC、 Delphi、 VB 等。 ASCII Wrong Serial,try again! 00
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1