我实际上是在为软件保护方面工作。但是为了正确保护我的源代码(无论是 .Net 还是 C++),我需要从黑客的角度了解什么是可实现的(和不可实现的)。
我可以随心所欲地保护/混淆/加密/虚拟化我的代码,但是当源代码加载到内存中时,它必须不受保护才能运行。那么在这个时候,黑客能否将源代码从内存中转储出来,从而完整地、纯正地恢复我的源代码?
如果是,如何做到这一点?使用什么工具?
编辑:根据我的发现,这似乎是可行的,并且有可以防止这种情况的保护工具,例如Agile.Net:
方法级代码加密- 加密所有 MSIL 代码并将其保存在安全存储中。当程序集被加载时,Agile.NET 绑定到 .NET 运行时引擎并在每个方法的基础上管理解密 MSIL。Agile.NET 创建了一个运行时环境,通过一次解密一个方法来执行原始 MSIL 代码,这一重要优点最大限度地减少了 MSIL 代码在内存中的暴露,从而防止从物理内存中转储代码。
但我不知道如何,有人可以对此有所了解吗?