栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从内存中恢复Python脚本,我搞砸了

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从内存中恢复Python脚本,我搞砸了

据我所知,Python不会将源保存在内存中,并且注释中提供的方法仅使可执行文件保持活动状态,而不是脚本。转储程序的内存可能使您可以访问字节码,但是我不知道可能需要付出多少努力。

相反,我首先尝试一种非Python专用的方法,该方法已成功用于恢复我意外删除的Python源。这假定文件系统为ext2 /
3/4,并且您具有root用户访问权限。

显然,第一步(任何恢复操作)都是避免在系统上写任何文件,以免覆盖正在寻找的数据。在家庭系统上,如果可能的话,我可能会亲自将分区重新挂载为只读,以避免进行更多写操作。我听说其他人建议您快速拔下插头,这可能会阻止OS
/磁盘高速缓存写入磁盘,并且如果您 真的
很快的话,可能会为您节省一些其他数据(甚至防止删除)。在远程系统上,这两者都不是一个好主意(除非数据非常重要,并且可以将磁盘运送给您或其他东西),因为如果某些内容突然变成只读,则系统可能会不喜欢它。

第二步是执行

debugfs /dev/sdXY
,其中
/dev/sdXY
是删除文件所在的分区。在提示符下,说
blocks/path/to/the/directory/the/removed/file/was/in
。然后,将
blocks
命令路径提供给目录中其他现有文件的路径。现在,通过说出退出程序
quit
,并希望您看到的块号彼此接近。如果目录较旧且块编号分散,则从最近文件的块编号开始。(也就是说,最后一次修改的时间尽可能接近已删除文件的最后修改时间)我们将假定文件已存储为关闭状态,尝试扫描目录中其他文件附近的分区内容给他们。Execute
dd if=/dev/sdXY bs=4096 skip=BLOCKNUMBER count=COUNT |grep -CAPPROXIMATE_LINE_COUNT_OF_THE_REMOVED_FILEWORD
,其中
BLOCKNUMBER
第一个程序段号之前的某个数字,
COUNT
是要搜索的适当数量的块,并且
WORD
是源文件中包含的单词。如果您什么都没有得到,请尝试在另一个文件的块附近钓鱼。如果时间不成问题,并且您可以想到一个仅出现在已删除文件中的字符串(因此不会出现太多误报),则可以跳过所有内容并使用扫描整个磁盘
grep-a WORD -C LINECOUNT /dev/sdXY

由于IIRC最新版本的Ubuntu(可能还有其他系统)在默认情况下将内核配置为阻止对/ dev /
mem的访问,因此另一种可能对您不起作用的方法(您应该在其他方法之前尝试)。扫描内存中的文件。只需

grep -a WORD -C LINECOUNT/dev/mem
扫描内存而不是分区即可。(如果您在表单字段中写了很长的文本,但单击不正确并且浏览器清空了该字段,这也可以节省您的时间)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669386.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号