64位进程地址空间的问题

csh20140320 2015-08-10 03:34:11
拜托各位大神,希望能答复我下边几个疑问?
1, 64位程序的进程地址空间多大?
2,假设有一个64位程序在运行,我能通过注入的方式获取他的起始地址吗,就是像
unsigned long address=(unsigned long)main;
一样,我又如何获取他的结束地址?
3,该程序运行中的输入参数在他的地址空间里能找到吗?

其实总结就是,我想获取一个64位程序运行时输入的参数,用注入的办法在某一时刻把内存里的东西全都写到文件里可以吗?
谢谢各位大神。
...全文
560 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
csh20140320 2015-09-17
  • 打赏
  • 举报
回复
非常感谢各位
赵4老师 2015-08-12
  • 打赏
  • 举报
回复
获取一个程序运行时输入的参数,微软有现成的命令行工具。
许文君 2015-08-12
  • 打赏
  • 举报
回复
1.考虑64位进程空间大小我觉得没什么意义。 2.只要你能注入,在自己进程内怎么搞都行。获取main函数参数方法4L已经给出,获取其他函数可以hook知道其起始地址,只要知道这个函数参数个数、大小,参数如果是类会繁琐一些。至于结束地址是指return?你起始地址改了完全可以自己去return,当然一般系统api不建议这么搞。 3与2同一个问题
Saleayas 2015-08-11
  • 打赏
  • 举报
回复
如果你已经注入他的进程,那么直接使用 API 函数,GetCommandLine 获取运行参数。 如果没有,获取进程的 NtCurrentPeb() 中的 ProcessParameters->CommandLine.
csh20140320 2015-08-10
  • 打赏
  • 举报
回复
大神何在?跪求大神。
csh20140320 2015-08-10
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
1. 2的64次方。非常大
拜托,还有其他的呢
oyljerry 2015-08-10
  • 打赏
  • 举报
回复
1. 2的64次方。非常大

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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