是否有自动获取地址所在 ELF 部分的方法?

是否有自动获取地址所在 ELF 部分的方法?

假设我有 elf 二进制输出中某个字符串或符号的地址,strings -a并且想知道该地址位于哪个部分。

通常,我会手动objdump -h查找包含该地址的部分地址范围。然而,这既容易出错,又极其缓慢。

有更简单的方法来执行此任务吗?

答案1

如果您知道要查找的地址(作为二进制文件中的偏移量),则可以使用如下内容:

objdump -h /path/to/binary |
awk -v target=address 'BEGIN { target = strtonum("0x" target) }
                       NF > 1 {
                        if (typeof($1) == "strnum") {
                          if (strtonum("0x" $6) <= target) { section = $2 }
                        }
                       }
                       END { print section }'

替换address为十六进制地址。

可以通过更改字段 ( $6) 来调整此值以搜索虚拟地址而不是二进制偏移量。

相关内容