我需要做一件不寻常的事情:手动执行一个 elf 可执行文件。即将所有部分加载到正确的位置,查询 main() 并调用它(然后清理)。可执行文件将被静态链接,因此无需链接库。我还控制基址,所以不用担心可能的冲突。
那么,是否有任何图书馆呢?
我找到了 OSKit 及其 liboskit_exec,但项目似乎自 2002 年以来就已经死了。
我可以参与部分项目(当然,尊重许可证)并根据我的需要定制它们,但由于我在 linux 世界中相当菜鸟,我什至不知道在哪里可以找到这些部分!:)
PS。我需要 ARM 平台。
UPD好吧,加载精灵的问题似乎需要一些很好的知识(叹气),所以我出去阅读一些规范和手册。我想我会坚持使用仿生/链接器和 libelfsh。多谢你们!
总结发现:
- 自由: 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