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

正文內(nèi)容

計算機信息系統(tǒng)安全概述(編輯修改稿)

2025-03-03 19:54 本頁面
 

【文章內(nèi)容簡介】 ,并使你能夠很容易地以面向?qū)ο蟮姆绞浇?Windows應(yīng)用程序。 MFC庫的主要優(yōu)點是效率高。 當(dāng)使用 MFC 時,首先編寫的代碼是用來建立必要的用戶界面控制并定制其外觀。 Windows消息機制簡介 一個消息由一個消息名稱( UINT)和兩個參數(shù)( WPARAM,LPARAM)組成。當(dāng)用戶進(jìn)行了輸入或是窗口的狀態(tài)發(fā)生改變時系統(tǒng)都會發(fā)送消息。 一個消息必須由某一個窗口來接收。作為程序員,在窗口的進(jìn)程( WNDPROC)中可以對消息進(jìn)行分析,對自己感興趣的消息進(jìn)行處理。 系統(tǒng)將會為每一個進(jìn)程維護一個消息隊列,所有屬于該進(jìn)程的消息都會被放入隊列中。 Visual C++編程示例 匯編語言編程及反匯編調(diào)試 Win32匯編與 Masm32 Win32匯編是指 32位 Windows平臺下的匯編語言,它可以調(diào)用 Windows的 API,用 Win32匯編寫 Windows應(yīng)用程序類似于用 C/ SDK編程。 Win32匯編沒有進(jìn)行那么多的封裝,更接近系統(tǒng)的底層,使用起來更加靈活,能做到許多高級語言無法做到的事(如代碼重定位)。匯編程序生成的可執(zhí)行文件體積小,執(zhí)行速度快,可用于軟件的核心程序段,以提高軟件性能。 與計算機硬件密切相關(guān)的驅(qū)動程序開發(fā),計算機病毒的分析與防治、軟件加密解密、軟件調(diào)試等方面都會用到 Win32匯編的知識。 1. MASM32簡介 MASM32就是一個用于 Win32匯編的軟件包,它包括匯編編譯器 、資源編譯器、 32位鏈接器 IDE環(huán)境 。 2. MASM32與其他 Win32匯編開發(fā)工具的比較 Win32匯編最好的選擇還是 MASM32,它可以支持高級語法,使匯編編程更簡單。同時它還集成了與之配套的鏈接器和資源編譯器,不需要自己逐個搜集。另外,用它附帶的 IDE進(jìn)行??傊褂?MASM32可以方便、快捷地開發(fā)出一個匯編程序,是很適合初學(xué)者的一個開發(fā)平臺。 W32Dasm與靜態(tài)反匯編 靜態(tài)反匯編是指把 PE等格式的可執(zhí)行文件反匯編為類似匯編源文件的文本文件,其中的機器指令碼用匯編助記符來表示。 W32Dasm是一個著名的靜態(tài)反匯編分析工具,它除了能將應(yīng)用程序反匯編為匯編源程序,還提供許多相關(guān)信息及便捷的操作以幫助對程序的靜態(tài)調(diào)試,另外還有簡單的動態(tài)調(diào)試功能。 MASM32編程示例 Windows系統(tǒng)驅(qū)動程序開發(fā) Windows系統(tǒng)設(shè)備驅(qū)動程序簡介 W in 3 2 A P I 調(diào)用 系統(tǒng)服務(wù)接口 傳遞 IRP 給驅(qū)動程序派遣函數(shù) H A L 調(diào)用 平臺相關(guān)操作 用戶模式 內(nèi)核模式 硬件 硬件抽象層 設(shè)備 驅(qū)動程序 I/O 管理器 W in 3 2 子系統(tǒng) 應(yīng)用程序 Windwos系統(tǒng)結(jié)構(gòu)圖 當(dāng)用戶模式程序需要讀取設(shè)備數(shù)據(jù)時,它就調(diào)用 Win32 API函數(shù) ,然后通過 Win32子系統(tǒng)模塊 (如 )調(diào)用平臺相關(guān)的 系統(tǒng)服務(wù)接口 實現(xiàn)該 API,而平臺相關(guān)的系統(tǒng)服務(wù)將調(diào)用內(nèi)核模式支持函數(shù)。 Windows系統(tǒng)驅(qū)動程序分類 內(nèi)核模式 驅(qū)動程序 虛擬設(shè)備 驅(qū)動程序( V D D ) 文件系統(tǒng) 驅(qū)動程序 遺留設(shè)備 驅(qū)動程序 P n P 驅(qū)動程序 顯示 驅(qū)動程序 W D M 驅(qū)動程序 類 驅(qū)動程序 迷你 驅(qū)動程序 Windows系統(tǒng)中的設(shè)備驅(qū)動程序分類結(jié)構(gòu)圖 虛擬設(shè)備驅(qū)動程序( VDD) 是一個用戶模式部件,它可以使 DOS應(yīng)用程序訪問 x86平臺上的硬件。 內(nèi)核模式驅(qū)動程序 其分類包含許多子類。 PnP驅(qū)動程序就是一種遵循 Windows 2023即插即用協(xié)議的內(nèi)核模式驅(qū)動程序。 WDM驅(qū)動程序 是一種 PnP驅(qū)動程序,它同時還遵循電源管理協(xié)議,并能在 Windows 98和 Windows 2023間實現(xiàn)源代碼級兼容。 顯示驅(qū)動程序 是用于顯示和打印設(shè)備的內(nèi)核模式驅(qū)動程序。 文件系統(tǒng)驅(qū)動程序在本地硬盤或網(wǎng)絡(luò)上實現(xiàn)標(biāo)準(zhǔn) PC文件系統(tǒng)模型(包括多層次目錄結(jié)構(gòu)和命名文件概念)。 遺留設(shè)備驅(qū)動程序 也是一種內(nèi)核模式驅(qū)動程序,它直接控制一個硬件設(shè)備而不用其他驅(qū)動程序幫助。 Windows系統(tǒng)驅(qū)動程序開發(fā)模型 上層過濾器驅(qū)動程序 功能驅(qū)動程序 總線驅(qū)動程序 下層過濾器驅(qū)動程序 Fi D O FDO Fi D O P D O IRP WDM中設(shè)備對象和驅(qū)動程序的層次結(jié)構(gòu) WDM模型使用了如圖 219所示的層次結(jié)構(gòu)。圖中左邊是一個設(shè)備對象堆棧。設(shè)備對象是系統(tǒng)為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個物理硬件可以有多個這樣的數(shù)據(jù)結(jié)構(gòu)。處于堆棧最底層的設(shè)備對象稱為物理設(shè)備對象( Physical Device Object),或簡稱為 PDO。在設(shè)備對象堆棧的中間某處有一個對象稱為功能設(shè)備對象( Functional Device Object),或簡稱 FDO。在 FDO上面和下面還會有一些過濾器設(shè)備對象( Filter Device Object),或簡稱 FiDO。 Windows系統(tǒng)驅(qū)動程序開發(fā)工具簡介 開發(fā) WDM離不開 DDK,微軟公司提供的 DDK版本有: Windows 98 DDK, Windows 2023 DDK,Windows XP DDK( DDK)和 DDK。 開發(fā) WDM也可以使用驅(qū)動開發(fā)工具 DriverStudio, 它是一個開發(fā)工具包,包含 VtoolsD、 DriverWorks、DriverNetWorks和 SoftICE等開發(fā)工具。 Windows系統(tǒng)驅(qū)動程序框架結(jié)構(gòu) 1. DriverEntry函數(shù) 每個驅(qū)動程序必須有一個 DriverEntry函數(shù)以用來初始化驅(qū)動程序范圍內(nèi)的數(shù)據(jù)結(jié)構(gòu)和資源。當(dāng) I/O管理器裝入驅(qū)動程序時,它調(diào)用 DriverEntry函數(shù)。 NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { …… } 2. AddDevice函數(shù) WDM驅(qū)動程序有一個特殊的 AddDevice函數(shù), PnP管 理器為每個設(shè)備實例調(diào)用該函數(shù)。 NTSTATUS AddDevice( IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDevObject ) { …… } *調(diào)用 IoCreateDevice創(chuàng)建設(shè)備對象,并建立一個私有的設(shè)備擴展對象。 *寄存一個或多個設(shè)備接口,以便應(yīng)用程序能知道設(shè)備的存在。另外,還可以給出設(shè)備名并創(chuàng)建符號連接。 初始化設(shè)備擴展和設(shè)備對象的 Flag成員。 *調(diào)用 IoAttachDeviceToDeviceStack函數(shù)把新設(shè)備對象放到堆棧上。 3. Dispatch函數(shù) NTSTATUS ( *PDRIVER_DISPATCH)( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { …… (略) } Dispatch函數(shù)如下處理輸入 IRP的過程如下: *在 IRP中檢測驅(qū)動程序的 I/O棧位臵以決定做什么,并且如果有參數(shù)的話,檢測參數(shù)的有效性。 *盡可能滿足請求并完成 IRP;否則,由較低層驅(qū)動程序或其他設(shè)備驅(qū)動程序函數(shù)傳送它以做進(jìn)一步處理。 4. StartIo函數(shù) 大多數(shù)設(shè)備驅(qū)動程序有一個 StartIo函數(shù),該函數(shù)是用來完成 IRP的排隊功能的,因為大多數(shù)PC外設(shè)同時僅能處理一個設(shè)備 I/O操作。 VOID ( *PDRIVER_STARTIO)( IN PDRIVER_OBJECT DeviceObject, IN PIRP Irp ) { …… } 函數(shù)名稱 函數(shù)功能 Unload 卸載驅(qū)動程序 ISR 中斷服務(wù)函數(shù) DpcForIsr 延時過程調(diào)用函數(shù),完成一個 I/O請求和開始另一個中斷驅(qū)動的傳輸 IRP處理函數(shù) 被調(diào)來處理希望處理的 IRP Cancel 取消一個 IRP Completion 當(dāng)一個低層驅(qū)動程序完成一個 IRP的處理時被調(diào)用,這允許當(dāng)前的驅(qū)動程序做更多的工作 AdapterControl 當(dāng)一個 DMA通道適配器可用時調(diào)用 ControllerControl 當(dāng)一個控制器空閑時調(diào)用 Timer 定時器回調(diào)函數(shù) CustomerTimerDpc TimerDpc的回調(diào)函數(shù) CustomerDpc 通常用于處理工作隊列 ConfigCallBack 查詢設(shè)備硬件描述回調(diào) 臨界段函數(shù) 同步一個處理器上的中斷執(zhí)行。由低級 IRQL的任務(wù)調(diào)用來與硬件交互 即插即用通知 當(dāng)設(shè)備 PnP狀態(tài)發(fā)生變化時被調(diào)用 電源通知 當(dāng)設(shè)備 Power狀態(tài)發(fā)生變化時被調(diào)用 Windows系統(tǒng)驅(qū)動程序設(shè)計準(zhǔn)備工作 如果你在設(shè)計一個設(shè)備驅(qū)動程序,你應(yīng)該支持和其他相同類型設(shè)備的 NT驅(qū)動程序相同的IRP_MJ_XXX和 IOCTL請求代碼。 如果你是在設(shè)計一個中間層 NT驅(qū)動程序,應(yīng)該首先確認(rèn)你下層驅(qū)動程序所管理的設(shè)備,因為一個高層的驅(qū)動程序必須具有低層驅(qū)動程序絕大多數(shù)IRP_MJ_XXX函數(shù)入口。高層驅(qū)動程序在接到I/O 請求時,在確定自身 IRP當(dāng)前堆棧單元參數(shù)有效的前提下,設(shè)臵好 IRP中下一個低層驅(qū)動程序的堆棧單元,然后再調(diào)用 IoCallDriver 將請求傳遞給下層驅(qū)動程序處理。 一旦決定好了你的驅(qū)動程序應(yīng)該處理哪些IRP_MJ_XXX,就可以開始確定驅(qū)動程序應(yīng)該有多少個 Dispatch函數(shù)。 Windows系統(tǒng)驅(qū)動程序開發(fā)的一般過程 最簡單的驅(qū)動程序開發(fā)步驟如下: ( 1)寫一個 DriverEntry函數(shù),在里面調(diào)用IoCreateDevice創(chuàng)建一個 Device對象。 ( 2)寫一個處理 IRP_MJ_CREATE請求的Dispatch函數(shù)的基本框架。 ( 3)編譯你的驅(qū)動程序。 ( 4)安裝測試你的驅(qū)動程序。 第 3章 PE病毒及反病毒技術(shù)相關(guān)實驗 PE文件病毒簡介 簡單 PE病毒模擬實驗 PE病毒的變異實驗 多進(jìn)程自保護病毒實驗 病毒的線程注入實驗 PE文件自免疫防病毒實驗 PE文件病毒簡介 通過操作系統(tǒng)的文件系統(tǒng)進(jìn)行感染的病毒都稱為 文件病毒 . DOS環(huán)境下有 4種基本的可執(zhí)行文件格式 : 。是以 .BAT結(jié)尾的文件。 。是以 .SYS結(jié)尾的文件。 。是以 .COM結(jié)尾的純代碼文件。 。是以 .EXE結(jié)尾的文件。 1.覆蓋病毒 這種病毒直接用病毒文件替換被感染的文件,這樣所感染文件的文件頭也變成了病毒程序的文件頭,不用做任何調(diào)整。顯然,這種病毒不可能廣泛流行,因為被感染的程序立刻就不能正常工作了,用戶可以迅速的發(fā)現(xiàn)病毒的存在并采取相應(yīng)的措施。這類病毒并不是一種典型意義上的文件病毒,主要出現(xiàn)在病毒發(fā)展的初期,現(xiàn)在已經(jīng)很難發(fā)現(xiàn)了。 2.寄生病毒 ( 1)“頭寄生”病毒 實現(xiàn)將病毒代碼放到程序的頭上有兩種方法, 一種 是將原來程序的前面一部分拷貝到程序的最后,然后將文件頭用病毒代碼覆蓋; 另一種 是生成一個新的文件,首先在頭的位臵寫上病毒代碼,然后將原來的可執(zhí)行文件放在病毒代碼的后面,再用新的文件替換原來的文件從而完成感染,感染原理如圖所示。 原程序代碼 病毒代碼 原程序代碼頭 原程序代碼 原程序代碼頭 病毒代碼 原程序代碼頭 原程序代碼 感染方式 1 感染方式 2 ( 2)“尾寄生”病毒 “尾寄生”病毒可以不對原程序的代碼位臵進(jìn)行修改,而且病毒代碼一般作為一個相對獨立的節(jié)加入,因而相對容易實現(xiàn)。但這種感染方式會增加原文件及運行文件的大小,因而隱蔽性較差。 D O S EX E 文件頭 PE 文件頭 感染前的程序 D O S EX E 文件頭(修改后) PE 文件頭(修改后) 感染前的程序 病毒代碼 感染 ( 3)“插入寄生”病毒 病毒可以將自己插入到被感染的程序中,可以整段的插入,也可以分成很多段,如果是插入到節(jié)間空位,則不會改變文件大小,隱蔽性較高,但需要被感染文件提供相應(yīng)條件(如具有
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1