Hasty Briefsbeta

双语

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加载器。