我正在使用CodeDom在内存中动态编译程序集
(using CompilerParameters.GenerateInMemory=True)
并且想知道是否有任何方法(在我的程序集中使用额外的VB.NET代码)来防止有人在程序集仍在内存中运行时能够将程序集的副本保存到桌面?
或者甚至可以让程序集检测何时有人使用某种黑客类型的程序来保存程序集的副本,而它在内存中运行?
专家让我知道是否有可能以及如何实现这一目标?
答案 0 :(得分:0)
简短的回答是“不”。任何通过默默无闻的措施的关键问题是,在某些时候,代码必须运行。对于托管库,这也适用于元数据(除非您将自己的IL编写到本机编译器),因为它必须由JIT编译器编译。你无法真正阻止“黑客类型”,因为即使在最低点,他们也可以分析本机代码,并直接观察内存。没错,有更多的高级黑客(和脚本小子)比低级黑客更多,但重点是。
在动态组装的情况下,它们肯定也在记忆中,正如你自己指出的那样。事实上,我相信他们有一个独特的虚拟内存空间,所以在内存中找到它们甚至都不难:)
您是否尝试实施某些版权保护计划?即使使用本机代码,这几乎是不可能的,托管代码只会使删除保护更容易:)