主题:关于进程
yong311408
[专家分:2720] 发布于 2006-06-28 19:23:00
如果知道一个进程的ID
如何获得该进程程序段的内存地址及范围
回复列表 (共7个回复)
沙发
wbsun111 [专家分:320] 发布于 2006-06-29 15:55:00
WINXP--任务管理器
板凳
yong311408 [专家分:2720] 发布于 2006-06-29 20:08:00
有没有方法可以获取进程ID所对应的进程中的pcb信息
用程序可以实现吗?
3 楼
chenzep [专家分:3640] 发布于 2006-06-29 23:05:00
查一下API,应该可以的。
如果你没有API的基础,就不好说了。
4 楼
yong311408 [专家分:2720] 发布于 2006-06-29 23:20:00
直接用汇编不能解决吗?
说起来,汇编才是最基础的
C可以实现的,汇编应该可以的吧
5 楼
chenzep [专家分:3640] 发布于 2006-06-29 23:52:00
8086时代,汇编是最基础的。
到了80386时代,出现了保护模式,用户不可以直接使用硬件资源了,只能通过系统提供的API调用。所以在现代系统的角度来看,API才是最基础的。
以前我也想获得进程的信息,但是由于时间关系,没有深入~你要这个干什么?
6 楼
yong311408 [专家分:2720] 发布于 2006-06-30 19:51:00
我听有的大侠说
用汇编可以修改正在内存中运行的程序
感觉功能很强大
所以想多了解一些这方面的东西
7 楼
aboutbmp [专家分:830] 发布于 2006-07-01 13:37:00
每个进程都有自己独立的地址空间,程序中访问的地址都是虚拟地址,比如C代码中一个指针对应的地址,并不是实际的物理内存地址(实际要经过一个查表翻译的过程来找到实际的物理地址,简单的说操作系统为每个进程设置好一个表,CPU在访问某个地址时先查该表,再访问真正的物理内存地址)。这涉及CPU保护模式的知识。
因此两个进程A.exe和B.exe,A中正在访问的某个地址值0x1234对B是没有意义的。
汇编也可以调用操作系统API的。你说的问题,在windows下,可以试试查一下进程访问和调试相关的API。
我来回复