确定 Linux 二进制文件的直接共享对象依赖性?
如何轻松找出 ELF 格式的 Linux 二进制文件的直接共享对象依赖项? 我知道 ldd 工具,但它似乎输出二进制文件的所有依赖项,包括二进制文件所依赖的任…
为什么编译器版本出现在我的 ELF 可执行文件中?
我最近在 Debian Linux 下使用 gcc 编译了一个简单的 hello world C 程序: gcc -mtune=native -march=native -m32 -s -Wunused -O2 -o hello hello.c…
elf 文件中节的虚拟地址和物理地址
objdump 如何计算 elf 节的物理地址(LMA)?据我所知,elf 节头仅包含节 [1] 的虚拟地址(VMA)。 通常,VMA 和 LMA 是相同的。但对于初始化数据段(…
共享对象中的文本重定位?
gcc 编译以下代码(名为 dc 的文件) int var=10; void fun( void ) { var++; int a=var; } 当我使用 gcc -c -o d.o -fPIC d.c .text 部分有一个名为 …
从 ELF 目标文件转储 C 结构大小
如何使用调试符号从 ELF 目标文件中提取所有 C 结构的大小? 可以使用“print sizeof(some_struct)”从 GDB 获取各个结构大小,但我需要的是获取所有…
当我想要共享库时,GCC 输出可执行 ELF 文件
我正在尝试使用 i686-elf 交叉编译器在 Cygwin 中构建共享库。代码非常简单: int add(int a, int b) { return a + b; } void _init() { add(3, 4); }…
如何从 ELF 二进制文件中删除程序头
我想编写一个实用程序来从 ELF 二进制文件中删除程序头。例如,当我运行 readelf -l /my/elf 时,我会得到所有程序头的列表:PHDR INTERP ... GNU_STA…
使用 objdump/readelf 和 extern 变量
我有库 ab.so 由 2 个源文件 am、ah 和 bm、bh 在 am 中,我定义了一个变量 foo,在 bm 中,我声明了它 extern。 现在使用 readelf/objdump 我想知道…
将附加代码合并到可执行文件中 (arm-linux)
我正在尝试将一些额外的日志记录代码合并到静态链接(android arm linux)可执行文件中。 (普通的跟踪方法似乎不起作用,因为它是一个守护进程,在做…
使用 rtld / 免费加载器/链接器加载加密共享对象
我正在做一些加密/软件保护方面的研究。我想链接动态加密的共享对象(Linux,x86架构,ELF32/64格式) 要保护的代码包含(加密的,没有有效的ELF)在…
访问附加到 ELF 二进制文件的数据
我有一个静态 ELF 二进制文件,它从 zip 文件中读取数据。为了简化分发,我想将 zipfile 附加到二进制文件中,如下所示: $ cat mydata.zip >> mybina…