阅读:1811回复:7
请问在一个irp的处理里面怎样能知道irp所来自得那个进程名字啊?
截获到一个irp,可以弄到进程的id,EPROCESS,用filemon里说的方法可以知道这个进程的映像名,但是我怎么才能弄到全路径名呢??
请大家不吝赐教啊,先谢谢了 |
|
最新喜欢:![]() |
论坛版主
![]() |
沙发#
发布于:2003-12-25 16:24
这个没试过,兄弟试试这样行不:
你得到PID和其他的东西是否通过PsGetCurrentProcess或IoGetCurrentProcess得到当前进程的句柄?一个_EPROCESS的指针? 如果是,里面有一个域BYTE mageFileName 是文件名,另外一个struct _PEB *Peb;有一个ProcessParameters成员不?好像试它保存了完整路径 |
|
板凳#
发布于:2003-12-25 16:36
这个没试过,兄弟试试这样行不: 万一那个IRP是被Dispatch到一个SystemThread里去了呢?呵呵.:) 上层的驱动经常这么干,先给IRP放一队列里(比如QueueWorkItem之类的),然后在Callback里往下传,这样下层的Filter截获的IRP就... ... 抬杠哈,别见怪.:) |
|
|
论坛版主
![]() |
地板#
发布于:2003-12-25 17:15
哈哈,对了,先说个题外话,COOL_NET,你娃是哪儿的?这两天你好像也很闲啊,天天在这儿晃,这两天我也刚舒服一点儿:),有空大家多交流
我认为,他说的情况只能自己保证再自己上下文里面做上述动做 |
|
地下室#
发布于:2003-12-25 17:22
针对win2k,
PVOID p=(PVOID)PsGetCurrentProcess(); PVOID pName=PVOID((int)p+0x1fc); pName就是指向当前进程名的指针,最多16个字符,由操作系统的进程结构决定。 |
|
5楼#
发布于:2003-12-25 18:04
哈哈,对了,先说个题外话,COOL_NET,你娃是哪儿的?这两天你好像也很闲啊,天天在这儿晃,这两天我也刚舒服一点儿:),有空大家多交流 我在BJ,也咸不了几天了,听口音你是SC或CQ的?我在那里也工作生活不短的时间呢,呵呵。有空多交流吧。:):):) |
|
|
论坛版主
![]() |
6楼#
发布于:2003-12-25 19:43
嗯,目前在成都,要得,有空联系,对了,给个你的EMAIL把,我的是WXL_50685330@163.COM
|
|
7楼#
发布于:2003-12-26 13:02
谢谢wxl_50685330,cool-net和另外几位 :)
在ProcessParameters里面找到全名了,cool-net说的情况我再想想,谢谢啊 |
|