.NET / .NET核心 - 外部可以访问内存吗?

时间:2017-12-07 23:22:50

标签: c# .net security mono .net-core

如果我编写一个C#应用程序并编译为.NET,或.NET Core,甚至是Mono,外部应用程序是否可以在运行过程中访问内存?

即。如果我写这行代码:

var password = "some password";

恶意软件是否可以扫描进程的内存地址并获取字符串?

我想这个问题在某种程度上与操作系统有关。而且,我想这也取决于恶意软件具有哪些访问权限,对吧?我猜我的问题答案与MacOS / Linux到Windows不同,对吗?

编辑:是否有任何可以想象的方法来保护内存中的字符串?是否有一些可以实现此目的的加密机制?

我可以做的一件事就是使用SecureString来缓解这个问题。但是,它并不完美: https://msdn.microsoft.com/en-us/library/system.security.securestring(v=vs.110).aspx#HowSecure

Microsoft推荐的方法是:

  

而不是使用SecureString来保护密码,建议使用   替代方法是对存储的凭证使用不透明句柄   在这个过程之外。

虽然,这不是具体的答案。对我来说,理解他们推荐的内容太过抽象。

0 个答案:

没有答案