-
-
[旧帖] [求助]ntdll.RtlNtPathNameToDosPathName的用法 0.00雪花
-
发表于: 2011-7-11 20:33 1686
-
百度+google+bing+sogou 均只有1~2页的资料,且均没有详细代码,特别是RTL_UNICODE_STRING_BUFFER很难理解,特求助。
在hook NtCreateFile的过程中,文件名ObjectAttributes中的ObjectName可能为
??\\C:\\Windows\\filename.ext
或\\SystemRoot\\AppPatch\\sysmain.sdb
也可能还有其他格式的吧
据说RtlNtPathNameToDosPathName可以将其转换为常规的路径?
但这个函数用法实在不明白,特别对这个RTL_UNICODE_STRING_BUFFER
有哪位大牛懂的请贴下详细代码或有其他方法转换为正确的常规完整路径
下面是查到的该函数原型
在hook NtCreateFile的过程中,文件名ObjectAttributes中的ObjectName可能为
??\\C:\\Windows\\filename.ext
或\\SystemRoot\\AppPatch\\sysmain.sdb
也可能还有其他格式的吧
据说RtlNtPathNameToDosPathName可以将其转换为常规的路径?
但这个函数用法实在不明白,特别对这个RTL_UNICODE_STRING_BUFFER
有哪位大牛懂的请贴下详细代码或有其他方法转换为正确的常规完整路径
下面是查到的该函数原型
百度+google+bing+sogou 均只有1~2页的资料,且均没有详细代码,特别是RTL_UNICODE_STRING_BUFFER很难理解,特求助。 在hook NtCreateFile的过程中,文件名ObjectAttributes中的ObjectName可能为 ??\\C:\\Windows\\filename.ext 或\\SystemRoot\\AppPatch\\sysmain.sdb 也可能还有其他格式的吧 据说RtlNtPathNameToDosPathName可以将其转换为常规的路径? 但这个函数用法实在不明白,特别对这个RTL_UNICODE_STRING_BUFFER 有哪位大牛懂的请贴下详细代码或有其他方法转换为正确的常规完整路径 下面是查到的该函数原型 [CODE]typedef struct _RTL_BUFFER { PUCHAR Buffer; PUCHAR StaticBuffer; SIZE_T Size; SIZE_T StaticSize; SIZE_T ReservedForAllocatedSize; // for future doubling PVOID ReservedForIMalloc; // for future pluggable growth } RTL_BUFFER, *PRTL_BUFFER; typedef struct _RTL_UNICODE_STRING_BUFFER { UNICODE_STRING String; RTL_BUFFER ByteBuffer; UCHAR MinimumStaticBufferForTerminalNul[sizeof(WCHAR)]; } RTL_UNICODE_STRING_BUFFER, *PRTL_UNICODE_STRING_BUFFER; NTSYSAPI NTSTATUS NTAPI RtlNtPathNameToDosPathName( __in ULONG Flags, __inout PRTL_UNICODE_STRING_BUFFER Path, __out_opt PULONG Disposition, __inout_opt PWSTR* FilePart );
赞赏
他的文章
看原图
赞赏
雪币:
留言: