首页
社区
课程
招聘
有没有方法可以获取运行中程序的运行地址
发表于: 2010-7-28 10:55 3270

有没有方法可以获取运行中程序的运行地址

2010-7-28 10:55
3270
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 68
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你要知道这个来做什么呢?
2010-7-28 11:13
0
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
读PE头的结构应该没问题的
2010-7-28 12:12
0
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
先获得程序的地址,然后读取文件获得。
2010-7-28 14:57
0
雪    币: 246
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
试试ToolHelp API 。使用方法就是先用 CreateToolhelp32Snapshot 将当前系统的进程、线程、DLL、堆的信息保存到一个缓冲区,这就是一个系统快照。如果你只是对进程信息感兴趣,那么只要包含 TH32CS_SNAPPROCESS 标志即可。

  然后调用一次 Process32First 函数,从快照中获取第一个进程,然后重复调用 Process32Next,直到函数返回 FALSE 为止。这样将遍历快照中进程列表。这两个函数都带两个参数,它们分别是快照句柄和一个 PROCESSENTRY32 结构。调用完 Process32First 或 Process32Next 之后,PROCESSENTRY32 中将包含系统中某个进程的关键信息。其中进程 ID 就存储在此结构的 th32ProcessID。此 ID 传给 OpenProcess API 可以获得该进程的句柄。对应的可执行文件名及其存放路径存放在 szExeFile 结构成员中。在该结构中还可以找到其它一些有用的信息。
祥见:http://group.gimoo.net/review/72659 (获取windows中所有正在运行的应用程序信息)

参考:
    1、用VC获取其它运行中程序的命令行参数:(好像WinMain()中的第一个参数就是实例句柄)
    http://blog.csdn.net/wonsoft/archive/2008/10/17/3091550.aspx
    2、直接运行内存中的程序
    http://www.cppblog.com/mybios/archive/2009/11/08/15452.html
2010-7-28 18:47
0
雪    币: 341
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
路过
2010-7-29 08:27
0
游客
登录 | 注册 方可回帖
返回
//