问题标签 [elf]

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 回答
3292 浏览

elf - 如何动态加载可重定位的 ELF 可执行文件?

我试图为 ARM 平台编写 elf 可执行加载程序。我在这里有一些查询

1)如何生成可重定位或位置无关的 ELF 可执行文件(编译器和链接器选项是什么) 2)如何加载上面生成的 ELF 可执行文件。

作为一个开始,我做了一些工作,它工作正常。我为 RO_Base 使用固定地址,并且在构建时不拆分段(不使用任何 --split 选项),因此我得到了一个连续的代码、数据、bss 部分。在此之后,我将精灵加载到与 RO_Base 相同的地址并将代码作为新线程执行。这工作正常。我还没有做任何搬迁等...

现在我想通过生成可重定位的 ELF 并将加载器修改为适当的更改来使其动态并能够加载到任何地址。请帮助我使它工作。

谢谢,

0 投票
1 回答
3327 浏览

linux - ARM linux中的ELF怪事和动态链接

我想更好地理解 ARM elf 二进制文件中的某些内容。

我需要弄清楚这一点,让我的自制汇编器为 gp2x f200 输出 ELF 可执行文件。所以我开始用 open2x 交叉编译工具链编译这个程序:

否则看起来还不错,与 x86 相比没有什么特别之处。在 ELF 标头中,使用了 Flags 字段!我找到了一些 ARM elf 规格,但没有提到为什么需要这些规格。

现在,其他结构看起来与 x86 上的结构没有太大区别。它实际上看起来非常熟悉!甚至重定位的类型也很熟悉(R_386_JUMP_SLOT 与 R_ARM_JUMP_SLOT)。虽然这里开始变得很奇怪。

如果您查看 Sym.Value,它指向这个 PLT。问题是我不明白这应该如何工作。R_ARM_JUMP_SLOT 是什么造成的?为什么我的 PLT 包含这些奇怪的指令,我的动态链接器如何处理它们?

该程序正在加载到 0x8000 所以我有点理解那部分。除了我不明白如果我用 -fPIC -shared 编译它怎么会是一样的。

那么.. 动态链接在 ARM 下如何工作?

0 投票
2 回答
9114 浏览

linux - a.out 替换为 ELF 文件格式?

我有几个问题:

  • 为什么被a.out替换了ELF
  • 导致 ELF 文件格式兴起的 a.out 格式的主要缺陷是什么?
  • 早期的核心转储基于 a.out,但现在它们基于 ELF。ELF提供的各种优势是什么?
0 投票
2 回答
1517 浏览

linker - “本地链接器符号”和“本地程序变量”有什么区别?

我想知道“本地链接器符号”和“本地程序变量”之间的区别?

我正在读一本书,里面有这个:

替代文字 http://img682.imageshack.us/img682/9816/symbols.jpg

每个是什么意思?有什么例子吗?

0 投票
5 回答
57463 浏览

gcc - How to retrieve the GCC version used to compile a given ELF executable?

I'd like to retrieve the GCC version used to compile a given executable. I tried readelf but didn't get the information. Any thoughts?

0 投票
1 回答
1592 浏览

linker - 什么是二进制格式的“对齐”字段?为什么需要它?

ELF文件格式中,我们在aka中有一个Alignment字段。Segment Header TableProgram Header Table

在 Windows PE 文件格式的情况下,他们将其提升到下一个级别,Section 有两个对齐值,一个在磁盘文件中,另一个在内存中。PE 文件头指定了这两个值。

我对这种对齐方式一无所知。我们需要它做什么?如何以及在哪里使用它?同样,我不知道二进制文件格式上下文中的对齐是什么,但我们为什么需要它?

0 投票
5 回答
117587 浏览

arm - ELF 文件和 bin 文件有什么区别?

编译器生成的最终图像包含bin文件和扩展加载器格式的ELf文件,两者有什么区别,尤其是ELF文件的实用性。

0 投票
3 回答
13223 浏览

linux - 如何在Linux中将PE(Portable Executable)格式转换为ELF

将 PE 二进制文件转换为 ELF 二进制文件的最佳工具是什么?

以下是这个问题的简要动机:

  1. 假设我有一个简单的 C 程序。
  2. 我使用 gcc for linux 编译它(这给出了 ELF),并使用 'i586-mingw32msvc-gcc' for Windows(这给出了一个 PE 二进制文件)。
  3. 我想分析这两个二进制文件的相似之处,使用 Bitblaze 的静态分析工具 - vine( http://bitblaze.cs.berkeley.edu/vine.html )
  4. 现在 vine 对 PE 二进制文件没有很好的支持,所以我想转换 PE->ELF,然后继续我的比较/分析。

由于所有分析都必须在 Linux 上运行,我更喜欢在 Linux 上运行的实用程序/工具。

谢谢

0 投票
4 回答
31386 浏览

c++ - ELF:链接:为什么我在 .so 文件中得到未定义的引用

我正在尝试针对 wxWidgets 构建程序,但出现链接器错误。我想真正理解它的含义。错误是:

我不明白为什么错误出现在libwx_baseu-2.8.so. 我认为.so文件的所有符号都已解析,这与.o仍需要链接的文件相反。

当我ldd.so我可以解析其所有链接库,所以那里没有问题:

这是否意味着该.so文件未正确编译(在这种情况下,这是我的分发包中的一个错误)还是意味着我的特定程序的链接器命令行上缺少库?

此外,您知道如何获取 ELF 文件中未定义符号的列表吗?我试过readelf -s了,但我找不到丢失的符号。

谢谢你。

米尔德里德

0 投票
1 回答
1486 浏览

initialization - How do global variables get initialized by the elf loader

For global variables in C like

int aglobal = 5;

When does the 5 get transferred into aglobal by the loader and how does it know to put 5 in aglobal.

Same situation with a static declaration in a function. Like

int afunc() { static int astatic = 8; return astatic; }