微軟在x64系統中推出了DSE保護機制,DSE全稱(Driver Signature Enforcement),該保護機制的核心就是任何驅動程式或者是第三方驅動如果想要在正常模式下被加載則必須要經過微軟的認證,當驅動程式被加載到記憶體時會驗證簽名的正確性,如果簽名不正常則系統會拒絕運行驅動,這種機制也被稱為驅動強制簽名,該機制的作用是保護系統免受惡意軟體的破壞,是提高系統安全性的一種手段,
該驗證機制即便是在除錯模式也需要強制簽名,對于一名驅動開發者來說是很麻煩的一件事情,而簽名的驗證則是在加載時驗證驅動入口_KLDR_DATA_TABLE_ENTRY里面的Flags標志,如果此標志被pLdrData->Flags | 0x20置位,則在除錯模式下就不會在驗證簽名了,省去了重復簽名的麻煩,
代碼的實作非常容易,如下所示:
// 署名權
// right to sign one's name on a piece of work
// PowerBy: LyShark
// Email: [email protected]
#include <ntifs.h>
// 繞過簽名檢查
BOOLEAN BypassCheckSign(PDRIVER_OBJECT pDriverObject)
{
#ifdef _WIN64
typedef struct _KLDR_DATA_TABLE_ENTRY
{
LIST_ENTRY listEntry;
ULONG64 __Undefined1;
ULONG64 __Undefined2;
ULONG64 __Undefined3;
ULONG64 NonPagedDebugInfo;
ULONG64 DllBase;
ULONG64 EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
USHORT LoadCount;
USHORT __Undefined5;
ULONG64 __Undefined6;
ULONG CheckSum;
ULONG __padding1;
ULONG TimeDateStamp;
ULONG __padding2;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
#else
typedef struct _KLDR_DATA_TABLE_ENTRY
{
LIST_ENTRY listEntry;
ULONG unknown1;
ULONG unknown2;
ULONG unknown3;
ULONG unknown4;
ULONG unknown5;
ULONG unknown6;
ULONG unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
#endif
PKLDR_DATA_TABLE_ENTRY pLdrData = https://www.cnblogs.com/LyShark/p/(PKLDR_DATA_TABLE_ENTRY)pDriverObject->DriverSection;
pLdrData->Flags = pLdrData->Flags | 0x20;
return TRUE;
}
VOID UnDriver(PDRIVER_OBJECT driver)
{
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT Driver, PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
// 繞過簽名檢查
// LINKER_FLAGS=/INTEGRITYCHECK
BypassCheckSign(Driver);
DbgPrint("[驅動已加載] hello lyshark.com \n");
Driver->DriverUnload = UnDriver;
return STATUS_SUCCESS;
}
將程式拖入到虛擬機,直接運行即可加載,無需再繼續簽名:

當然這種方式只能在測驗模式下使用,在正常模式也是無效的,只是為了方便測驗驅動,
文章作者:lyshark (王瑞)文章出處:https://www.cnblogs.com/LyShark/p/16817377.html
著作權宣告:本博客文章與代碼均為學習時整理的筆記,文章 [均為原創] 作品,轉載請 [添加出處] ,您添加出處是我創作的動力!
轉載文章請遵守《中華人民共和國著作權法》相關法律規定或遵守《署名CC BY-ND 4.0國際》規范,合理合規攜帶原創出處轉載,如果不攜帶文章出處,并惡意轉載多篇原創文章被本人發現,本人保留起訴權!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/518986.html
標籤:訊息安全
