試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)

試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)

ID:25656779

大?。?09.00 KB

頁數(shù):21頁

時(shí)間:2018-11-21

試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)_第1頁
試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)_第2頁
試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)_第3頁
試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)_第4頁
試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)_第5頁
資源描述:

《試論windows2003 內(nèi)核級進(jìn)程隱藏和偵測技術(shù)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、試論Windows2003內(nèi)核級進(jìn)程隱藏和偵測技術(shù)摘要:信息對抗是目前計(jì)算機(jī)發(fā)展的一個(gè)重要的方向,為了更好的防御,必須去深入的了解敵人進(jìn)攻的招式。信息對抗促使信息技術(shù)飛速的發(fā)展。下面我選取了信息對抗技術(shù)的中一個(gè)很小一角關(guān)于ain,ain,是一樣的。  extern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath)  {...}  DriverEntry的第一個(gè)參數(shù)是一個(gè)指針,指向一個(gè)剛被初始化的驅(qū)動(dòng)程序?qū)ο?,該對象就代表你的?qū)動(dòng)程序,DriverE

2、ntry的第二個(gè)參數(shù)是設(shè)備服務(wù)鍵的鍵名。DriverEntry函數(shù)返回一個(gè)NTSTATUS值。NTSTATUS實(shí)際就是一個(gè)長整型,但你應(yīng)該使用NTSTATUS定義該函數(shù)的返回值而不是LONG,這樣代碼的可讀性會更好。大部分內(nèi)核模式支持例程都返回NTSTATUS狀態(tài)代碼,你可以在DDK頭文件NTSTATUS.H中找到NTSTATUS的代碼列表。  DriverEntry的作用主要就是創(chuàng)建設(shè)備對象,建立設(shè)備對象的符號鏈接,設(shè)置好各個(gè)類型的回調(diào)函數(shù)等?! ±纾篹xtern"C"NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverOb

3、ject,INPUNICODE_STRINGRegistryPath){DriverObject->DriverUnload=DriverUnload;<--1DriverObject->DriverExtension->AddDevice=AddDevice;DriverObject->DriverStartIo=StartIo;DriverObject->MajorFunction[IRP_MJ_PNP]=DispatchPnp;<--2DriverObject->MajorFunction[IRP_MJ_P

4、O中通過設(shè)置AddDevice回調(diào)函數(shù)來創(chuàng)建設(shè)備對象。在NT驅(qū)動(dòng)中在DriverEntry例程中創(chuàng)建設(shè)備對象和符號鏈接?! ±纾骸 tlInitUnicodeString(deviceNameUnicodeString,deviceNameBuffer);//初始化設(shè)備名字//創(chuàng)建設(shè)備ntStatus=IoCreateDevice(DriverObject,0,deviceNameUnicodeString,##DeviceId,0,FALSE,deviceObject);if(NT_SUCCESS(ntStatus)){RtlInitUnicodeStr

5、ing(deviceLinkUnicodeString,deviceLinkBuffer);//初始化符號鏈接名字//創(chuàng)建符號鏈接ntStatus=IoCreateSymbolicLink(deviceLinkUnicodeString,deviceNameUnicodeString);if(!NT_SUCCESS(ntStatus)){IoDeleteDevice(deviceObject);//如果創(chuàng)建符號鏈接失敗,刪除設(shè)備returnntStatus;}}  建立符號鏈接的作用就是暴露一個(gè)給應(yīng)用程序的接口,應(yīng)用程序可以通過CreateFileAPI打開鏈

6、接符號,得到一個(gè)語柄,和我們的驅(qū)動(dòng)程序進(jìn)行交互操作?! ?.Unload例程  雖然各個(gè)驅(qū)動(dòng)程序的Unload例程不盡相同,但是它大致執(zhí)行下列工作:  釋放屬于驅(qū)動(dòng)程序的任何硬件?! 腶jorField域中來唯一的標(biāo)識請求的類型。MajorField域是被I/O管理器用來索引驅(qū)動(dòng)程序?qū)ο蟮腗ajorFunction表,這個(gè)表包含一個(gè)指向一個(gè)特殊I/O請求的派遣例程的功能指針,如果驅(qū)動(dòng)程序不支持這個(gè)請求,MajorFunction表就會指向I/O管理器函數(shù)_IopInvalidDeviceRequest,該函數(shù)返回一個(gè)錯(cuò)誤給原始的調(diào)用者。驅(qū)動(dòng)程序的有責(zé)任提供所

7、有的驅(qū)動(dòng)程序支持的派遣例程。所有的驅(qū)動(dòng)程序必須支持IRP_MJ_CREATE功能代碼,因?yàn)檫@個(gè)功能代碼是用來響應(yīng)J_CLOSE功能代碼,因?yàn)樗脕眄憫?yīng)ydrvDispatch(INPDEVICE_OBJECTDeviceObject,INPIRPIrp){NTSTATUSstatus;PIO_STACK_LOCATIONirpSp;//得到當(dāng)前IRP(I/O請求包)irpSp=IoGetCurrentIrpStackLocation(Irp);sation=0L;break;caseIRP_MJ_CLOSE:DbgPrint("IRP_MJ_CLOSE")

8、;Irp->IoStatus.S

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。