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

正文內(nèi)容

ollydbg圖文入門(mén)教程資料-資料下載頁(yè)

2024-11-03 05:21本頁(yè)面

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

  

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