首页
社区
课程
招聘
[讨论]如何从进程中提取出其打开的文件的路径? 比如从WINWORD.EXE中得到“X:\XX\XXX.docx”
发表于: 2012-12-15 06:53 14092

[讨论]如何从进程中提取出其打开的文件的路径? 比如从WINWORD.EXE中得到“X:\XX\XXX.docx”

2012-12-15 06:53
14092
如题。算是讨论,也算求助吧。GetCommandLine只能获得当前进程的可执行文件路径,GetModuleFileNameEx也只得到进程文件路径,还有一些其它方法也试了,无果……
“X:\XX\XXX.docx”

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 96
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
能不能设置关于打开某一类型文件的钩子?然后如果是你要监控的进程调用的就记录下来?
2012-12-15 10:43
0
雪    币: 601
活跃值: (256)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
3
PEB->RTL_USER_PROCESS_PARAMETERS->CommandLine
2012-12-15 11:28
0
雪    币: 480
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
枚举这个进程的文件句柄即可
2012-12-15 13:40
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
WINWORD.EXE中得到“X:\XX\XXX.docx”

简单HOOK 目标进程 LoadLibraryA
2012-12-15 16:05
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢大家的回复。PEB之前试过,没调试成功,我再试试。钩子应该可以,但为什么是HOOK LoadLibrary,而不是CreateFile、CreateMapFile之类?还有,枚举进程中的句柄可以,如何进一步枚举文件句柄?除了主进程句柄外,枚举出来的都是“……ntdll.dll”这些,找不到所要的文件句柄啊。肿麽办?
2012-12-15 22:33
0
雪    币: 179
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看看支持你
2012-12-16 01:09
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢你的鼓励和支持
2012-12-16 07:09
0
雪    币: 224
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
1:ZwQuerySystemInformation SystemHandleInformation得到进程打开的句柄
2:ZwQueryObject根据句柄得到文件名称
2012-12-16 08:14
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
调了好几天了 没有预期的结果 有点想用驱动做了 有点担心 驱动太难调试了
2012-12-22 00:17
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这基本不可行。一个程序可以打开一个文件读取后就closehandle,这时间可能很长也可能读完就close  ,自己写个小程序试试
2012-12-25 09:06
0
雪    币: 822
活跃值: (380)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
12
枚举进程打开的文件句柄,然后: http://msdn.microsoft.com/en-us/library/aa366789%28VS.85%29.aspx
2012-12-25 09:40
0
雪    币: 411
活跃值: (247)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
如果是winword可以dde hook
2012-12-25 17:14
0
雪    币: 411
活跃值: (247)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
如果是在shellcode中还是用暴力穷举句柄然后比较大小吧.或者用ZwQueryVirtualMemory
不知道你具体的目的,总之办法n多
2012-12-25 17:17
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
由于忙于其它事 没来看回复 感谢大家的热心帮助 我会尽快搞定
2013-1-10 22:56
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
wmic>process
2013-1-10 22:59
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这是对的..根据文件句柄进行枚举..对于OFFICE来说是可以用的..因为OFFICE在操作文档后会一直有这个文件的句柄信息..可以通过procexp.exe程序来看..

另外得看你想做什么功能了.
你可以通过HOOK CreateFileW函数来对你关心的文件保存,等你需要用的时候,再从里面找..
2013-1-11 11:28
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
其实 我只是想从运行的WINWORD.EXE中知道其打开了哪些个文档(如果存在已打开的文档的话) 并对该文档进行操作控制  zw*这样的驱动级函数到现在也没实现 能力有限啊 寒假充下电先
2013-1-15 23:20
0
雪    币: 238
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不用那么深吧。。。

用NTQuerySystemInformation
NTQueryObject 也是可以取得进程信息的。当然也包括了 所有的句柄
2013-1-18 23:56
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢 NTQuerySystemInformation
NTQueryObject我试过 不过没成功 我的问题 等考完试 把她弄出来
2013-1-19 06:23
0
游客
登录 | 注册 方可回帖
返回
//