ELF代表可执行文件和可链接格式,是包含机器代码的文件的文件格式。
如我的标题中所述,我使用以下代码来获取输入并将其转换为整数,以非数字字符终止。它编译得很好,但不想运行。相反
我在 ELF 二进制文件中发现了这个有用的功能——Build ID。 “它......(通常)是 ELF 映像中所有代码部分的 SHA1 哈希值。”可以使用 GNU 实用程序来读取它: $ readelf -n /bin/bas...
有没有办法让 Linux ELF 二进制文件具有可选的共享库依赖项而无需 dlopen()?
我有一个应用程序想要使用共享库(libwayland-client.so)(如果可用),但即使它不可用也仍然需要运行。 实现这一点的通常方法是使用 dl...
我有一个应用程序,我想使用 Linux 提供的 rtld-audit 接口来挂钩共享库加载过程。如果我使用 LD_AUDIT 环境变量来电话,这会非常有用...
为什么 .data.rel.ro 部分在我的可执行文件中占用如此多的空间?
我想在Linux上构建一个共享库,其中包含一个大的初始化数组,并在不同的可执行文件中使用该数组。 我希望这可以减少编译输出的大小,特别是......
我正在测试以确保我的交叉编译器正常工作。 当我编译 hello world 时,它似乎编译得很好,但是当我将 hello.cpp 更改为循环 elf 文件 1000 次的同一程序时
我正在用 Rust 编写一个编译器,现在正在尝试生成一个 elf。 我有 虚拟地址 0x400000 处的 .text 部分和文件偏移量 elf_header_size + elf_program_header_size + 3 *
为什么 GNU `ld` 使用等效源与 NASM 和 GAS `.o` 文件有不同的输出?
在受许多关于小型 ELF 可执行文件的有趣文章启发进行一些实验时,我注意到 GNU 的 ld 在输入 nasm 生成的 .o 目标文件或 w...
在我的 Linux 系统上,当 ELF 可执行文件本身无法从 gdb 访问时,gdb 也会显示调试的 ELF 可执行文件中的部分名称,因为它存在于文件系统挂载中...
为什么静态链接生成的可执行文件中会存在.got等与动态链接相关的节?
我正在学习链接,遇到一个问题。 如果我有一个源文件 main.c: int main() { 返回0; } 我用静态链接编译它: gcc -static -o a.out main.c 然后我发现...
我正在使用 stm32cubeIDE 并尝试在二进制文件末尾存储 crc 以用于更新目的。我使用此方法是因为否则调试将无法工作,我必须将 .crc 区域标记为 NOLOA...
可执行文件的ELF文件有一个程序(段)头和一个节头,可以通过readelf -a看到,下面是一个例子: 上面两张图是节标题和程序(se...
CSAPP 中的“未初始化的全局变量获得弱符号”这句话准确吗?
在计算机系统:程序员的视角(CSAPP)中,书中提到“未初始化的全局变量会得到弱符号”。经过一番实验,我发现这个描述似乎不合逻辑...
c++17 内联变量将被 gcc 编译为唯一的符号。如果使用 clang 它将是一个弱符号。 我在 Oracle Linker 上找到了符号绑定的文档,但是我没有唯一的绑定...
所以我有这个函数尝试返回 ELF 的长度。我的用途是从内存转储中提取 ELF。 从 elftools.elf.elffile 导入 ELFFile def get_elf_size(start_loc,
我在我的树莓派上编译了一个 aarch64 elf 可执行文件: $ 文件 kbgen.elf.aarch64 kbgen.elf.aarch64:ELF 64 位 LSB 可执行文件,ARM aarch64,版本 1 (SYSV),动态链接,解释器 /...
Microsoft 编译器和 GNU 编译器在输出可执行文件大小方面的差异
假设我有以下程序: #包括 int main() { printf("这是一个示例 C 程序。 ”); 返回0; } 如果我用微软编译器编译它(cl.exe /O1 sa...
是否可以覆盖动态链接可执行文件的非动态段中的符号? (例如:Linux 上 ELF 可执行文件的 .text 和 .(ro)data 段。) 我知道这是 pos...
Objcopy --remove-section 不会留下与 --add-section 之前的原始文件相同的 ELF 二进制文件
我正在尝试使用 objcopy 在我的二进制文件中嵌入 GPG 签名,以便我可以在 Linux 系统上更新时验证它。 问题是,objcopy 似乎将对 ELF 二进制文件的修改留在...
我对此非常陌生,我有 elf 文件 input.out,需要从中创建十六进制可执行文件。我正在使用 objcopy 创建 intel 十六进制格式的可执行文件,如下所示 objcopy -O ihex input.out 或...