【问题标题】:How to retrieve flat binary from an executable file in C如何从 C 中的可执行文件中检索平面二进制文件
【发布时间】:2014-02-28 03:58:47
【问题描述】:

如何从可执行文件的 .text 部分检索二进制块?

我知道 objcopy 可以通过以下方式提供帮助:

objcopy --only-section=.text --output-target binary a.out a.out.bin

但是,如果我可以在使用 BFD 库的函数调用中实现相同的目标,那就更好了。有没有办法使用函数调用来调用objcopy?

【问题讨论】:

  • 你对“平面二进制”的定义是什么,也就是你打算用它做什么?
  • 我确信 BFD 可以做到这一点,但在我快速浏览它时,我认为这不是一个“简单”的任务。 objcopy 所做的就是将部分内容复制出来。
  • 平面二进制文件是没有 ELF 头的二进制文件。我将对二进制文件进行一些静态分析,它只需要来自 .text 部分的二进制块。

标签: c++ c elf objcopy bfd


【解决方案1】:

您可能正在寻找 binutils / bfd 库中的函数。您可以在http://www.delorie.com/gnu/docs/binutils/bfd_toc.html 找到文档,我认为您正在寻找的功能是:

boolean bfd_get_section_contents (bfd *abfd, asection *section,
    PTR location, file_ptr offset,
    bfd_size_type count);

谁的文档可以在http://www.delorie.com/gnu/docs/binutils/bfd_57.html找到

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2012-04-18
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多