You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将/proc/pid/maps中的运行时地址映射到二进制可执行文件?

运行时指令地址与静态指令地址的映射规则

我持有一个二进制可执行文件,以及该文件启动进程对应的/proc/pid/maps文件,需要将通过gdb等调试器获取的运行时指令地址,映射为objdump、IDA等反汇编工具中对应的静态指令地址。

根据经验总结,目前有两种映射方式:

1. PIE可执行文件或共享库的映射方式

当/proc/pid/maps中出现如下格式的条目时:

xxxx-yyyy r-xp 0000000 ... path/to/mysharedlibrary.so

若运行时地址为zzzz,对应的静态地址可通过以下公式计算:

static-address = zzzz - xxxx

计算结果可通过objdump或IDA验证。

2. 非PIE或静态链接可执行文件的映射方式

当/proc/pid/maps中出现如下格式的条目时:

400000-yyyy r-xp 000000 ... path/to/executable

此时无需减去基地址,运行时地址与静态地址完全相同。

上述两种规则均来自经验总结,我想了解计算正确地址的确切规则是什么?


内容的提问来源于stack exchange,提问作者Evian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:27:14