【问题标题】:loading encrypted shared objects using the rtld / free loader/linkers使用 rtld / free loader/linkers 加载加密的共享对象
【发布时间】:2019-03-16 21:03:12
【问题描述】:

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

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

还有一些进一步的要求:

  • 不得存储解密的代码(即使是临时存储在磁盘上) - 防止对象转储和代码重用
  • 保护算法不得公开,所以我可能不会使用部分 GNU 代码(即使人们在那里做了很棒的工作!)

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

一些相关链接/信息

【问题讨论】:

    标签: c linux elf


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      很久以前,Phrack 发表了一篇关于 ELF 加密的文章。很久以前,有一个名为 BurnEye 的程序来加密 ELF 二进制文件。

      【讨论】:

      • 有人告诉我,link 上还有一个名为 burndump 的工具,用于剥离保护...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2015-01-11
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      相关资源
      最近更新 更多