首页
社区
课程
招聘
[旧帖] [求助]ntdll.RtlNtPathNameToDosPathName的用法 0.00雪花
发表于: 2011-7-11 20:33 1686

[旧帖] [求助]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

有哪位大牛懂的请贴下详细代码或有其他方法转换为正确的常规完整路径
下面是查到的该函数原型
百度+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    
               );

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//