vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
阅读:1509回复:10

有没有办法在驱动中从上层传入的模块句柄中取出其模块名?

楼主#
更多 发布于:2003-07-25 12:53
我通过deviceiocontrol传入一个exe模块句柄,在驱动中有没有办法得到其模块名,如\"c:\\xxx\\123.exe\"?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-07-25 13:20
没有收到我的信吗?
luowei74
驱动小牛
驱动小牛
  • 注册日期2003-07-21
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-28 12:12
我也想知道。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-28 19:08
我通过deviceiocontrol传入一个exe模块句柄,在驱动中有没有办法得到其模块名,如\"c:\\xxx\\123.exe\"?


路径名系统是在用户态保存,你可以参考专栏文章中的“如何在驱动程序中得到当前进程的完整路径和进程名”就行了。

至于得到PEB,先得EPROCESS,即引用一下句柄

[编辑 -  7/28/03 by  pjf]
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-28 19:46
朱艳辉的方法在XP上完全不行(我师弟测试中发现)。这带来的平台的差异,我现在由想到一种方法,我去试验一个。
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-28 21:48
朱艳辉的方法在XP上完全不行(我师弟测试中发现)。这带来的平台的差异,我现在由想到一种方法,我去试验一个。


呵呵,这并不是方法不行,只是个别数据需修改,PEB中一样有要的东西。本来未文档化东西随系统变动做少部分修改是正常的嘛。
luowei74
驱动小牛
驱动小牛
  • 注册日期2003-07-21
  • 最后登录2007-04-16
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-29 11:00
这种方法应该是可以的,只是和平台相关。
不过一般ServicePack不会改变这些结构,只要处理NT/2000/XP/2003四个平台就可以了。
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-29 15:52
方法不行,看来得想想办法。
else
驱动小牛
驱动小牛
  • 注册日期2002-10-21
  • 最后登录2004-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-30 10:10
朱艳辉的方法在XP上完全不行(我师弟测试中发现)。这带来的平台的差异,我现在由想到一种方法,我去试验一个。


他那种方法不是不行,而是在我们得到创建进程通知的时候Windows还没有把进程全路径给填冲到那个结构里面。要迟一些时候才可以得到。

还有,在一个进程关闭通知时,我调用PsLookupProcessByProcessId((ULONG)hProcessId, &EProcess);XP下一切正常,在2000下调用都失败了,不知道什么原因
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-30 11:33
to 师弟:PsLookupProcessByProcessId可能失败,所以要判断,不然就会bug check.有了判断就不会有问题了。
else
驱动小牛
驱动小牛
  • 注册日期2002-10-21
  • 最后登录2004-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-30 12:40
我可是每次在2000下都会失败,xp下一点问题都没有
游客

返回顶部