能力值:
(RANK:650 )
|
-
-
2 楼
http://www.debugman.com/read.php?tid=813
|
能力值:
( LV9,RANK:330 )
|
-
-
3 楼
真逗, debugman变成了第八个男人~ 这绿帽子戴得也太多了~
|
能力值:
( LV10,RANK:170 )
|
-
-
4 楼
多谢!
通过ObQueryNameString(file, fileNameInformation, 1024, &retSize);
最终得到了该文件的物理路径,例如:\Device\HarddiskVolume1\AAAA\BBBB\CCCC\abc.exe
基本上这就差不多了,\Device\HarddiskVolume1 就是c:
另外,ObQueryNameString函数需要在驱动中引入一个头文件:#include "ntifs.h"
这里顺便上传上来!如何和ntddk.h中的定义重复了,直接把ntifs.h中的定义注释掉就好了! ntifs.rar
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
RtlVolumeDeviceToDosName
|
能力值:
( LV12,RANK:760 )
|
-
-
6 楼
要邪恶方法,不要用文件路径或者名称来思考~
|
能力值:
( LV10,RANK:170 )
|
-
-
7 楼
多谢5楼!同时这两天看了看sysinternal的FileMon和RegMon,颇有收获!
本问题,从FILE_OBJECT到该文件的完整路径的方法,我个人总结如下:
//相关变量
HANDLE filehandle=0;
PFILE_OBJECT file=0;
PFILE_OBJECT relatedfile=0;
POBJECT_HANDLE_INFORMATION info=0;
char filefullname_c[1024];
ANSI_STRING filefullname_a;
UNICODE_STRING filefullname_u;
int relatedfilelength;
POBJECT_NAME_INFORMATION fileNameInformation;
ULONG retSize;
//先得到盘符
RtlVolumeDeviceToDosName(file->DeviceObject,&filefullname_u);
RtlUnicodeStringToAnsiString(&filefullname_a,&filefullname_u,1);
strncpy(filefullname_c,filefullname_a.Buffer,filefullname_a.Length);
filefullname_c[filefullname_a.Length]='\0';
relatedfilelength=filefullname_a.Length;
//相对路径
relatedfile=file->RelatedFileObject;
RtlUnicodeStringToAnsiString(&filefullname_a,&relatedfile->FileName,1);
strncat(filefullname_c,filefullname_a.Buffer,filefullname_a.Length);
filefullname_c[relatedfilelength+filefullname_a.Length]='\0';
relatedfilelength+=filefullname_a.Length;
//文件名
RtlUnicodeStringToAnsiString(&filefullname_a,&file->FileName,1);
strcat(filefullname_c,"\\");
strncat(filefullname_c,filefullname_a.Buffer,filefullname_a.Length);
filefullname_c[relatedfilelength+filefullname_a.Length+1]='\0';
最终的文件路径就放在:filefullname_c
|
能力值:
( LV10,RANK:170 )
|
-
-
8 楼
上面这段代码可以做成一个函数,只要输入一个文件的FILE_OBJECT对象,就能输出该文件的完整路径(DosName)
哈哈!希望对大家有用!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
楼主看的是什么?我也很想了解这方面的信息,方便的话能给我一份么?非常感谢.
我的邮箱:korall@163.com
|
能力值:
( LV10,RANK:170 )
|
-
-
10 楼
看的 sysinternal的FileMon和RegMon
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
不错!学习一下
|
能力值:
( LV3,RANK:30 )
|
-
-
12 楼
谢谢了
|
|
|