ELF代表可执行文件和可链接格式,是包含机器代码的文件的文件格式。
收到错误:bash:(程序):无法执行二进制文件:Exec 格式错误,在 32 位和 64 位 Windows 上
有一个为语言研究开发的程序(http://people.csail.mit.edu/mcollins/code.html)。当我尝试在 Windows 上使用 Git bash 终端运行解析器时,出现错误: bash:不能
file(1) 实用程序如何区分 ELF 共享对象和 ELF 可执行文件?
问题是,如果你查看 ELF 头文件,ELF 共享库和普通可执行文件根本没有区别。在我的 Linux 机器(Debian 11.4)上,甚至 ELF 标头的 e_type 字段也设置为共享
如何在 ELF 64 位 LSB 可执行文件、x86-64、版本 1 (GNU/Linux)、静态链接、无节头中显示符号
得到一个文件,我不知道如何列出其符号,文件命令说: ]# 文件 ELF 64 位 LSB 可执行文件,x86-64,版本 1 (GNU/Linux),静态链接,无节头 ...
如果动态链接失败,我会收到此错误: / # /经理 /bin/sh: /manager: 未找到 对于普通用户来说,这非常令人困惑,因为 /manager 存在。 现在,经过几个小时的搜索,我发现...
目标:给定一段机器代码,其中包含 RISC-V 扩展指令,我想将其包装为函数并创建一个 .o 目标文件。 该函数类似于 void foo(),没有
我有一个C源文件temp1.c 无效 foo(无效){} 在我的 AMD64 Archlinux 环境中,我使用命令 gcc -o test1.so -shared test1.c 编译它,并生成共享库 test1.so。然后我就倾倒...
我正在探索按照 https://github.com/libhugetlbfs/libhugetlbfs/blob/master/HOWTO 中的指南使用大页支持文本和数据段的可能性。 我已重新链接该应用程序...
2 个重复符号。如何告诉链接器选择一个而不是另一个? [已关闭]
我有2个库(xxx.a,yyy.a),都定义了一个符号:SYMBOL_X。 当链接它们时,链接器会抱怨符号重新定义。 ld:错误:重复符号:xxx.a(xxx.o): yyy.a(yyy.o): SY...
无法执行二进制文件:在 WSL 环境中编译的二进制文件出现 Exec 格式错误
我最近开始研究WSL环境。 我在 WSL 环境中编译了一个程序,其类型为“ELF 64 位 LSB 共享对象”,但是当我尝试在同一个环境中运行它时
.eh_frame FDE - 在哪里可以找到/解析字段“初始位置”/地址范围?
当阅读 DWARF 标准中的 .eh_frame 和 .debug_frame 等部分时,它说在帧描述条目 (FDE) 中有一个名为: 地址范围(目标地址) ...
我想编写一段代码来存储原始 .elf 文件中的符号表和字符串表。我的代码实现了这一点,但缺少地址和名称: #包括 #包括...
我已经搜索并尝试了很多东西有一段时间了。 设置: Kali Linux 作为虚拟机,在 MAC M2 上使用 UTM uname -a Linux kali 6.1.0-kali9-arm64 #1 SMP Debian 6.1.27-1kali1 (202...
我正在写一个ELF加载器并研究ELF格式。我有一个简单的 hello world 二进制文件,是在 Fedora 38 中使用 Clang 16 创建的,它可以工作,并且我没有使用任何特定选项进行编译\链接 (
int v0[6]; // [esp+1h] [ebp-37h] BYREF 字符 v1[23]; // [esp+19h] [ebp-1Fh] BYREF qmemcpy(v0, "VMPZB^I[f)*+.){*~yyx", 20); v0[5] = 2133096749; strcpy(v1, "%-){$y-y+-.x)~y)*`&...
为什么我的第一条asm指令位于0x8049000而不是0x8048000?
所以我有一个NASM程序,在32位模式下用-g编译。 编译命令为: nasm -f elf -g -dOS_LINUX bst.asm nasm -f elf -g -dOS_LINUX ioargs.asm ld -m elf_i386 bst.o ioargs.o -o bst ...
我正在编写 C 代码来读取 ELF 文件的前 4 个字节并将其与 0x7f 进行比较以查看我是否得到匹配项但它似乎不起作用。我究竟做错了什么? #include "main.h" /...
我有一个场景,我不想为我的用户提供一个实用程序来创建一个压缩的自解压可执行文件(类似于 UPX,但具有其他属性)。 目前这是通过压缩...
为什么静态 ELF 的映射可执行部分未在 /proc/<pid>/pagemap 中标记为文件映射?
我有一个 gdb 实用程序,它检查虚拟地址的 PFN(通过 /proc//pagemap)并检查所述 PFN 的标志(通过 /proc/kpagecount 和 /proc/kpageflags)。 我已经编写并编译了一个
我正在尝试使用 dladdr。它正确定位了库,但未找到函数名称。我可以调用 objdump,做一些数学运算,然后获取我传递给 dladdr 的函数的地址。如果
ELF phdr:将来自多个可执行文件范围的内存页拼凑在一起
我正在修补(静态链接)ELF 可执行文件。 我想从二进制文件的多个不同部分在虚拟地址空间中创建页面。 这是一个简单案例的可视化...