如何从 ELF 文件中获取静态初始化全局变量的值?

how can I get the value of static initialised global variables from ELF file?

提问人:Xiaoyong Guo 提问时间:6/29/2022 最后编辑:Xiaoyong Guo 更新时间:7/1/2022 访问量:594

问:

例如,我有以下 c++ 源文件

// define global variables here
int Label = 1234;
char Hash[] = "0x11231abc";

将其编译为 *.o 文件,稍后可能会链接到可执行二进制文件。是否可以使用一些现有工具(如 readelf、objdump)从 ELF 文件中获取值?

精灵 objdump readelf

评论

0赞 Xiaoyong Guo 7/1/2022
我认为使用pythoin ELF工具可以实现这一目标

答:

3赞 Employed Russian 7/1/2022 #1

是否可以使用一些现有工具(如 readelf、objdump)从 ELF 文件中获取值?

这是否可行取决于这些变量的使用方式,它们是局部变量还是全局变量,它们是否具有地址,使用哪个编译器以及有效的优化。

如果变量是全局变量,并且代码未优化,那么 和 命令的某种组合可能会为您提供答案。readelfobjdump

一般来说,GDB 会是一个更好的工具。