位置无关代码的差异:x86 与 x86-64
我最近正在构建一个针对 x86-64 架构的特定共享库 (ELF),如下所示: g++ -o binary.so -shared --no-undefined ... -lfoo -lbar 失败并出现以下错误…
ELF文件格式中sh_addr是否总是等于sh_offset?
最近(是的,不再上学了)我一直在自学 ELF 文件格式。我主要关注这里的文档: http://www.skyfree.org/ linux/references/ELF_Format.pdf。 一切都很…
如何找到带有标题信息的 ELF 文件/图像的大小?
我需要找到精灵图像的大小进行一些计算。我尝试过在 Linux 上使用 readelf 实用程序,它提供了有关标题和部分的信息。我需要知道精灵的确切文件大小(…
为什么 objdump 不显示 .symtab 部分,而 readelf 却显示?
我使用 gcc 编译一个简单的程序,如果我使用 objdump 看到节头,它不会显示节 .symtab。对于同一个 a.out 文件,readelf 显示以下部分: [25] .symtab…
为什么 Linux 二进制文件的虚拟内存地址从 0x8048000 开始?
在 Ubuntu x86 系统上反汇编 ELF 二进制文件时,我不禁注意到代码(.text)部分从虚拟地址 0x8048000 开始,并且所有较低的内存地址似乎都未使用。 这…
libxml-ruby 在 x86_64 上加载失败
我们在服务器端遇到 libxml-ruby gem 问题 可能是因为它使用 x86_64 架构: $ uname -a Linux ip-10-228-171-64 2.6.21.7-2.fc8xen-ec2-v1.0 #1 SMP T…
在 Windows 中的 Eclipse 中构建 elf
我在 Windows 中的 Eclipse 中构建 Elf 文件时遇到问题。似乎每次我构建时,都会创建一个适用于 Windows 的 PE / 可移植可执行文件。我进入了 Binary …
访问ELF字符串表节头
假设以下情况: Elf_Section_Header *sectionHeaderTable //points to the start of a ELF section header table Elf_Section_Header *symtabHeader /…
为什么 elf 可执行文件的函数要加载到 x86 Linux 中对齐的地址?
我一直在研究 x86 上的 Linux elf 可执行文件,主要使用 IDA,但是 还有gdb。我注意到的一件事是函数总是被加载 在字对齐地址?有人知道其中的原因吗…
elf 加载器如何初始化全局变量
对于 C 中的全局变量,如 int aglobal = 5; 加载器什么时候将 5 转移到 aglobal 中?它如何知道将 5 放入 aglobal 中。 函数中的静态声明的情况相同。…