是否可以限制C#Winforms应用程序的内存访问

时间:2019-04-22 06:03:15

标签: c# string memory protection

我的程序中存储了一些重要的字符串,但是即使我混淆/保护了程序集,人们也只是使用ProcessHacker或CheatEngine来扫描确实让我烦恼的字符串。有什么方法可以防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

编译时加密和即时解密。需要很多工作。它不需要是REAL加密,只需进行适当的混淆就可以阻止这种情况,但是字符串必须存在于被混淆的内存中,并且每次使用后都必须销毁解密的字符串。

某些库将在初始运行时解密,但是简单的内存转储或调试器将在加载进程或DLL之后公开所有字符串。

您需要在运行时对其进行加密,并且仅在需要字符串时才对其进行解密,有很多方法可以解决此问题。

这是我喜欢的C ++示例,它是一个较大项目https://github.com/red4000/DHCoD4/blob/master/DHCoD4/hCrypt.h#L53

的一部分

对于C#,有多个好的答案here