我正在编写一个包含DLL来授权用户的应用程序.它会将加密文件读入XML DOM,在那里使用信息,然后释放DOM.
很明显,未加密的XML仍然存在于DLL的内存中,因此容易受到检查.现在,我不会过分保护这个 – 用户可以创建另一个DLL – 但我想采取一个基本步骤来阻止用户名在内存中存放多年.但是,由于引用,我认为我无论如何都不能轻易擦除内存.如果我遍历我的DOM(这是一个TNativeXML类)并找到每个字符串实例,然后将它变成类似“aaaaa”的东西,那么它实际上不会将新的字符串指针分配给DOM引用,然后保留旧的字符串在记忆中等待重新分配?有没有办法确定我要杀死唯一的原始副本?
或者在D2007中是否有一种方法可以告诉它从堆中擦除所有未使用的内存?所以我可以释放DOM,然后告诉它擦除.
或者我应该继续我的下一个任务而忘记这一点因为它真的不值得打扰.
解决方法 我不认为值得烦恼,因为如果用户可以使用DLL读取进程的内存,同一个用户也可以在任何给定的时间点停止执行.在擦除内存之前暂停执行仍将使用户可以完全访问未加密的数据.IMO任何对你所描述的内容足够感兴趣且能够做你所描述的用户都不会因你的DLL擦除内存而感到非常不便.
总结以上是内存溢出为你收集整理的如何在Delphi中提高内存安全性?全部内容,希望文章能够帮你解决如何在Delphi中提高内存安全性?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)