sharkmouse
禁止发言
禁止发言
  • 注册日期2003-05-05
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1355分
  • 威望7163点
  • 贡献值1点
  • 好评度24点
  • 原创分0分
  • 专家分0分
阅读:2563回复:7

怎样通过进程ID获取进程的全路径(WIN2K及以上)?

楼主#
更多 发布于:2007-03-07 21:58
用户被禁言,该主题自动屏蔽!
ks12345
驱动小牛
驱动小牛
  • 注册日期2006-09-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望223点
  • 贡献值0点
  • 好评度189点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-08 10:29
zwopenprocess
ObReferenceObjectByHandle
ObQueryNameString
Thinking
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
板凳#
发布于:2007-03-08 12:31
不用把
没有战争就没有进步 X3工作组 为您提供最好的军火
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-03-08 12:32
貌似可以通过SectionObject获得~
FileObject很麻烦
没有战争就没有进步 X3工作组 为您提供最好的军火
Sucsor
驱动牛犊
驱动牛犊
  • 注册日期2005-02-05
  • 最后登录2007-03-27
  • 粉丝0
  • 关注0
  • 积分253分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2007-03-08 12:35
这个问题快被问烂了.如果在进程上下文,可以通过PEB(要让其可访问)获取.
如果不在上下文,想得到全路径,可以通过与Section相关的对象(网上有文)来获取全路径.
应该办法挺多的,统一的办法好像没有吧.
各种情况需要个别处理.
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-03-08 14:10
无论是PEB还是SECTION->FILEOBJECT,对各个OS都得硬编码,麻烦的很.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-14 08:19
引用第5楼wowocock2007-03-08 16:10发表的“”:
无论是PEB还是SECTION->FILEOBJECT,对各个OS都得硬编码,麻烦的很.


我试过2K/2kSP4/XP/XPSP1/XPSP2/2K3SP1/Vista32,都是一样的。其他的没有试过。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
Yanky
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2021-09-08
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望95点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2007-03-15 09:44
__try  
{  
      PWSTR pwProcessPath = * ( PWSTR *) 0x2003c;  
      DbgPrint( "Current Process Path : %S", pwProcessPath );
}
__except( EXCEPTION_EXECTION_HANDLER ) ERb0OA  
{
      DbgPrint( "except! system run time!" );  
}

在passive_leave上,2k到2k3好像都没问题 ,不用考虑硬编码。。。
游客

返回顶部