kk1025 发表于 2013-4-18 16:59:07

[已解決]求教調用NTQUERYDIRECTORYFILE問題

本帖最后由 kk1025 于 2013-7-29 08:40 编辑

在調用NTQUERYDIRECTORYFILE時會出現STATUS_INFO_LENGTH_MISMATCH的NTSTATUS,不知哪位大大知道怎麼解這個問題。


typedef NTSTATUS ( *NTQUERYDIRECTORYFILE)(IN HANDLEFileHandle,
                                       IN HANDLEEvent,
                                       IN PIO_APC_ROUTINEApcRoutine,
                                       IN PVOIDApcContext,
                                       OUT PIO_STATUS_BLOCKIoStatusBlock,
                                       OUT PVOIDFileInformation,
                                       OUT ULONGLength,
                                       IN FILE_INFORMATION_CLASSFileInformationClass,
                                       IN BOOLEANReturnSingleEntry,
                                       IN PUNICODE_STRINGFileName,
                                       IN BOOLEANRestartScan);

NTQUERYDIRECTORYFILE NtQueryDirectoryFile;

status = (NTQUERYDIRECTORYFILE)(NtQueryDirectoryFile)(
                        FileHandle,
                        Event,
                        ApcRoutine,
                        ApcContext,
                        IoStatusBlock,
                        FileInformation,
                        Length,
                        FileInformationClass,
                        ReturnSingleEntry,
                        FileName,
                        RestartScan);
kp("NTSTATUSA = %x",status);

Tesla.Angela 发表于 2013-4-19 12:21:07

你去搜索一下论坛,有人发过一个利用此函数来枚举文件的代码。

kk1025 发表于 2013-4-19 14:00:47

Tesla.Angela 发表于 2013-4-19 12:21 static/image/common/back.gif
你去搜索一下论坛,有人发过一个利用此函数来枚举文件的代码。

感謝。我找一下~~

kk1025 发表于 2013-6-9 08:59:29

Tesla.Angela 发表于 2013-4-19 12:21 static/image/common/back.gif
你去搜索一下论坛,有人发过一个利用此函数来枚举文件的代码。

不知大大有沒有遇過。調用原函数時,會出現STATUS_ACCESS_VIOLATION的問題

Tesla.Angela 发表于 2013-6-9 15:35:50

kk1025 发表于 2013-6-9 08:59 static/image/common/back.gif
不知大大有沒有遇過。調用原函数時,會出現STATUS_ACCESS_VIOLATION的問題

把代码写到try...catch里面。

kk1025 发表于 2013-6-9 17:08:13

Tesla.Angela 发表于 2013-6-9 15:35 static/image/common/back.gif
把代码写到try...catch里面。

謝謝大大。不過問題還是一樣,
我參考大大的Hook SSDT 找到(50)的NtQueryDirectoryFile,然後Hook到Fake_NtQueryDirectoryFile , 在Fake_NtQueryDirectoryFile中再CALL NtQueryDirectoryFile要取得FileInformation時就會出現STATUS_ACCESS_VIOLATION的錯誤而失敗, 使用try... catch也是一樣~~不知大大有建議嗎~

Tesla.Angela 发表于 2013-6-9 18:09:55

不知道NtQueryDirectoryFile要在内核线程里才能调用吗?
或者说,线程要处于KernelMode才能成功执行这个函数吗?

kk1025 发表于 2013-6-9 22:27:32

Tesla.Angela 发表于 2013-6-9 18:09 static/image/common/back.gif
不知道NtQueryDirectoryFile要在内核线程里才能调用吗?
或者说,线程要处于KernelMode才能成功执行这个函 ...

謝謝大大, 第一次玩耍WIN64 ,我功力很弱,因為在WIN32上寫過類似的是可以,
所以想問大大,要怎麼樣才能在WIN64走內核線程,難道一定要用KERNEL﹣CODE 的憑證SIGN過才行嗎,

Tesla.Angela 发表于 2013-6-10 00:12:55

kk1025 发表于 2013-6-9 22:27 static/image/common/back.gif
謝謝大大, 第一次玩耍WIN64 ,我功力很弱,因為在WIN32上寫過類似的是可以,
所以想問大大,要怎麼樣才 ...

看置顶贴。

kk1025 发表于 2013-6-10 10:28:29

Tesla.Angela 发表于 2013-6-10 00:12 static/image/common/back.gif
看置顶贴。

OK。。。研究一下~

kk1025 发表于 2013-6-10 16:33:46

Tesla.Angela 发表于 2013-6-10 00:12 static/image/common/back.gif
看置顶贴。

不好意思。大大請問是哪一貼

kk1025 发表于 2013-7-28 23:16:08

Tesla.Angela 发表于 2013-6-10 00:12 static/image/common/back.gif
看置顶贴。

感謝大大囉。。原來要這樣解

kk1025 发表于 2013-7-28 23:16:12

Tesla.Angela 发表于 2013-6-10 00:12 static/image/common/back.gif
看置顶贴。

感謝大大囉。。原來要這樣解
页: [1]
查看完整版本: [已解決]求教調用NTQUERYDIRECTORYFILE問題