阅读:2585回复:8
拦截从网络上访问本地文件????
拦截从网络上访问本地硬盘上的共享文件有什么方法???
我拦截了ZwCreateFile,ZwWriteFile,。。。。但是不能拦截网络上对本地机器上共享文件的访问 用IFS就没有这个问题了,但是用HookAPI能不能做?或者还有没有其它的方法? |
|
沙发#
发布于:2003-11-04 17:02
IFS为什么就没有这个问题?能解释一下吗?
同样关注ing |
|
|
板凳#
发布于:2003-11-04 17:36
访问文件接口肯定会在文件系统之上,所以IFS可以。
你用Filemon跟踪一下就可以知道了。 ZwCreateFile接口就是在IFS Filter之上,但是从网络上的机器访问本地共享文件时,本地机器上并没有调用ZwCreateFile |
|
地板#
发布于:2003-11-26 16:31
可以用NDIS做一个网络访问的驱动程序
|
|
|
地下室#
发布于:2003-11-27 09:16
访问文件接口肯定会在文件系统之上,所以IFS可以。 跟踪fastio试试。 |
|
|
5楼#
发布于:2003-11-27 23:15
不能HOOK NATIVE API ,必须用过滤驱动。。。。。。
|
|
|
6楼#
发布于:2003-12-02 13:51
Hookapi可能不行,网络文件访问是通过本地的srv.sys进行的,用IFS是可以拦截的
|
|
7楼#
发布于:2003-12-02 16:00
谢谢各位,只好挂个IFS了。
我用ZwCreateFile主要是用来拦截\\\\.\\COM1之类的设备 |
|
8楼#
发布于:2003-12-25 15:11
新闻祖上得来的.
HANDLE TokenHandle = NULL; NTSTATUS Status = ZwOpenThreadToken((HANDLE)-2, STANDARD_RIGHTS_READ, FALSE, &TokenHandle); if (NT_SUCCESS(Status)) { ULONG ResultLength; TOKEN_TYPE TType; Status = ZwQueryInformationToken(TokenHandle, TokenType, &TType, sizeof(TOKEN_TYPE), &ResultLength); if (NT_SUCCESS(Status)) { if (TType == TokenImpersonation) { bServerCall = TRUE; } } ZwClose(TokenHandle); } Notice, however, that you must check for impersonation token in IRP_MJ_CREATE dispatch routine only. And using current thread probably is not the best idea. |
|