问题标签 [readelf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2384 浏览

linux - linux ELF部分和头部访问权限

据我了解,ELF 标头用于程序执行视图。部分用于链接器的视图。

但是linux命令'readelf'显示每个部分(AWX)和每个标题(RWE)都有内存访问权限标志。

这本书说的不止一个部分被合并到一个标题中。如果链接器将多个部分合并到单个标题中并且每个部分具有不同的访问权限标志会发生什么?

以及 /proc/[pid]/maps 中的访问权限之间的关系是什么,例如

和部分和标题中的访问权限?

这些权限(in /proc/[pid]/maps)是如何确定的?

0 投票
1 回答
991 浏览

c++ - 用于 Visual Studio C++ ABI 和 VS 编译对象的 readelf 实用程序?

在使用 Visual Studio 编译 C++ 源代码和readelf调查,和.objdumplibobjdll

我知道 MinGW 提供了此工具的移植,但我正在寻找对 Microsoft C++ ABI 有官方支持的东西。

如果这很重要,我正在使用 Visual Studio 2012。

谢谢。

0 投票
1 回答
1854 浏览

linux - ELF 程序头文件:MemSiz 与 FileSiz

readelf -l /bin/bash给了我这个:

为什么某些细分市场MemSiz不等于?应该如何处理包含但不包含的内存区域?FileSizLOADMemSizFileSiz

0 投票
1 回答
6583 浏览

arm - objdump 不会显示我的 ELF 部分

我有一个发射 ELF 的工具,据我所知,它符合规范。Readelf 输出看起来不错,但 objdump 拒绝反汇编任何东西。

我已将输入简化为单个全局变量,并使用“int main(void) { return 0;}”来帮助调试 - 小部分的大小是正确的。

特别是,objdump 似乎无法找到sections 表:

我还有另一个 ELF,由完全相同的对象构建,仅使用常规工具链生成:

即使我从“已知良好”的 kernel.elf 中删除了 .comment 和 .ARM.attributes 部分(以防 objdump 需要它们),它仍然很高兴地列出了那里的部分,但不在我工具的 davidm.elf 中。

我已经用 readelf -x 确认了这两个部分的内容是相同的。

我唯一能想到的是 ELF 文件布局不同并且打破了对 BFD 的一些期望,这可以解释为什么 readelf(和我的工具)可以很好地处理它但 objdump 有问题。

完整的自述:

磁盘布局的激进打包是否会造成麻烦?我是否违反了 BFD 期望的某些字节流对齐限制,记录在案或其他方面?

最后 - 这个文件不打算被映射到地址空间,加载程序会将段数据 memcpy 到所需的位置,因此不需要播放对 mmap 友好的文件对齐技巧。保持 ELF 小更重要。

干杯,大卫M

编辑:我被要求上传文件,和/或提供'objdump -x'。所以我两个都做了: davidm.elf

0 投票
2 回答
1163 浏览

c++ - 生成从可执行文件调用的 c++ 方法列表

有没有办法生成为可执行文件调用的 C++ 方法列表?我有一个动态库,想看看从可执行文件中调用了多少方法。我可以看到 C++ 方法正在通过 dumpbin 或 readelf 导出。但是,当我在调用动态库的可执行文件上运行这些工具时,只列出了 C 方法和一个 C++ 方法。C++ 导入有什么特别之处吗?

0 投票
1 回答
3900 浏览

elf - 如何从已编译的 ELF 可执行文件(无反汇编)中提取一些函数?

我正在处理一个大型可执行文件,我没有源代码(长篇大论)。

我想从中提取几个函数的二进制代码——并尝试从我自己的程序中调用它们。如果重要的话,我正在寻找的函数都是从同一个源文件(在 Linux 上使用 gcc)编译的。

我可以使用 objdump 查看函数的二进制代码。有什么方法可以说服该工具转储函数的二进制代码——没有其他任何东西,也不需要反汇编?

基本上,如果定义函数的 C 文件被称为 foo.c,我想要获取 foo.o(我实际上更喜欢 foo.So,但这不会存在于可执行文件中)。可以用 objdump、readelf 或类似的东西来完成吗?

如果重要的话,这些功能是独立的。

谢谢!

0 投票
4 回答
16850 浏览

android - ldd 在 android 上等效

我有一个 libTest.so 无法在某些设备上加载。logcat 绝对没用。使用arm-linux-androideabi-readelf.exe -d libTest.so我能够看到 libTest.so 需要的所有必需库。我将它们全部拉入本地 PC 上的同一个文件夹中。

如何找出缺少哪些符号以及在哪个库中?我只有 NDK 的标准工具集(nm、readelf、objdump 等)。我可以使用哪个工具以及如何使用它来解析我的 libTest.so 和所有依赖库,并告诉我哪个符号阻止我的库加载到目标设备上。

0 投票
1 回答
2830 浏览

elf - readelf error: not an elf file, wrong magic bytes at the start

I am trying to learn and use Elfreader by compiling a simple hello world program to a elf file as-

The file compiles correctly and runs perfect. But when I try to run ReadElf on it by

it returns

What do you think I am doing wrong, or is there a problem with my linker script? Let me know if you need any additional info from me.

0 投票
1 回答
75 浏览

c - 在运行时扫描共享对象包含

我正在开发一个依赖共享库作为插件的 C 程序(在 Linux 下)。

我为每个插件提供了我的静态库中的几个功能。为了改变我的程序的工作流程,我需要在运行时知道插件是否会调用上述库中包含的某个函数。

我需要的是C等价物:

是否有可能利用<dlfcn.h>图书馆来实现这一目标?不用说,我更喜欢不在调用中执行上面的 oneliner system()

谢谢

0 投票
0 回答
346 浏览

readelf - 从 ELF 文件中提取信息

我使用的是 Windows XP 操作系统。

我无法理解 readelf 显示结构和联合的逻辑。

有什么方法可以使用 readelf 从 ELF 文件中提取所有结构和联合?