从失败的休眠唤醒中恢复内存中页面数据
尝试从休眠文件还原时,我女友的Macbook崩溃了。进度条停在10%左右,之后我们重新启动计算机以进行正常启动。 此休眠的内存映像在Pages中打开了一个未保存的文档,我们希望对其进行恢复。有一个sleepimagein /private/var/vm,我认为它是从未正确还原的休眠映像。我们备份了这个东西以使其保持生命。 我们尝试过,strings sleepimage | grep known_substring但是什么也没返回。grep -a known_substring sleepimage也没有执行任何操作,因此我假设Pages不会将文本数据作为纯文本保留在内存中。 编辑:在我尝试对Binary grep阅读此答案后perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage,再次没有结果。我用空值填充了它,以尝试匹配UTF-8文本。然后我尝试了.*每个字符之间的问题–仍然没有骰子。 因此,Pages可能不会通过任何常见的编码在内存中存储文本。我需要找到ASCII字符串和Pages数据表示形式之间的转换规则-我在想也许是某种Objective C字符串缓冲区。在我看来,将字符数据存储为字符序列以外的其他东西似乎很奇怪,但这似乎是Pages所做的。 如果您对如何计算Pages中文本的内存表示形式有任何想法,则可能对解决此问题很有帮助。也许我可以用一些简单的方法转储和读取进程内存? 另一个可能的解决方案更简单-我假设可以通过某种方式重新启动计算机sleepimage,但是我找不到任何有关如何进行此操作的文档。其他一些用户(微不足道的人)似乎也遇到了这种情况,但是对于我发现的所有论坛问题,他们都没有回应。 OS X版本是Snow Leopard,10.6.8。 欢迎涉及编程的复杂建议。我做C和Python。 谢谢。