是否可能限制c#winforms应用程序的内存访问

问题描述 投票:1回答:1

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

c# string memory protection
1个回答
0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.