问题标签 [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 投票
4 回答
8805 浏览

c - .bss 部分未初始化如何?

我们知道 .bss 包含未初始化的变量。如果在 c 代码中,程序员在使用它们之前初始化变量。那么 .bss 在执行 C 代码之前不必为零。

我对吗?

谢谢

0 投票
2 回答
2132 浏览

linux - 手动ELF文件

嘿,我手动创建了一个 ELF 文件,它有两个部分(.text 和 .shstrtab)和一个加载 .text 部分的程序头。.text 部分非常小,仅包含以下三个说明...

当我在这个 elf 文件上运行 readelf 时,它不会抱怨。如果我执行这个文件,那么一旦我执行它,它就会被杀死,并且屏幕上会出现“Killed”消息。我已经在stackoverflow浏览了以下帖子,但我仍在浏览它。

现在我担心的是这个程序不要求任何(额外的)内存,并且真的可以手动执行 ELF 并期望系统完全可以容忍它吗?

谢谢,

0 投票
2 回答
1991 浏览

c - 如何获取 C 函数指针的函数名

我有以下问题:当我在 C 中使用 backtrace(3) 函数获得回溯时,返回函数名称的符号很容易通过 dwarf 库和 dladdr(3) 确定。

问题是,如果我有一个简单的函数指针(例如通过传递它&function),dladdr + dwarf 函数将无济于事。似乎指针与 backtrace(3) 返回的指针不同(这并不奇怪,因为 backtrace 直接从堆栈中获取这些函数指针)。

我的问题是是否也有一些方法可以解决这些名称?另外,我想确切地知道这两个指针之间有什么区别。

谢谢!

更新:

指针之间的区别非常显着:
我用回溯得到的是:0x8048ca4
直接指针版本:0x3ba838

在我看来,第二个需要一个偏移量。

0 投票
1 回答
891 浏览

linux - 如何重新映射符号以调用不同的函数

我有一个ELF共享对象,我想对其进行修改,以便对系统函数memcpy的调用实际上路由到自定义版本的memcpy.

我一直在研究并阅读了有关PLT重定向和ELF感染的信息,但我仍然不确定如何实现我的目标。

谁能给我一些提示和技巧,或者详细说明PLT重定向和ELF感染?

问候,

保罗

0 投票
5 回答
31505 浏览

linux - 如何获得“.a”文件的架构?

我有一个 .a 文件,我想从中获取架构信息。运行file myFile.a结果在file.a: current ar archive. 如何获得有关文件包含的架构的更多信息?

0 投票
1 回答
213 浏览

reference - 我在哪里可以找到 ELF 文件格式的良好参考?

我正在编写一个编译器,它将为 i386 平台生成 ELF 可执行文件。

但是,我需要一个很好的文件格式参考(有关标题、重定位等的信息)。

有这样的参考吗?

0 投票
1 回答
1220 浏览

elf - 可用的 ELF 可执行文件需要哪些部分?

我正在创建一个 ELF 可执行文件,我需要知道操作系统需要哪些部分才能加载和执行它。

细节:

我意识到以下可能是必要的:

  • 。文本
  • .symtab
  • .rel.text

还有其他人吗?

0 投票
1 回答
321 浏览

assembly - 如何将 libc6 中的函数导入 ELF 可执行文件?

我正在创建一个需要从 libc6 导入函数的 i386 ELF 可执行文件。(printf顺便说一句,它是。)

我创建了一个非常小的 ELF 可执行文件,它打印“Hello, world!” 通过使用 Linux 内核中断到控制台0x80。这不是最优的,我想让应用程序使用 libc。

到目前为止,这是我所拥有的:(大部分结构对齐代码都归功于此页面。)

我想我需要为导入添加另一个程序头,但我真的不知道 - 我也不熟悉该部分内容的格式。

0 投票
4 回答
45016 浏览

linux - 如何仅提取 ELF 部分的原始内容?

我尝试了以下方法,但生成的文件仍然是 ELF,而不是纯粹的部分内容。

我只想要该部分的内容。有没有可以做到这一点的实用程序?有任何想法吗?

0 投票
5 回答
5297 浏览

c - 声明为“const”的全局初始化变量进入文本段,而声明为“静态”的变量进入数据段。为什么?

具有以下输出:

然而:

具有以下输出:

当数组未初始化时——它再次进入“const”的文本段和“静态”的 BSS。

该变量是全局的,应该可以从它所属的可执行文件中的任何位置访问(因为没有“静态”),但是鉴于它是一个变量,我不知道为什么它被放置在文本段而不是数据段中?