阅读:1326回复:5
取得句柄的实际结果与网上的资料不同,我错or资料错?哪位老大帮着确认一下子~
参考的资料是“进程与端口关联”的相关资料
http://vip.6to23.com/NowCan1/tech/fport.htm 资料中说是取得全系统句柄,再根据句柄类型是否为 1ch(XP下) 1ah(2000下)来判断是否为Socket句柄。 实际中,我在句柄类型为1ch的情况下,得到的全是打开的文件。(我的是XP系统。) 在系统进程中(PID:4)可以得到包括我自己的驱动打开的文件,也能得到 software 、SAM等被打开的注册表文件。 但在应用层的进程中却得到了N多目录,比如:\Windows \WIndows\system32等。。 我新建了个文本文档,并打开它,但在进程中却没有发现对应的文件~ 在不做句柄类型判断全部按文件句柄操作的情况下,仍然得不到我打开的“新建文本文档” 如果说我的代码有错误,可为什么得到了系统打开的一些文件呢?如果说没错误,为什么得不到我打开的文本档。 如果网络上的资料是正确的为什么我自1cH中得到的全是文件,难道从Socket端口中也能得到文件名字? 汗~真是晕了,老大们帮着解释一下啊~谢谢~ |
|
沙发#
发布于:2007-03-14 15:01
刚用ProcessExplorer查看了一下儿,看来它的结果跟我试验的结果一样的,在驱动中打开的文件,都可以得到,但在应用层打开的文件,它也找不到。
先打开了个abc.txt 在ProcessExp里面Find Handle,结果是没有找到。 然后用程序以独占方式打开了一个exe文件,在ProcExp里面同样是没有找到。 但在驱动中打开的文件,就找到了。 |
|
板凳#
发布于:2007-03-14 15:55
可以取得应用层的打开文件了,但的的确确是文件类型为01cH的句柄,为什么网上的资料都说1cH是Socket句柄呢?Socket的文件句柄类型值又是多少呢?
汗~~今天大牛们都不在啊? |
|
地板#
发布于:2007-03-14 16:44
知道是文件句柄后,还要判断文件名是不是 tcp .....
|
|
地下室#
发布于:2007-03-14 16:46
记事本打开的文件,好象在读完内容后就关了
|
|
5楼#
发布于:2007-03-14 20:58
可以得到应用层的文件了。
但用NtQueryInformationFile自文件句柄取文件名时,在转换一部分后,会卡住不返回~不知是咋回会事儿~ 仍然不明白Socket句柄类型是什么~网络上都说是01cH,但明明01cH是文件句柄类型~ |
|