如何加密可执行文件并使该加密文件可执行而无需使用额外的文件进行解密?

时间:2012-08-15 10:45:10

标签: c# encryption exe windows-applications

我们如何使用 c#加密可执行文件,并使该加密文件仍然可执行而无需使用额外的文件进行解密?
意思是解密方法shuold在文件内 我怎么能用c#语言写这样的东西?

感谢adavance

1 个答案:

答案 0 :(得分:2)

将加密数据存储在客户端计算机上并自动解密意味着您还必须在该计算机上存储解密密钥。这意味着您无法有效保护数据并将其提供给用户。这种加密仅用于减慢用户篡改数据的速度,因为需要时间来恢复解密密钥和算法。

如果要加密可执行文件本身的代码,以防止用户篡改它,这是一个非常复杂的主题。这只是持久性和时间的问题。您将无法在一个StackOverflow帖子中获得此类问题的答案。您将不得不研究PE和.NET文件格式,操作系统内部有关可执行加载程序以及mscor *。

如果您需要存储一些数据

  • 选择一些加密算法并将您的数据加密成文件(请参阅this question
  • 将加密文件添加到c#项目中作为嵌入式资源
  • 在运行时访问此文件(请参阅this question)并对其进行解密(已在第一点中讨论过)