gpt4 book ai didi

ios - 用于释放密码的 iPhone 内存管理(生产中的 Malloc Scribble?,用零填充释放内存?)

转载 作者:太空宇宙 更新时间:2023-11-04 04:36:01 26 4
gpt4 key购买 nike

我正在研究 iPhone 如何管理堆和堆栈,但很难找到有关这方面的良好信息来源。我试图追踪密码是如何保存在内存中的,即使是在 NSString 被释放之后也是如此。

据我所知,一旦 ARC 中的释放计数下降到 0,iPhone 将不会清除内存内容(写入零或垃圾)。因此带有密码的字符串将存在于内存中,直到内存位置为覆盖。

Xcode 中有一个调试选项,Malloc Scribble,通过启用/禁用此选项(并禁用 Zombies)来调试将用 0x55 填充已释放内存的内存问题,并且在模拟器的内存转储(使用 gcore)之后,我可以检查内存中的内容是否已被替换为 0x55

我想知道这是否可以通过 Apple Store 构建来完成,用垃圾数据填充释放的内存,我假设 iPhone 默认情况下不会这样做是否正确,或者是否有任何其他更好的选择处理内存中的敏感数据,以及在使用后应该如何清除它(可能是可变数据?写入那个内存位置?)

最佳答案

我不认为在build设置级别可以做些什么。但是,您可以通过将内存归零(使用 memset 和指向您的字符串的指针)自己应用某种内存清理。

关于ios - 用于释放密码的 iPhone 内存管理(生产中的 Malloc Scribble?,用零填充释放内存?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30539141/

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