如何得到一个进程的入口地址?

chaosbird 2002-12-17 10:59:21
thx
...全文
168 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CDSoftwareWj 2002-12-17
  • 打赏
  • 举报
回复

帮你up
chaosbird 2002-12-17
  • 打赏
  • 举报
回复
进程运行的时候肯定有确切的地址的,虽然这个地址由装载器在装载的时候决定,但在装载时就决定了;
在进程运行的时候,有什么办法可以得到进程在内存中的开始位置?
和结束位置?
fangyan 2002-12-17
  • 打赏
  • 举报
回复
如果你想得到的是AddressOfEntryPoint,那么首先应该得到ImageBase,但是这个地址是由装载器在装载的时候决定的,尽管在磁盘文件里有这个地址。AddressOdEntryPoint与ImageBase相对虚拟地址(RVA)是确定的,也就是说内存中的进程入口地址是由装载器来动态决定的,磁盘文件中的这个地址并不能起到决定的作用,不过,多数情况下应该还是可以用磁盘文件中的这个地址。
fangyan 2002-12-17
  • 打赏
  • 举报
回复
内存中的映象文件和磁盘文件的格式是基本一致的,都是PE文件格式,当然,是有固定的地址,物理地址和虚拟地址之间的映射是由WINDOWS来管理的,Microsoft的开发文档里并没有提供直接管理页映射的API。
呵呵,直接访问另一进程的地址空间是不允许的哦。
我所知道的方法就是用全局HOOK或者REMOTE THREAD来完成,但是同样是没办法确定一个进程的地址在另一个进程中应该如何计算。
有兴趣的话可以留下联系方式,讨论讨论。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧