Foreign-dlopen: call dlopen from static programs
3 months ago
- #ELF-loader
- #dlopen
- #static-linking
- 由于与静态链接优势的冲突,在静态链接二进制文件中调用dlopen()存在问题。
- 常见做法是避免在静态二进制文件中使用dlopen()以保持体积和效率。
- 替代方案'FFI模型'允许静态二进制文件与外部共享库交互,避免与libc冲突。
- 概念验证解决方案包含自定义ELF加载器和辅助可执行文件,桥接静态与动态世界。
- 实现需要针对目标系统的libc构建辅助可执行文件,并编译静态示例应用。
- 该方案使静态二进制文件能动态加载如libc.so.6的库,并调用printf()等函数。
- 项目致谢:Paul Sokolovsky提出构想,Mikhail Ilyin实现ELF加载器。