在C库中嵌入或编码静态信息?

时间:2014-03-04 21:22:00

标签: c

这可能是一个奇怪的问题:我有一个需要读取相对大的配置文件(10MB)的C库。配置文件是静态的,并且最好不被临时库用户读取或查看。假设我不关心分发大小,嵌入此类信息的最佳方法是什么?我想过以某种形式对它进行加密并在运行中解密它,但后来我必须处理清理并且似乎没有更多的混淆。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

C本身并不提供任何支持。您可以使用第三方库或操作系统功能来执行此操作,但它高度平台/特定于环境。

在Linux中,使用ELF可执行文件,您可以使用ELF Resource Tools来嵌入资源。

在Windows中,Windows Resource Compiler将资源嵌入到PE可执行文件中。它与Visual Studio集成得很好,但可以单独使用。

以上两者(以及任何平台上的任何嵌入式资源解决方案)都依赖于:

  • 可执行格式的资源支持(ELF,PE等)
  • 图书馆支持在运行时提取资源
  • 编译器/链接器支持在编译时嵌入资源