我正在加密/软件保护方面做一些研究。我想链接动态加密的共享对象(Linux,x86架构,ELF32 / 64格式)
- 要保护的代码在共享对象中包含(加密,无效ELF)。
- 对象本身是一个有效的ELF文件,包含一个init方法
- 应该启动解密,取决于加载程序调用的init函数中的可用许可证。
- 加密后,代码在内存中作为有效的ELF文件出现。
还有一些要求:
- 不得存储解密的代码(即使是暂时存储在磁盘上) - 阻止简单的对象转储和代码重用
- 保护算法不得发布,因此我可能不会使用部分GNU代码(即使人们在那里做了很多工作!)
我认为艰难的方法是重新实现提供所需功能的加载器/链接器......也许有可能使用Linux rtld或其中的一部分,其他链接器?
有更简单的方法吗?
感谢您的每一个想法/提示
一些相关链接/信息