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

正文內容

ollydbg圖文入門教程資料(更新版)

2024-12-25 05:21上一頁面

下一頁面
  

【正文】 MOV EAX,DWORD PTR DS:[EAX] 00440F9F |. E8 C4C0FFFF CALL 我們在反匯編窗口中向上滾動一下再看看: 00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP4] 00440F2F |. BA 14104400 MOV EDX, 。有殼的話我們要盡量脫了殼后再來用 OllyDBG 調試,特殊情況下也可帶殼調試。我這里把殼脫掉來分析,附件是脫殼后的文件,直接就可以拿來用??捎糜趶南到y(tǒng)領空快速返回到我們調試的程序領空。功能同單步步過 (F8)類似,區(qū)別是遇到 CALL 等子程序時會進入其中,進入后首先會停留在子程序的第一條指令上。 二、基本調試方法 OllyDBG 有三種方式來載入程序進行調試,一種是點擊菜單 文件 打開 (快捷鍵是 F3)來打開一個可執(zhí)行文件進行調試,另一種是點擊菜單 文件 附加 來附加到一個已運行的進程上進行調試。上面那個異常標 簽中的選項經常會在脫殼中用到,建議在有一定調試基礎后學脫殼時再配置這里。修改完以后點擊確定,彈出 一個對話框,說我們更改了插件路徑,要重新啟動 OllyDBG。 信息窗口:顯示反匯編窗口中選中的第一個命令的參數及一些跳轉目標地址、字串等。漢化版的發(fā)布版本是個 RAR 壓縮包,同樣只需解壓到一個目錄下運行 即可: 圖片 1 OllyDBG 中各個窗口的功能如上圖。 堆棧窗口:顯示當前線程的堆棧。我這簡單解釋一下:這個 UDD 目錄的作用是保存你調試的工作。要從右鍵菜單中刪除也很簡單,還是這個對話框,點擊 “ 從系統(tǒng) 資源管理器菜單刪除 Ollydbg” ,再點擊 “ 完成 ” 就行了。一般情況下我們選第一種方式。(相當于 SoftICE 中的 F7) F9:運行。就寫到這了,改天有空再接著灌。如果沒有輸入注冊碼的地方,要考慮一下是不是讀取注冊表或 Key 文件(一般稱 keyfile,就是程序讀取一個文件中的內容來判斷是否注冊),這些可以用其它工具來輔助分析。啟動 OllyDBG,選擇菜單 文件 打開 載入 文件,我們會停在這里: 我們在反匯編窗口中右擊,出來一個菜單,我們在 查找 所有參考文本字串 上左鍵點擊: 當然 如果用上面那個 超級字串參考+ 插件會更方便。 這里跳走就完蛋 00440F3B |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP4] 00440F3E |. 8B83 C8020200 MOV EAX,DWORD PTR DS:[EBX+2C8] 00440F44 |. E8 D7FEFDFF CALL 00440F49 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP4] 00440F4C |. BA 2C104400 MOV EDX, 。 ASCII Beggar off! 00440F93 |. BA 8C104400 MOV EDX, 。如我輸入的 CCDebuger 是 9 個字符。 用 “Registered User”和我們輸入的用戶名作比較 00403B35 |. 0F84 8F000000 JE 。 把減后值與 “Registered User”長度相加,即用戶名長度 00403B4F | 52 PUSH EDX 00403B50 |. C1EA 02 SHR EDX,2 。因為地址 00440F34 處的那個 CALL 我們已經分析清楚了,這次就不用再按 F7 鍵跟進去了,直接按 F8 鍵通過。好了,我們已經得到足夠的信息了。由此判斷注冊碼應該都是數字,只有輸入正確的注冊碼才有動靜。如 GetDlgItemTextW。另一種方法就是那個 GetWindowTextA 函數上右擊,在彈出菜單上選擇 “ 查找輸入函數參考 ” (或者按回車鍵),將會出現(xiàn)下面的對話框: 看上圖,我們可以把兩條都設上斷點。 不等則完蛋 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。 。] 。這個斷點我們不需要,按一下 F2 鍵刪掉它吧。 EAX 清零 004013D5 |. 8D35 C4334000 LEA ESI,DWORD PTR DS:[4033C4] 。 如果輸入的是負數,則把 1 送到 EDX,即 16 進制 FFFFFFFF 004013EB |. 8A06 MOV AL,BYTE PTR DS:[ESI] 。 上面一條和這一條指令主要是用來判斷是否已把用戶輸入的注冊碼計算完 004013FF |. 8D040A LEA EAX,DWORD PTR DS:[EDX+ECX] 。 比較 0040132F |. 75 42 JNZ SHORT 。我們先不要求寫注冊機,但注冊的算法我們要搞清楚。 。這時會跳出一個 “ 進程仍處于激活狀態(tài) ” 的對話框(我們可以在在調試選項的安全標簽下把 “ 終止活動進程時警告 ” 這條前面的勾去掉,這樣下次就不會出現(xiàn)這個對話框了),問我們是否要終止進程。我們選擇其中的轉到 表達式(也可以左鍵點擊數據窗口后按 CTR+G 組合 鍵)。就是說你不能像按 F2 鍵那樣同時設置多個斷點)。 現(xiàn)在我們來按一下 ALT+F9 組合鍵,我們來到下面的代碼: 00401431 |. 8D35 9C334000 LEA ESI,DWORD PTR DS:[40339C] 。 |pFileSystemFlags = NULL 0040141F |. 6A 00 PUSH 0 。 把crackme 程序所在分區(qū)的卷標名稱送到 ESI 00401437 |. 0FB60D EC334000 MOVZX ECX,BYTE PTR DS:[4033EC] 。 判斷是否計算完 0040144C |.^ 75 F2 JNZ SHORT 。 如下圖: 系統(tǒng)存儲的原則為 “高高低低 ”,即低字節(jié)存放在地址較低的字節(jié)單元中,高字節(jié)存放在地址較高的字節(jié)單元中?,F(xiàn)在我們把磁盤類型值作為 n,卷標值 ASCII 碼的逆序數值作為 a,最后得出的結果作為 b,有這樣的計算過程: 第一次: b = a * n 第二次: b = a * (n 1) + b 第三次: b = a * (n 2) + b … 第 n 次: b = a * 1 + b 可得出公式為 b = a * [n + (n 1) + (n 2) + … + 1] = a * [n * (n + 1) / 2] 還記得上一篇我們的分析嗎?看這一句: 00401405 |. 81F6 53757A79 XOR ESI,797A7553 。 |pFileSystemNameBuffer = NULL 0040141D |. 6A 00 PUSH 0 。 \GetVolumeInformationA 把上面代碼后的 OllyDBG 自動添加的注釋與 MSDN 中的函數原型比較一下: BOOL GetVolumeInformation( LPCTSTR lpRootPathName, // address of root directory of the file system LPTSTR lpVolumeNameBuffer, // address of name of the volume DWORD nVolumeNameSize, // length of lpVolumeNameBuffer LPDWORD lpVolumeSerialNumber, // address of volume serial number LPDWORD lpMaximumComponentLength, // address of system39。 磁盤類型參數送內存地址4033EC 地址 0040140F 處的那條指令是調用 GetDriveTypeA 函數,一般函數調用后的返回值都保存在 EAX 中,所以地址 00401414 處的那一句 MOV BYTE PTR DS:[4033EC],AL 就是傳遞返回值。 再附個斷點表: 常用斷點 (OD 中 ) 攔截窗口: bp CreateWindow 創(chuàng)建窗 口 bp CreateWindowEx(A) 創(chuàng)建窗口 bp ShowWindow 顯示窗口 bp UpdateWindow 更新窗口 bp GetWindowText(A) 獲取窗口文本 攔截消息框: bp MessageBox(A) 創(chuàng)建消息框 bp MessageBoxExA 創(chuàng)建消息框 bp MessageBoxIndirect(A) 創(chuàng)建定制消息框 bp IsDialogMessageW 攔截警告聲: bp MessageBeep 發(fā)出系統(tǒng)警告聲 (如果沒有聲卡就直接驅動系統(tǒng)喇叭 發(fā)聲 ) 攔截對話框: bp DialogBox 創(chuàng)建模態(tài)對話框 bp DialogBoxParam(A) 創(chuàng)建模態(tài)對話框 bp DialogBoxIndirect 創(chuàng)建模態(tài)對話框 bp DialogBoxIndirectParam(A) 創(chuàng)建模態(tài)對話框 bp CreateDialog 創(chuàng)建非模態(tài)對話框 bp CreateDialogParam(A) 創(chuàng)建非模態(tài)對話框 bp CreateDialogIndirect 創(chuàng)建非模態(tài)對話框 bp CreateDialogIndirectParam(A) 創(chuàng)建非模態(tài)對話框 bp GetDlgItemText(A) 獲取對話框文本 bp GetDlgItemInt 獲取對話框整數值 攔截剪貼板: bp GetClipboardData 獲取剪貼板數據 攔截注冊表: bp RegOpenKey(A) 打開子健 bp RegOpenKeyEx 打開子健 bp RegQueryValue(A) 查找子健 bp RegQueryValueEx 查找子健 bp RegSetValue(A) 設置子健 bp RegSetValueEx(A) 設置子 健 功能限制攔截斷點: bp EnableMenuItem 禁止或允許菜單項 bp EnableWindow 禁止或允許窗口 攔截時間: bp GetLocalTime 獲取本地時間 bp GetSystemTime 獲取系統(tǒng)時間 bp GetFileTime 獲取文件時間 bp GetTickCount 獲得自系統(tǒng)成功啟動以來所經歷的毫秒數 bp GetCurrentTime 獲取當前時間( 16 位) bp SetTimer 創(chuàng)建定時器 bp TimerProc 定時器超時回調函數 GetDlgItemInt 得指定輸入框整數值 GetDlgItemText 得指定輸入框輸入字符串 GetDlgItemTextA 得指定輸入框輸入字符串 攔截文件: bp CreateFileA 創(chuàng)建或打開文件 (32 位 ) bp OpenFile 打開文件 (32 位 ) bp ReadFile 讀文件 (32 位 ) bp WriteFile 寫文件 (32 位 ) GetModuleFileNameA GetFileSize Setfilepointer fileopen FindFirstFileA ReadFile 攔截驅動器: bp GetDriveTypeA 獲取磁盤驅動器類型 bp GetLogicalDrives 獲取邏輯驅動器符號 bp GetLogicalDriv
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1