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

正文內(nèi)容

ollydbg圖文入門教程資料-資料下載頁

2024-11-03 05:21本頁面

【導(dǎo)讀】漢化版的發(fā)布版本是個RAR壓縮包,同樣只需解壓到一個目錄下運行即可:。OllyDBG中各個窗口的功能如上圖。簡單解釋一下各個窗口的功能,更詳細的內(nèi)容可以參考TT小組。窗口中右擊出現(xiàn)的菜單界面選項->隱藏標題或顯示標題來進行切換是否顯示。用鼠標左鍵點擊注。釋標簽可以切換注釋顯示的方式。在這個對話框上點確定,重新啟動一下OllyDBG,我們再到界面選項中看一下,會發(fā)。有人可能知道插件的作用,但對那個UDD目錄不清楚。如果不設(shè)置這個UDD目錄,OllyDBG默認是在其安裝目錄下保存這些后綴。建議在對OllyDBG已比較熟的情況下再來進行配置。對插件的個數(shù)有限制,最多不能超過32個,否則會出錯。停留在子程序的第一條指令上。下程序是否加了殼,若沒殼的話看看程序是什么編譯器編的,如VC、Delphi、VB等。

  

【正文】 00 00 00 00 00 00 00 00 00 00 GAME............ 大家可以看出來內(nèi)存地址 40339CH 到 40339FH 分別按順序存放的是 47 41 4D 45。 如下圖: 系統(tǒng)存儲的原則為 “高高低低 ”,即低字節(jié)存放在地址較低的字節(jié)單元中,高字節(jié)存放在地址較高的字節(jié)單元中。比如一個字由兩個字節(jié)組成,像這樣: 12 34 ,這里的高字節(jié)就是 12 ,低字節(jié)就是 34。上面的那條指令 MOV EBX,DWORD PTR DS:[ESI] 等同于 MOV EBX,DWORD PTR DS:[40339C]。注意這里是 DWORD,即 “雙字 ”,由 4 個連續(xù)的字節(jié)構(gòu)成。而取地址為 40339C 的雙字單元中的內(nèi)容時,我們應(yīng)該得到的是 “454D4147”,即由高字節(jié)到低字節(jié)順序的值。因此經(jīng)過 MOV EBX,DWORD PTR DS:[ESI] 這條指令,就是把從地址 40339C 開始處的值送到 EBX,所以我們得到了 “454D4147”。好了,這里弄清楚了,我們再接著談這個程序的算法。前面我們已經(jīng)說了取磁盤類型參數(shù)做循環(huán)次數(shù),再取卷標值 ASCII 碼的逆序作為數(shù)值,有了這兩個值就開始計算了。現(xiàn)在我們把磁盤類型值作為 n,卷標值 ASCII 碼的逆序數(shù)值作為 a,最后得出的結(jié)果作為 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 。 把 ESI 中的值與 797A7553H 異或 這里算出來的 b 最后還要和 797A7553H 異或一下才是真正的注冊碼。只 要你對編程有所了解,這個注冊機就很好寫了。如果用匯編來寫這個注冊機的話就更簡單了,很多內(nèi)容可以直接照抄。 到此已經(jīng)差不多了,最后還有幾個東西也說一下吧: 上面用到了兩個 API 函數(shù),一個是 GetDriveTypeA,還有一個是 GetVolumeInformationA,關(guān)于這兩個函數(shù)的具體用法我就不多說了,大家可以查一下 MSDN。這里只要大家注意函數(shù)參數(shù)傳遞的次序,即調(diào)用約定。先看一下這里: 00401419 |. 6A 00 PUSH 0 。 /pFileSystemNameSize = NULL 0040141B |. 6A 00 PUSH 0 。 |pFileSystemNameBuffer = NULL 0040141D |. 6A 00 PUSH 0 。 |pFileSystemFlags = NULL 0040141F |. 6A 00 PUSH 0 。 |pMaxFilenameLength = NULL 00401421 |. 6A 00 PUSH 0 。 |pVolumeSerialNumber = NULL 00401423 |. 6A 0B PUSH 0B 。 |MaxVolumeNameSize = B (11.) 00401425 |. 68 9C334000 PUSH 。 |VolumeNameBuffer = 0040142A |. 6A 00 PUSH 0 。 |RootPathName = NULL 0040142C |. E8 A3000000 CALL JMP.amp。 。 \GetVolumeInformationA 把上面代碼后的 OllyDBG 自動添加的注釋與 MSDN 中的函數(shù)原型比較一下: 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。s maximum filename length LPDWORD lpFileSystemFlags, // address of file system flags LPTSTR lpFileSystemNameBuffer, // address of name of file system DWORD nFileSystemNameSize // length of lpFileSystemNameBuffer )。 大家應(yīng)該看出來點什么了吧?函數(shù)調(diào)用是先把最后一個參數(shù)壓棧,參數(shù)壓棧順序是從后往前。這就是一般比較常見的 stdcall 調(diào)用約定。 我在前面的 00401414 地址處的那條 MOV BYTE PTR DS:[4033EC],AL 指令后加的注釋是 “磁盤類型參數(shù)送內(nèi)存地址 4033EC”。為什么這樣寫?大家把前一句和這一句合起來看一下: 0040140F |. E8 B4000000 CALL JMP.amp。 。 \GetDriveTypeA 00401414 |. A2 EC334000 MOV BYTE PTR DS:[4033EC],AL 。 磁盤類型參數(shù)送內(nèi)存地址4033EC 地址 0040140F 處的那條指令是調(diào)用 GetDriveTypeA 函數(shù),一般函數(shù)調(diào)用后的返回值都保存在 EAX 中,所以地址 00401414 處的那一句 MOV BYTE PTR DS:[4033EC],AL 就是傳遞返回值。查一下 MSDN 可以知道 GetDriveTypeA 函數(shù)的返回值有這幾個: Value Meaning 返回在 EAX中的值 DRIVE_UNKNOWN The drive type cannot be determined. 0 DRIVE_NO_ROOT_DIR The root directory does not exist. 1 DRIVE_REMOVABLE The disk can be removed from the drive. 2 DRIVE_FIXED The disk cannot be removed from the drive. 3 DRIVE_REMOTE The drive is a remote (work) drive. 4 DRIVE_CDROM The drive is a CDROM drive. 5 DRIVE_RAMDISK The drive is a RAM disk. 6 上面那個 “返回在 EAX 中的值 ”是我加的,我這里返回的是 3,即磁盤不可從驅(qū)動器上刪除。 通過分析這個程序的算法,我們發(fā)現(xiàn)這個注冊算法是有漏洞的。如果我的分區(qū)沒有卷標的話,則卷標值為 0,最后的注冊碼就是 797A7553H,即十進制 2038068563。 而如果你的卷標和我一樣,且磁盤類型一樣的話,注冊碼也會一樣,并不能真正做到一機一碼。 有七章之多。先發(fā)到這感興趣的先消化一下。另成立一個菜鳥入門群( 6167883),目的在于探討剛剛接觸做輔助的同志們遇到的基礎(chǔ)和常識問題,(比如基礎(chǔ)思路?軟件報錯系統(tǒng)報錯?編程語言基礎(chǔ)問題?工具哪里有?哪個過NP?插件怎么用?等等電腦雞毛蒜皮的事,因為一般問題老鳥都懶得回答你,而你還沒動手就卡住了!當然更歡迎高手來做老師指導(dǎo)我們。 再附個斷點表: 常用斷點 (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)警告聲 (如果沒有聲卡就直接驅(qū)動系統(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 獲取對話框整數(shù)值 攔截剪貼板: bp GetClipboardData 獲取剪貼板數(shù)據(jù) 攔截注冊表: bp RegOpenKey(A) 打開子健 bp RegOpenKeyEx 打開子健 bp RegQueryValue(A) 查找子健 bp RegQueryValueEx 查找子健 bp RegSetValue(A) 設(shè)置子健 bp RegSetValueEx(A) 設(shè)置子 健 功能限制攔截斷點: bp EnableMenuItem 禁止或允許菜單項 bp EnableWindow 禁止或允許窗口 攔截時間: bp GetLocalTime 獲取本地時間 bp GetSystemTime 獲取系統(tǒng)時間 bp GetFileTime 獲取文件時間 bp GetTickCount 獲得自系統(tǒng)成功啟動以來所經(jīng)歷的毫秒數(shù) bp GetCurrentTime 獲取當前時間( 16 位) bp SetTimer 創(chuàng)建定時器 bp TimerProc 定時器超時回調(diào)函數(shù) GetDlgItemInt 得指定輸入框整數(shù)值 GetDlgItemText 得指定輸入框輸入字符串 GetDlgItemTextA 得指定輸入框輸入字符串 攔截文件: bp CreateFileA 創(chuàng)建或打開文件 (32 位 ) bp OpenFile 打開文件 (32 位 ) bp ReadFile 讀文件 (32 位 ) bp WriteFile 寫文件 (32 位 ) GetModuleFileNameA GetFileSize Setfilepointer fileopen FindFirstFileA ReadFile 攔截驅(qū)動器: bp GetDriveTypeA 獲取磁盤驅(qū)動器類型 bp GetLogicalDrives 獲取邏輯驅(qū)動器符號 bp GetLogicalDriveStr
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1