首页
社区
课程
招聘
[旧帖] [求助]r0下怎么获取系统所在盘符? 0.00雪花
发表于: 2010-12-16 11:10 6541

[旧帖] [求助]r0下怎么获取系统所在盘符? 0.00雪花

2010-12-16 11:10
6541
我用LDR_DATA_TABLE_ENTRY结构的FullDllName获取了所有驱动模块的地址
格式主要有几种:
1.pci.sys
2.\windows\system32\drivers\battc.sys
3.\systemroot\system32\drivers\serial.sys
4.\??\c:\xx.sys
除了第4种,其他的要自己扩展
第2种知道了系统所在的盘符就可以了吧,怎么获取呢?
还有第1和第3有什么办法能在r0下直接扩展成完整的路径?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 10915
活跃值: (2880)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
2
顶一下,同问
2011-9-11 23:05
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
3
不懂 要问啥.......是不是 文件所在盘符,也就是文件路劲的前缀盘符....
2011-9-11 23:47
0
雪    币: 10915
活跃值: (2880)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
4
系统的所在盘符啊,总不能硬编码"c:\"
2011-9-11 23:50
0
雪    币: 10915
活跃值: (2880)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
5
RtlInitUnicodeString (&usDirName,L"\\KnownDlls");
	InitializeObjectAttributes( &ObjDir,
								&usDirName,
								OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
								NULL,
								NULL);
	st = ZwOpenDirectoryObject ( &hDir,
								DIRECTORY_QUERY,
								&ObjDir);
RtlInitUnicodeString (&usSymbolicName , L"KnownDllPath");
	InitializeObjectAttributes(&ObjSymbolic,&usSymbolicName,OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,hDir,NULL);
	st = ZwOpenSymbolicLinkObject (&hSymbolic,
									GENERIC_READ,
									&ObjSymbolic);
usSymbolic.Buffer = wchBuffer;
	usSymbolic.MaximumLength = 256*sizeof(WCHAR);
	usSymbolic.Length =0;
	st = ZwQuerySymbolicLinkObject ( hSymbolic,
									&usSymbolic,
									NULL);
	KdPrint(("KnownDllPath: %wZ \n",&usSymbolic));
//去掉了部分错误判断,感谢长风傲天的代码,学习了。
上传的附件:
2011-9-15 22:04
0
雪    币: 53
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
学习了,代码不错。
2011-9-16 23:10
0
游客
登录 | 注册 方可回帖
返回
//