如何获取当前进程在内存中的起始地址?
各位,如何获取当前进程在内存中的起始地址?我在看ELF格式,想试着修改一下当前进程的一些信息,但是需要知道当前进程的虚拟起始地址,找了一下没有找到相关的资料。。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
各位,如何获取当前进程在内存中的起始地址?我在看ELF格式,想试着修改一下当前进程的一些信息,但是需要知道当前进程的虚拟起始地址,找了一下没有找到相关的资料。。。。。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
时隔几年 我也有这个需求了 楼主你解决了吗?
回复 2# socay2
我一般是这样找的:
readelf -h file能看到type。
当type为EXEC时,
readelf -l file能看到程序头,用第一段的虚拟地址减去Program Headers的偏移应当就是加载地址。
回复 3# 井蛙夏虫
readelf 这个命令好
得好好研究下它查询出来的一些信息,不是很理解
复制代码
复制代码
回复 4# socay2
复制代码上面两句都可以看出这个文件是可执行文件
复制代码可以看出偏移为52字节
复制代码可以看出该段的虚拟地址为0x08048034。
两种相减就得到程序加载地址为0x08048000
提供一个自己用过的方案。
用命令 objdump xxx.doc a.out把编译的东西拿出来直接就能看。具体命令格式你可以搜一搜。
继续学习 谢谢楼上的两位兄台
做csapp拆弹实验时候用过。。。