L o a d i n g . . .
主打一个C++
文章详情

C++驱动层通过LDR_DATA_TABLE_ENTRY遍历所有驱动信息

Posted on 2018-08-09 12:51:43 by 主打一个C++

//结构
typedef struct _LDR_DATA_TABLE_ENTRY {
	LIST_ENTRY InLoadOrderLinks;
	LIST_ENTRY InMemoryOrderLinks;
	LIST_ENTRY InInitializationOrderLinks;
	PVOID DllBase;
	PVOID EntryPoint;
	ULONG SizeOfImage;
	UNICODE_STRING FullDllName;
	UNICODE_STRING BaseDllName;
	ULONG Flags;
	USHORT LoadCount;
	USHORT TlsIndex;
	union {
		LIST_ENTRY HashLinks;
		struct {
			PVOID SectionPointer;
			ULONG CheckSum;
		};
	};
	union {
		struct {
			ULONG TimeDateStamp;
		};
		struct {
			PVOID LoadedImports;
		};
	};
}LDR_DATA_TABLE_ENTRY, * PLDR_DATA_TABLE_ENTRY;

传入PDRIVER_OBJECT 

void printLdrList(PDRIVER_OBJECT DriverObject) {
	PLDR_DATA_TABLE_ENTRY pDriverList;
	PLIST_ENTRY pCurrentList;
	pDriverList = (PLDR_DATA_TABLE_ENTRY)(DriverObject->DriverSection);
	pCurrentList = (PLIST_ENTRY)pDriverList;//FFFF93885FACAE30
	while (((PLIST_ENTRY)pDriverList)->Blink != pCurrentList)
	{
		DbgPrint("[%p]DllBase=0x%p,SizeOfImage=0x%d,DriverName=%ws\n", pDriverList, pDriverList->DllBase, pDriverList->SizeOfImage, (pDriverList->BaseDllName).Buffer);
		pDriverList = ((PLIST_ENTRY)pDriverList)->Blink;
	}
}


*转载请注明出处:原文链接:https://cpp.vin/page/82.html

作者近期文章
  • 随手笔记
  • 主打一个C++   2025-01-11 20:02:01
  • 都2000000025年了。还有不能随意访问guthub的,仔细看。在国内其实是可以正常访问的,gfw并没屏蔽。这里给出其中一个简单直接的方法稳定访问。1. 随便百度一个”dn
提示
×
确定
数据库执行: 8次 总耗时: 0.01s
页面加载耗时: 



wechat +447752296473
wechat cpp-blog