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

正文內(nèi)容

畢業(yè)論文-基于windows98系統(tǒng)的數(shù)據(jù)采集開發(fā)(編輯修改稿)

2025-07-02 07:54 本頁面
 

【文章內(nèi)容簡介】 序在 16位保護模式、 V86模式以及 32位保護模式下調(diào)用, VxD服務(wù)則只供其它 VxD使用;用戶開發(fā)的 VxD可提供任意上述服務(wù)。除此之外,應(yīng)用程序還可通過調(diào)用 API函數(shù)DeviceIoContro1與支持 IOCTL接口的 VxD進行通信,執(zhí)行 Win32API不支持的系統(tǒng)低級操作。 2 Vxd 消息處理 VxD的操作基于寄存器,所以一般用匯編語言編寫,它的關(guān)鍵部分是一個和普通窗口的消息處理過程 WndProc相類似的控制過程,不同之處在于它的處理對象是系統(tǒng)發(fā)來的控制消息。這些消息共 51種,在 VxD自加載至卸出整個生命周期內(nèi),操作系統(tǒng)不斷向它發(fā)送各種控制消息, vxD根據(jù)自己的 需要選擇處理,其余的忽略。系統(tǒng)向 VxD發(fā)送控制消息時將消息代號放在 EBX寄存器中,并在 EBx寄存器中放系統(tǒng)虛擬機 (VM)句柄。 對動態(tài) VxD來說,最重要的消息有三個: SYS_DYNAMIC_DEVICE_INIT、SYS_DYNAMIC_DEVICE_EXIT以及 W32_DEVICEIOCONTROL,消息代號分別是 lBh、lCh、 23h。當(dāng) VxD被動態(tài)加載至內(nèi)存時,系統(tǒng)向其發(fā)送 SYS_DYNAMIC_DEVICE_INIT消息, VxD應(yīng)在此時完成初始化設(shè)置并建立必要的數(shù)據(jù)結(jié)構(gòu)。當(dāng) VxD將被卸出內(nèi)存時,系統(tǒng)向其發(fā)送 SYS_DYNAMIC_DEVICE_EXIT消息, VxD在收到后應(yīng)清除所作設(shè)置并釋放相關(guān)數(shù)據(jù)結(jié)構(gòu);當(dāng)應(yīng)用程序調(diào)用 API函數(shù) DeviceIoControl與 VxD進行通信時,系統(tǒng)向 VxD發(fā)送W32_DEVICEIOCONTROL消息,它是應(yīng)用程序和 VxD聯(lián)系的重要手段,此時 ESI寄存器指向一個 DIOCParams結(jié)構(gòu), VxD從輸入緩沖區(qū)獲取應(yīng)用程序傳來的數(shù)據(jù),相應(yīng)處理后將結(jié)果放在輸出緩沖區(qū),回送給應(yīng)用程序,達到相互傳遞數(shù)據(jù)的目的。 (2) 在 Windows系統(tǒng)下編程序本來就是寫消息處理程序與系統(tǒng)進行通 信,所以掌握各個消息的含義對寫程序非常有用。 在這個設(shè)計里面,主要是用到下面這個消息: W32_DEVICEIOCONTROL 該消息有針對性地傳給指定的 VXD 響應(yīng) Win32 應(yīng)用程序調(diào)用 CreateFile 或DeviceIoControl 函數(shù)。 CreateFile 函數(shù)的第一個參數(shù)必須為 \\.\ name,這里 name 表示 VXD的名字。這提供了一條從 Win32 應(yīng)用程序調(diào)用 VXD 提供的系統(tǒng)服務(wù)的很好途徑。 該消息的處理程序的原型為: DWORD OnW32DeviceIoControl (PIOCTLPARAMS p)。其參數(shù) p 指向一個 IOCTLPARAMS 結(jié)構(gòu)的指針。 IOCTLPARAMS 的結(jié)構(gòu)具體信息如下所示。 Struct tagIOCTLParams { PCLIENT_STRUCT dioc_pcrs。 //指向客戶寄存器的指針 VMHANDLE dioc_hvm。 //虛擬機句柄 四川大學(xué)本科畢業(yè)論文 基于 win98 系統(tǒng)的數(shù)據(jù)采集開發(fā) 6 DWORD dioc_VxdDDB。 //指向 VXD 的 DDB 結(jié)構(gòu) DWORD dioc_IOCtlCode。 //IO 控制指令 PVOID dioc_inBuf。 //指向輸入緩沖區(qū)的指針 DWORD dioc_cbInBuf。 //輸入緩沖區(qū)的大小 PVOID dioc_OutBuf。 //指向輸出緩沖區(qū)的指針 DWORD dioc_cbOutBuf。 //輸出緩沖區(qū)的大小 PDWORD dioc_bytesret。 //指向一個表示返回字節(jié)數(shù)的雙字 OVERLAPPED*dioc_ovrlp。 //指向一個 OVERLAPPED結(jié)構(gòu) DWORD dioc_hDevice。 //設(shè)備句柄 DWORD dioc_ppdb。 }IOCTLPARAMS。 所有的 VXD 都應(yīng)該實現(xiàn)對 pdioc_IOCtlCode = DIOC_OPEN 和DIOC_CLOSEHANDLE 這兩種情形的處理。而其他則根據(jù)用戶的要求在 VXD 中對應(yīng)應(yīng)用程序給出的 IO 控制指令進行響應(yīng)處理。 3 Vxd 調(diào)用機制 應(yīng)用程序向 VxD發(fā)出 DeviceIoControl調(diào)用時. DeviceIoControl的第 2個參數(shù)用于指定進行何種控制,控制過程從 DIOCParams結(jié)構(gòu) +0Ch處取得此控制碼再進行相應(yīng)處理控制碼的代號和含義由應(yīng)用程序 和 VxD自行約定.系統(tǒng)預(yù)定義了 DIOC_GETVERSION(O)和DIOC_CLOSEHANDLE(1)兩個控制碼,當(dāng)應(yīng)用程序調(diào)用 AN函數(shù) CreateFile(”\\\VxDNameJ??. )動態(tài)加載 VxD時,系統(tǒng)首先向該 VxD的控制過程發(fā)送SYS_DYNAMIC_DEVICE_INIT控制消息,若 VxD返回成功,系統(tǒng)將再次向 VxD發(fā)送帶有控制碼 DIOC_OPEN(即 DIOC_GETVERSION,值為 O)的 W32_DEVICEIOCONTROL消息以決定此 VxD是否能夠支持設(shè)備 IOCTL接口, VxD必 須清零 EAX寄存器以表明文持 IOCTL接口.這時 Createn[e將返回一個設(shè)備句柄 hDevice,通過它應(yīng)用程序才能使用 DeviceIoControl函數(shù)對 VxD進行控制。同一個 VxD可用 CreateFile打開多次,每次打開時都會返回此 VxD的一個唯一句柄,但是系統(tǒng)內(nèi)存中只保留一份 VxD.系統(tǒng)為每個 VxD維護一個引用計數(shù),每打開一次計數(shù)值加 l。當(dāng)應(yīng)用程序調(diào)用 API函數(shù) CloseHandle(hDevice)關(guān)閉 VxD句柄時, VxD將收到系統(tǒng)發(fā)來的帶控制碼 DIOC_CLOSEHANDLE的 W32_DEVICEIOCONTROL消息,同時該 VxD的引用計數(shù)減 l,當(dāng)最終引用計時, VxD將收到系統(tǒng)發(fā)來的帶控制碼DIOC_LOSEHANDLE的 W32_DEVICEIOCONTROL消息,同時該 VxD的引用計數(shù)減 l,當(dāng)最終引用計數(shù)為 0時,系統(tǒng)向 VxD發(fā)送控制消息 SYS_DYNAMIC_DEVICE_EXIT,然后將其從內(nèi)存中清除。在極少數(shù)情況下應(yīng)用程序也可調(diào)用 API函數(shù) DeleteFile(“\\.\四川大學(xué)本科畢業(yè)論文 基于 win98 系統(tǒng)的數(shù)據(jù)采集開發(fā) 7 VxDName”),忽略引用計數(shù)的值直接將 VxD卸出內(nèi)存,這將可能給使用同一 VxD的其它應(yīng)用程序造成毀滅性影響,應(yīng)避免 使用。 (11) 第五節(jié) Vxd 常用開發(fā)工具 微軟為驅(qū)動程序的開發(fā)提供了設(shè)備驅(qū)動程序工具箱 (DDK),基于匯編語言的編程方式和許多 VMM服務(wù)都使用寄存器的調(diào)用方式,確實非常難學(xué),沒有深厚的匯編語言和硬件基礎(chǔ)很難在短時間里開發(fā)出自己的 VxD。 美國 Vireo softare公司推出的 VToolsD為我們開發(fā) VxD提供了方便快捷的方法。程序員可利用 C或 C++編寫自己的 VxD,而不必操心許多繁瑣的細節(jié)。它的基本編程方法是:用VTo01sD自帶的 QMtckVxD程序快速生成程序框架,在 VC++ Brland C++中打開此框架的工程文件,并寫進特定的處理代碼,編譯后就可得到所需的 VxD文件。 第六節(jié) Vxd 技術(shù)的應(yīng)用 1 Vxd 的實用用途 由于 vxD可以虛擬根本不存在的硬件,因此可以利用 vxD虛擬硬件狗來破解一些軟件的加密保護。 VxD工作在操作系統(tǒng)的最底層,所以掌握它能使開發(fā)者具備擴展操作系統(tǒng)的能力,比如在 Windows 9x中截取按下的 Ctrl+Alt+Delete組合鍵.而后彈出的是自行設(shè)計的消息對話框,實現(xiàn)特殊的系統(tǒng)控制。 實時工業(yè)控制軟件的開發(fā),以前大都是基于 DOS操作系統(tǒng),但是現(xiàn)在隨著 Windows 9x的普及,需要開發(fā)送于 Windows 9x的工控軟件,利用 VxD的功能就可實現(xiàn) Windows下的實時工控。在很多情況下,這可以獲得比較滿意的實時效果。 通過 VxD作中介,可使 DOS TSR、 Winl6應(yīng)用程序、 win32應(yīng)用程序之間產(chǎn)生協(xié)作,可打破 win32應(yīng)用程序 4GB獨立線性地址空間帶來的限制等。 2 基于 VxD 的實時反病毒技術(shù) 目前國內(nèi)的 Windows 9x平臺反病毒產(chǎn)品大多屬靜態(tài)反病毒軟件,指導(dǎo)思想是 “以殺為主 ”,這一方式的缺點是病毒在被清除之前可能早已造成了嚴(yán)重危害。一個好的反病毒軟件應(yīng)該 是 “以防為主,以殺為輔 ”,在病毒入侵時就把它清除掉,這就是實時反病毒技術(shù)。 windows 9x使用的是 Ring 0和 Ring 3兩個保護級。系統(tǒng)進程運行于 Ring0,因而具有對系統(tǒng)全部資源的訪問權(quán)和管理權(quán)。而普通用戶進程運行于 Ring 3,只能訪問自己的程序空間,不允許對系統(tǒng)資源進行直接訪問,許多操作受到限制。顯然這種普通用戶進程是無法勝任實時反病毒工作的,必須使后臺監(jiān)視進程運行在 Ring 0優(yōu)先級,實現(xiàn)這一目的基礎(chǔ)就是 VxD技術(shù)。應(yīng)用程序通過使用動態(tài)加載的 VxD,間接獲得了對 Windows 9x系統(tǒng)的控制權(quán),四川大學(xué)本科畢業(yè)論文 基于 win98 系統(tǒng)的數(shù)據(jù)采集開發(fā) 8 但要實現(xiàn)對系統(tǒng)中所有文件 I/ O操作的實時監(jiān)視,還要用到另一種關(guān)鍵技術(shù)——FileHooking,通過掛接一個處理函數(shù),截獲所有與文件 I/ O操作有關(guān)的系統(tǒng)調(diào)用。Windows 9x使用 32位保護模式可安裝文件系統(tǒng) (IFS),由可安裝文件系統(tǒng)管理器(IFSManager)協(xié)調(diào)對文件系統(tǒng)和設(shè)備的訪問,它接收以 Win32 API函數(shù)調(diào)用形式向系統(tǒng)發(fā)出的文件 I/ O請求,再將請求轉(zhuǎn)給文件系統(tǒng)驅(qū)動程序 FSD,由它調(diào)用低級別的 IOS系統(tǒng)實現(xiàn)最終訪問。每個文件 I/ O API調(diào)用都有一個特定的 FSD函數(shù)與之對應(yīng), IFSManager負(fù)責(zé)完成由 API到 FSD的參數(shù)裝配工作,在完成文件 I/ O API函數(shù)參數(shù)的裝配之后轉(zhuǎn)相應(yīng) FSD執(zhí)行之前,它會調(diào)用一個稱為 FileSystemApiHookFunction的 Hooker函數(shù)。通過安裝自己的 Hooker函數(shù),就可以截獲系統(tǒng)內(nèi)所有對文件 I/ O的 API調(diào)用,井適時對相關(guān)文件進行病毒檢查,從而實現(xiàn)實時監(jiān)控。 (9) 第七節(jié) Vxd 的局限性 VxD技術(shù)只適用于 Windows 9x操作系統(tǒng) , Windows NT不支持此項技術(shù) , 而是采用更為先進的面向?qū)ο蟮尿?qū)動程序模型 , 例如 Windows 20xx就采用了一種基于 NT的驅(qū)動程序模型WDM。此外,由于 VxD運行在 Ring 0上根本不受 Ring 3的制約,也給病毒的制造者即黑客以可乘之機,比如著名的 CIH病毒就是一個 VxD。 第八節(jié) VXD 驅(qū)動程序與 WDM 驅(qū)動程序開發(fā)的比較 1 VXD 與 WDM 的差異 VxD模式驅(qū)動程序是在 DOS系統(tǒng)文件的基礎(chǔ)上發(fā)展起來的 , 只是在 Windows 95/98(第一版 )等早期的 Windows操作系統(tǒng)中使用。由于 VXD模式驅(qū)動程序要求開發(fā)人員必須深入理解和掌握諸如 VMM(虛擬機管理器 )、 VNCD(虛 擬可編程終端控制器 )、 DMA(直接存儲器訪問 )、內(nèi)存管理等 Windows操作系統(tǒng)內(nèi)核的工作機制,開發(fā)難度大,適應(yīng)性差,M1crosoft公司試著逐步拋棄它。在 Windows操作系統(tǒng)的較新版本,如 Windows 98SE/ME/20xx/ XP中,加入了 Plug and Play、 ACIP和 WMI等高級功能, WDM模式驅(qū)動程序就是為了適應(yīng)這種變化而提出的。 VXD模式驅(qū)動程序和 wDM驅(qū)動程序的主要差異如下 : (1)支持的 Windows版本不同。 VXD模式驅(qū)動程序支持 Windows / 95/ 98(第一版 )等 早期的 Windows版本, WDM模式驅(qū)動程序支持 Windows 98SE/ ME/ 20xx/ XP等較新的windows版本。 (2)驅(qū)動程序的入口點不同。所有的 WDM模式驅(qū)動程序必須包含一個 DriverEntry例程,PNP設(shè)備管理器通過在 WDM模式驅(qū)動程序查詢該例程來對設(shè)備進行諸如驅(qū)動程序初始化,資源分配等工作。在 VXD模式驅(qū)動程序中,初始化工作則沒有固定的位置,放在DIOC_OPEN系統(tǒng)消息或者用戶自己定義的消息中。 四川大學(xué)本科畢業(yè)論文
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1