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

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

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

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

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

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