【问题标题】:How to extract the all the user defined functions from elf file using c programming如何使用 c 编程从 elf 文件中提取所有用户定义的函数
【发布时间】:2017-06-02 11:08:09
【问题描述】:

我有一个包含多个文件的源代码。如何使用 c 程序从 elf 中提取文件和函数详细信息

【问题讨论】:

  • 首先可执行文件根本不包含任何源代码。如果它没有附加任何调试信息,那么您甚至无法获得有关函数和源文件位置的信息。可执行文件或共享库中的代码只是一个或多个二进制 blob。
  • @Someprogrammerdude 我可以使用文件和函数指针以及类似于符号表的结构,以便我可以动态调用特定文件中的特定函数
  • @MartinSebastian 如果您可以将源代码编译到共享库中,那么查找函数并使用dlopen and dlsym 调用它们很容易。请参阅该手册页中的示例。

标签: c elf


【解决方案1】:

如何使用 c 程序从 elf 中提取文件和函数详细信息。

这需要大量的编程。有些库可以提供帮助:libelflibdwarf。或者您可以阅读readelf 的来源。

【讨论】:

  • 我可以使用文件和函数指针以及类似于符号表的结构,以便我可以动态调用特定文件中的特定函数
  • @MartinSebastian 你的评论没有意义。如果你有一个函数指针,当然你可以调用它——函数指针就是——你可以调用它。
  • 我确实有这样的结构 struct { char *filename;字符 *funcname; int (*funcptr)(); } symtab[] = { { "filename1", "one_func", one_func }, { "filename2", "two_func", two_func }, };和上面的符号表。我需要检查函数表中的任何文件中是否存在特定函数并执行该函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 2012-12-26
相关资源
最近更新 更多