gpt4 book ai didi

c# - 如何从进程内存中删除字符串?

转载 作者:行者123 更新时间:2023-11-30 19:54:03 24 4
gpt4 key购买 nike

我有一个应用程序,它从 Windows 窗体文本框中获取一个字符串并将其传递给一个使用字符串作为参数的 API。我看到任务完成后仍然可以从进程内存中查询字符串。我遇到了使用 SecureString 来实现字符串内存管理功能的建议。但是,如果我理解正确的话,如果安全字符串是从一个字符串构建的,或者安全字符串的值最终存储在一个字符串中,那么字符串的目的就被打败了。

请提出最佳解决方案。

最佳答案

SecureString 不被认为是安全的。如果您需要这样做,您可以使用 char[] 并在完成后覆盖数据,或者您可以使用 unsafe 代码来完成后覆盖一个 string (只是......希望它不是 interned 或共享引用);请注意,这适用于调用堆栈中的所有地方。请注意,操作系统可能出于各种原因复制了页面,如果内存分配不当非常,它甚至可能在磁盘(交换文件)上。

然而,当内存分析工具成为 winforms 应用程序的一个因素时,使用键盘记录器会更容易,或者只是拿个 Spanner 威胁别人要密码:

关于c# - 如何从进程内存中删除字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44254774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com