如何获取WIN7程序的基地址

fbiboss 2014-05-01 01:40:40
就是起始地址,在XP中一直是00400000,到了WIN7这个地址就不固定了,用Module32First可以枚举出来,但是是在程序运行之后才可以读出来,我想在CREATEPROCESS启动它,在它运行主线程之前就得到,发现一直是0,有什么办法像OD那样的,直接停在程序的基址吗
...全文
393 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还有一点,DebugActiveProcessStop 是xp以上系统新加入的函数,win2000是没有的。win2000上只要调试了就无法分离
  • 打赏
  • 举报
回复
另外需要注意的是,以调试方式运行了进程之后,如果父进程退出,子进程会被结束。如果需要不结束子进程,可以调用DebugActiveProcessStop 来detach。
  • 打赏
  • 举报
回复
调用CreateProcess的时候传入DEBUG_ONLY_THIS_PROCESS标识,启动调试模式,等待调试事件例如CREATE_PROCESS_DEBUG_EVENT,可以或得进程启动时的信息。
  • 打赏
  • 举报
回复
如果把重定位信息剥离的话,加载起始地址还可以随机吗?
蒋晟 2014-05-06
  • 打赏
  • 举报
回复
抓CREATE_PROCESS_DEBUG_EVENT 吧
fbiboss 2014-05-04
  • 打赏
  • 举报
回复
有没有办法可以在createprocess之后关闭这个程序的ASLR
ni_mamagea 2014-05-03
  • 打赏
  • 举报
回复
这个问题百度一下应该有
fbiboss 2014-05-03
  • 打赏
  • 举报
回复
我知道随机的啊,我就是想获取这个随机地址,在它运行之前
蒋晟 2014-05-01
  • 打赏
  • 举报
回复
地址是随机的,参考ASLR

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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