【发布时间】:2018-03-28 22:20:05
【问题描述】:
我正在尝试获取 Linux 系统实用程序的 ELF 数据(Section Header Table,SHT)。
我注意到,当编译这些程序以创建对象 (.o
) 文件时,我可以为自己的程序获取此信息。我还设法通过readelf
获得bash
的SHT,方法是输入:
readelf -l /bin/bash
但是,它不适用于某些实用程序,例如 gunzip。例如,我想输入如下内容:
readelf -S tar -czvf large_file.tar.gz large_file.dat
并获得一组执行属性,如下图所示:
有人知道如何实现吗?
提前致谢, 亚历山大。
【问题讨论】:
-
请记住,
gunzip
是 Ubuntu 17.10 中的 shell 脚本,因此readelf
将不起作用。除此之外,请始终尝试提供足够的详细信息以重现您的确切问题。在这种情况下,那就是:您的操作系统版本和 gunzip 版本是什么?在这种情况下,我不知道立即发生了什么,但尝试使用 GCC 的“strip”或调试数据选项和一个最小的 hello world。最后,如果您使用的是开源操作系统,请查看您的发行版为 GCC 提供了哪些选项来编译 gunzip 以了解发生了什么。 -
谢谢,西罗。我会记住这一点的。