如果我理解正确,ELF文件中的.bss部分用于为零初始化的变量分配空间。我们的工具链生成ELF文件,因此我的问题是:是否实际上需要将所有这些零保存在.bss部分中?当我分配一个全局10兆字节的数组时,ELF文件中会产生10兆字节的零,似乎这是一种非常浪费空间的方式。我在哪里看错了呢?
我知道在典型的ELF二进制文件中,函数通过过程链接表(PLT)被调用。函数的PLT条目通常包含一个跳转到全局偏移表(GOT)条目的指令。此条目将首先引用一些代码将实际函数地址加载到GOT中,并在第一次调用后包含实际函数地址(延迟绑定)。 确切地说,在进行延迟绑定之前,GOT条目指向PLT中的...
我希望尽可能地减少文件大小 - 在Linux上: 一个ELF文件。我只需要里面运行所需的内容。 我尝试使用strip命令:strip --strip-all elf 但是它似乎没有做好: nm 仍然显示很多内容,而且二进制文件仍然很大。我该怎么做?
我尝试过以下方法,但生成的文件仍然是ELF文件而不是纯粹的节内容。$ objcopy --only-section=<name> <infile> <outfile> 我只想获取该部分的内容。有没有工具可以做到这一点?有什么建议吗?
我有一个.a文件,想要获取它的架构信息。运行file myFile.a命令会返回file.a: current ar archive,如何获取更多关于该文件包含哪种架构的信息?
在 Mach-O 64 位可执行文件和 ELF 64 位 LSB 可执行文件中,似乎存在一些长的类似字母数字串,它们与其他非字母数字符号一起出现:cat /bin/bash | grep -c "AWAVAUATSH" 有181个结果,以及cat /usr/bin/gzip | grep -c...
在Ubuntu x86系统上反汇编ELF二进制文件时,我注意到代码(.text)部分从虚拟地址0x8048000开始,所有较低的内存地址似乎都未使用。这似乎是相当浪费的,而Google上找到的都是涉及STACK_TOP的民间传说或者防止空指针解引用的保护。后一种情况看起来可以通过使用单个页面而...
来自我的书: .bss: 未初始化的全局C变量 COMMON: 未分配的未初始化数据对象 我必须说,我并没有看到明显的区别。我甚至不太理解一个未初始化、未分配的数据对象是什么...似乎什么都不是。我使用GNU的readelf工具尝试查看一些简单的C代码,但找不到一个COMMO...