elf相关内容
在Mach-O 64位可执行文件和ELF 64位LSB可执行文件中,似乎存在一些外观相似的长字母数字字符串,以及其他非字母数字符号: cat /bin/bash | grep -c "AWAVAUATSH" 有181个结果, cat /usr/bin/gzip | grep -c "AWAVAUATSH" 有9个结果. 这些字符串是什么? 解决方案 有趣的问题.由
..
任何人都可以分享一些链接或书来详细说明如何从ELF文件创建流程.免费提供的大多数资料似乎都是抽象的,没有说明大多数细节,例如从程序头获取什么信息以及使用该信息在内存中存储过程映像的方式. 谢谢 解决方案 elf文件通过以下方式工作 每个段都描述了一堆共享相同特性的段,例如“加载到内存",每个段都有其权限,例如“读写"或“执行",基本上发生的是,每个段都有一些标头(phdr),该标头包含虚拟
..
我正在创建一个ELF可执行文件,我需要知道操作系统需要哪些部分才能加载和执行该文件. 详细信息: OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386 我意识到以下可能是必要的: .text .symtab .rel.text 还有其他人吗
..
如何确定32位ELF Linux二进制文件的结尾处以及附加到文件的其他数据的开头?例如,某些软件会将数据附加到文件的末尾以进行提取或执行,同时将其包含在单个二进制文件中.自解压存档就是此类文件的示例. 我正在尝试做的事情与 询问PE文件是通过PE标头结尾的吗? 请注意,在我的情况下,末尾没有页脚或其他任何数据来指定有效负载的大小.此类数据是在有效负载开始之前在ELF文件结束处指定的,但是我
..
我使用crosstool-NG用gcc 6.3.0和glibc 2.25创建了PowerPC工具链.我有以下测试程序test.c: int main() { return 0; } 我用命令编译了它: powerpc-unknown-linux-gnu-gcc -s -Os -o test test.c 最终的二进制文件是66904字节,比预期的要大得多.节标题看起来像这样:
..
是否可以在UNIX上运行COFF可执行文件或在Windows上运行ELF可执行文件?能够在Windows和UNIX上运行这两种文件类型的步骤是什么.我只是好奇. 解决方案 要真正运行可执行文件并使它们执行有用的工作,您需要担心的是API,而不仅是可执行文件的格式.在安装了WINE的Linux计算机上,您可以从命令行运行Windows .EXE文件,它们的作用与在Windows上的作用相
..
ELF表中的符号可以使用UTF8字符还是仅限于ASCII? 注意:这不是我要解决的问题,更多的是我想知道的. 解决方案 ELF字符串表使用NUL终止的字符串,因此您可以在其中存储UTF-8编码的符号名称. 也就是说,使用此类符号的工具必须能够识别Unicode才能正常工作.例如: 您的编程语言工具链是否正确地将指定的Unicode'字符'分类为字母,数字或标点符号. 是
..
手册页的意思是: st_info This member specifies the symbol's type and binding attributes: STT_NOTYPE The symbol's type is not defined. STT_OBJECT The s
..
我正在编写一个模仿elfdump -ecps 的程序 当前它正确地打印出了elf头,程序头和节头,但是我卡在了符号表的最后几部分. 所需的输出格式为: Symbol Table Section: .dynsym index value size type bind oth ver shndx name [0] 0x000000
..
是否可以更改现有x86-64二进制引用和/或调用一个特定函数的方式.具体来说,是否可以更改二进制文件,以使该函数通常在执行该操作时不发生任何变化(类似于nop)? 我意识到有很强大的专用工具(例如反编译器/反汇编器)可以执行此类任务,但是我真正想知道的是,可执行文件格式是否足以供人们理解?这种东西(至少在小程序上)只有vim和十六进制编辑器. 某些可执行文件格式(例如mach-o,el
..
我的C ++编译器创建包含动态库的"dylib"文件. .dylib和.so文件有什么区别? Mach-O格式的文件和ELF格式的文件有什么区别?我必须构建文件以供以后在iOS(仅限静态库/Mach-O)和Android(ELF)下使用. 感谢! 解决方案 我发现: 严格的Mach-O功能令很多人惊讶 共享库和动态可加载模块之间的区别. 在ELF系统上,两者是相同的;可以
..
我希望你们能帮助我理解重定位条目和ELF部分数据之间的关系,以及所有这些如何处理和生成. 我有一个古老的不受支持的工具,该工具需要一个ELF文件和一个相关的PLF文件(部分链接文件,在构建过程的早期生成),并根据该文件构建一个可自定义的可重定位文件,该文件可以在平台(PPC)上使用紧密内存限制.除包含大约一小段我们要在启动后卸载的初始化代码外,此方法工作正常.因此,我们将所有init代码放入
..
我想运送和归档二进制文件(带有库的可执行文件),这些二进制文件应尽可能地与Linux发行版本向后和向前兼容,并且整个软件包都可重定位. 据我了解,像libc这样的系统库也需要交付,因为在libc的其他版本下,可执行文件将崩溃.同时libc似乎与ld-linux耦合 (例如,在Debian测试中编译的二进制文件已经无法在Ubuntu 18.04 LTS上运行),因此我也需要打包ld-linux.
..
我知道符号的名称在shstrtab中. 但是我不知道如何抓住他们. 我应该将shstrab转换为Elf64_Sym以便使用st_name吗? Elf64_Shdr *shdr = (Elf64_Shdr *) (data + elf->e_shoff); Elf64_Shdr *symtab; Elf64_Shdr *shstrtab; Elf64_Shdr
..
是否可以在运行时以C(在Linux上为elf格式)动态修改符号表? 我的最终目标是: 在某些函数中说foo,我想将malloc函数覆盖到我的自定义处理程序my_malloc中.但是在foo之外,任何malloc仍应像在glibc中一样调用malloc. 注意:这与LD_PRELOAD不同,后者将在整个程序执行期间覆盖malloc. 解决方案 是否可以在运行时以C(在L
..
#include #include #include #include #include #include #include #include #include #include
..
有一个共享的库elf文件,我用readelf -l查看程序头,输出为: Elf file type is DYN (Shared object file) Entry point 0x0 There are 11 program headers, starting at offset 52 Program Headers: Type Offset VirtAdd
..
-rdynamic(或在链接器级别的--export-dynamic)到底是做什么的,它与-fvisibility*标志或可见性pragma s和__attribute__ s定义的符号可见性有什么关系? > 对于--export-dynamic, ld(1)提到: ... 如果使用"dlopen"加载动态对象,则需要回溯 到程序定义的符号,而不是其他动态 对象,那么您可能需要 在链接程序
..
当涉及到ELF时,两种随附的调试格式在其他格式中极为流行,即 STAB和DWARF .我想要一种简单的方法来确定给定的二进制文件是否包含一种形式或另一种形式的调试信息,最好不必检查节名称(.stab等). 有什么好的方法可以做到这一点? 解决方案 当涉及到ELF时,两种伴随的调试格式非常流行 在过去10年中,ELF平台上的任何当前编译器均未默认使用STABS格式.绝对不是“
..
当使用GNU GAS手动编写程序集时,在一个函数中,我要设置一个标签,以便: GDB不会将该标签视为函数名称 我可以使用b mylabel破坏标签 在例如如果我将普通标签mylabel定义为: main.S .text .global _start _start: /* exit */ mov $60, %rax mylabel: mov $0,
..