使用rtld / free loader /链接器加载加密的共享对象

时间:2011-04-21 07:19:54

标签: c linux elf

我正在加密/软件保护方面做一些研究。我想链接动态加密的共享对象(Linux,x86架构,ELF32 / 64格式)

  • 要保护的代码在共享对象中包含(加密,无效ELF)。
  • 对象本身是一个有效的ELF文件,包含一个init方法
  • 应该启动解密,取决于加载程序调用的init函数中的可用许可证。
  • 加密后,代码在内存中作为有效的ELF文件出现。

还有一些要求:

  • 不得存储解密的代码(即使是暂时存储在磁盘上) - 阻止简单的对象转储和代码重用
  • 保护算法不得发布,因此我可能不会使用部分GNU代码(即使人们在那里做了很多工作!)

我认为艰难的方法是重新实现提供所需功能的加载器/链接器......也许有可能使用Linux rtld或其中的一部分,其他链接器? 有更简单的方法吗?
感谢您的每一个想法/提示

一些相关链接/信息

2 个答案:

答案 0 :(得分:1)

如果您对此感兴趣,请查看Shiva。没有向公众发布源代码,但理论仍然存在。

答案 1 :(得分:1)

很久以前,Phrack刊登了一篇关于ELF加密的文章。还有很长一段时间,有一个名为BurnEye的程序来加密ELF二进制文件。