我需要做一个非常不寻常的事情:手动执行一个elf可执行文件。 IE。将所有部分加载到正确的位置,查询main()并调用它(然后进行清理)。可执行文件将被静态链接,因此无需链接库。我还控制基地址,因此不必担心可能的冲突。

那么,那里有任何图书馆吗?

我发现了OSKit及其liboskit_exec,但是自2002年以来,该项目似乎已死掉。

我可以接受项目的某些部分(当然要遵守许可证)并根据自己的需要进行定制,但是由于我在linux世界中是个菜鸟,所以我什至不知道在哪里可以找到那些部分! :)

PS。我需要用于ARM平台。

UPD 好吧,加载elf似乎需要一定的知识(叹气),所以我要阅读一些规范和手册。而且我认为我会坚持使用仿生/链接器和libelfsh。谢谢你们!

总结的发现:

  • libelf :http://directory.fsf.org/project/libelf/
  • elfsh和libelfsh (现已成为eresi的一部分):http://www.eresi-project.org/
  • elfio (另一个elf库):http://sourceforge.net/projects/elfio/
  • OSKit和liboskit_exec (已过时):http://www.cs.utah.edu/flux/oskit/
  • 仿生/链接器:https://android.googlesource.com/platform/bionic
  • 最佳答案

    快速的apt-cache search建议libelf1libelfg0和/或libelfsh0。我认为elfsh程序(在namesake包中)可能是有关如何使用libelfsh0的有趣的实际示例。

    我自己没有尝试过,但希望他们会有所帮助。祝你好运 :-)

    10-07 17:44