當前位置:首頁 » 操作系統 » ssdthook源碼

ssdthook源碼

發布時間: 2022-05-29 12:09:42

㈠ 誰可以給個SSDT掛鉤NtWriteVirtualMemory函數源碼

要想做到是非常麻煩的,因為沒有拿個API能保護自己的程序不被結束,如果真掛鉤: 用戶態下有SSDT HOOK 內核態下有Inline HOOK Inline HOOK更強大一

㈡ ssdt hook未導出函數問題

函數(function)表示每個輸入值對應唯一輸出值的一種對應關系。函數f中對應輸入值的輸出值x的標准符號為f(x)。

㈢ inline HOOK和SSDT HOOK各自有啥特性的哦

inline hook 是直接在以前的函數替裡面修改指令,用一個跳轉或者其他指令來達到掛鉤的目的。

ssdt是利用api來掛鉤的,相當於替換API,用ICESword可以很簡單的判斷出來。

底下是我在網上看過一篇文章的說的一個比喻,剛好能回答你的問題:

如果說SSDT Hook只是把某位"內核API先生"綁架,然後用我們的「自己人」來接管其工作,而ICESword卻可以從其他聯系途徑找到被綁架的"內核API先生"並「報警」,那麼——Inline Hook可以說是給"內核API先生"動了手術,讓他成為"我們陣營的一分子"。

呵呵,很幽默的一個比喻

㈣ 哪些殺毒軟體不用「SSDT hook」技術

MSE似乎不是,是用微軟自己的技術的,好像微軟也不太推薦用ssdthook的

㈤ 幫忙在pudn上下載一個東西

請下載附件吧,文件已給你上傳,希望對你的研究有所幫助,還望採納

SSDT HOOK VB實現源碼,調用底層函數,實現的SSDT HOOK.適合VB研究驅動

㈥ 遍歷SSDT,檢測是否被hook

槔錈妗R簿褪茄罷襍SDT導出NT函數的原始地址。此方法不適合檢測 inline Hook。typedef struct _SYSTEM_MODULE_INFORMATION { ULONG Reserved[2]; PVOID Base; ULONG Size; ULONG Flags; USHORT Index; USHORT Unknown; USHORT LoadCount; USHORT MoleNameOffset; CHAR ImageName[256]; } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; typedef struct _tagSysMoleList { ULONG ulCount; SYSTEM_MODULE_INFORMATION smi[1]; } SYSMODULELIST, *PSYSMODULELIST; 以上是SSDT模塊信息的結構和鏈表。 NTSTATUS MyEnumSSDT() { NTSTATUS status = STATUS_UNSUCCESSFUL; PULONG SSDT_Function_Address; //SSDT表函數地址 ULONG SSDT_Function_Number; //SSDT表函數個數 PSYSMODULELIST pSysMoleList; SYSTEM_MODULE_INFORMATION SystemMoleInfo;//模塊結構 PVOID pBuffer;//SSDT總大小緩沖區 ULONG uBufferSize; ULONG i = 0; ULONG j = 0; ULONG uMoleBase; ULONG uMoleMax; CHAR strMdoulePath[255]; SSDT_Function_Address = (PULONG)KeServiceDescriptorTable->ServiceTableBase; SSDT_Function_Number = KeServiceDescriptorTable->NumberOfService; KdPrint(("SSDT_Function_Address:%x,SSDT_Function_Number:%d\n",SSDT_Function_Address,SSDT_Function_Number)); ZwQuerySystemInformation(SystemMoleInformation,NULL,0,&uBufferSize);//枚舉SSDT表Path大小 if (!uBufferSize) { KdPrint(("ZwQuerySystemInformation1 error!\n")); return status; } pBuffer = ExAllocatePoolWithTag(NonPagedPool,uBufferSize,MEM_TAG);//申請內存存放 if (!pBuffer) { KdPrint(("ExAllocatePoolWithTag error!\n")); return status; } status = ZwQuerySystemInformation(SystemMoleInformation,pBuffer,uBufferSize,NULL);//第二次遍歷,填充pBuffer緩沖區 if (!NT_SUCCESS(status)) { KdPrint(("ZwQuerySystemInformation2 error!\n")); return status; } pSysMoleList = (PSYSMODULELIST)pBuffer;//將所有SSDT函數緩沖區換成鏈表來訪問 for (j = 0; j < pSysMoleList->ulCount; j++) //遍歷獲取ntkrnlpa.exe模塊所在地址和大小 { SystemMoleInfo = pSysMoleList->smi[j]; strcpy(strMdoulePath,(SystemMoleInfo.ImageName + SystemMoleInfo.MoleNameOffset)); if (strncmp("ntkrnlpa.exe",strMdoulePath,12) == 0) { uMoleBase = (ULONG)SystemMoleInfo.Base; uMoleMax = uMoleBase + SystemMoleInfo.Size; } } //遍歷SSDT表,對比地址檢測是否被hook for (i = 0; i < SSDT_Function_Number; i++) { if (uMoleBase < (ULONG)SSDT_Function_Address && (ULONG)SSDT_Function_Address < uMoleMax) { KdPrint(("UnHook:%03d Address:%X Path:%s\n",i,*(SSDT_Function_Address + i),strMdoulePath)); } else { KdPrint(("Hook:%03d Address:%X Path:%s\n",i,*(SSDT_Function_Address + i),strMdoulePath)); } } if (pBuffer) { ExFreePool(pBuffer); pBuffer = NULL; } return status; }總的來說還是比較簡單的,還差了一個獲取SSDT導出函數名字。下一篇補全。

㈦ 不斷SSDT HOOK該怎麼恢復

應該是他也有一個進程在輪詢SSDT表吧我想。。找到這個進程或者服務殺之。就能解決了。。或者有些工具不是可以看出來ssdthook是被哪個模塊sys給hook的。然後你吧這個sys刪掉就行了吧。

㈧ 易語言超級模塊怎樣進行SSDT HOOK

typedef struct ServiceDescriptorEntry {
unsigned int *ServiceTableBase;
unsigned int *ServiceCounterTableBase;
unsigned int NumberOfServices;
unsigned char *ParamTableBase;
} ServiceDescriptorTableEntry_t, *PServiceDescriptorTableEntry_t;

㈨ windows內核方面的書籍有哪些

驅網的3本只出了2本,都不適合入門.寒江獨釣雖然講得詳細,但是沒有系統的結構.
建議以張凡那本來入門,雖然不是講內核安全的.但是作為系統的學習驅動入門是很好的書.
毛德操的不適合去完全把它讀完.它只是在讀系統的源碼.你完全可以自己去看wrk的源碼.不過這書的第二章我還是建議你讀一下的.
至於windows internals 那是必備的了.
如果你想了解ssdt hook,idt hook之類的可以上網找些文章看.我暫時還沒有發現有哪本書講這些的.可以寒江獨釣會講.但我沒仔細看

㈩ SSDT Hook卸載驅動時藍屏的問題

先根據藍屏代碼來搜索下,此代碼具體是因為什麼引起的;然後重啟電腦按F8,選擇進入安全模式把出現錯誤的驅動給卸載掉;可以用網路電腦專家裡的藍屏修復工具來修復下的。

然後再根據找出驅動出現問題的設備,重新安裝驅動也可以用該設備自帶的驅動盤來安裝驅動,也可根據設備的品牌去官網上下載驅動來安裝,這樣就可以解決問題了。

熱點內容
c語言定義函數數組 發布:2024-10-28 19:09:49 瀏覽:599
演算法的藝術 發布:2024-10-28 19:08:58 瀏覽:833
安卓手機為什麼不能用蘋果有線耳機 發布:2024-10-28 18:36:06 瀏覽:208
mvc腳本 發布:2024-10-28 18:29:33 瀏覽:649
安卓怎麼修改版本號 發布:2024-10-28 18:23:39 瀏覽:728
面向介面編程的理解 發布:2024-10-28 18:18:56 瀏覽:597
伺服器存儲備份 發布:2024-10-28 18:15:59 瀏覽:789
解壓整理 發布:2024-10-28 18:10:57 瀏覽:697
在線源碼轉換 發布:2024-10-28 18:03:07 瀏覽:883
吃雞ios系統怎麼轉安卓系統 發布:2024-10-28 17:48:31 瀏覽:412