加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Delphi中提高内存安全性?

发布时间:2020-12-15 10:10:58 所属栏目:大数据 来源:网络整理
导读:是否可以在Delphi中“擦除”字符串?让我解释: 我正在编写一个包含DLL来授权用户的应用程序.它会将加密文件读入XML DOM,在那里使用信息,然后释放DOM. 很明显,未加密的XML仍然存在于DLL的内存中,因此容易受到检查.现在,我不会过分保护这个 – 用户可以创建另
是否可以在Delphi中“擦除”字符串?让我解释:

我正在编写一个包含DLL来授权用户的应用程序.它会将加密文件读入XML DOM,在那里使用信息,然后释放DOM.

很明显,未加密的XML仍然存在于DLL的内存中,因此容易受到检查.现在,我不会过分保护这个 – 用户可以创建另一个DLL – 但我想采取一个基本步骤来阻止用户名在内存中存放多年.但是,由于引用,我认为我无论如何都不能轻易擦除内存.如果我遍历我的DOM(这是一个TNativeXML类)并找到每个字符串实例,然后将它变成类似“aaaaa”的东西,那么它实际上不会将新的字符串指针分配给DOM引用,然后保留旧的字符串在记忆中等待重新分配?有没有办法确定我要杀死唯一的原始副本?

或者在D2007中是否有一种方法可以告诉它从堆中擦除所有未使用的内存?所以我可以释放DOM,然后告诉它擦除.

或者我应该继续我的下一个任务而忘记这一点因为它真的不值得打扰.

解决方法

我不认为值得烦恼,因为如果用户可以使用DLL读取进程的内存,同一个用户也可以在任何给定的时间点停止执行.在擦除内存之前暂停执行仍将使用户可以完全访问未加密的数据.

IMO任何对你所描述的内容足够感兴趣且能够做你所描述的用户都不会因你的DLL擦除内存而感到非常不便.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读