卡卷网
当前位置:卡卷网 / 每日看点 / 正文

为什么要有文件?

作者:卡卷网发布时间:2025-01-10 19:19浏览数量:82次评论数量:0次

先不回答为什么要有文件?

先来看看一个问题:<>为什么陈冠希的照片会被泄露?

‌陈冠希<>的照片泄露事件‌发生在2008年,起因于陈冠希在送修电脑时,电脑中的私密照片被不法分子非法复制并散布到互联网上。

<>事件的经过‌如下:陈冠希的将他的电脑送到的仔电脑城修理,但由于临时有事,电脑被留在一个维修店。维修店的老板在修理过程中发现了一些私密照片,并备份了所有照片。然而,这个老板并没有一次性将所有照片发布到网上,而是每天只爆出几张照片,试探网络反应‌。这些照片中包含了许多知名女明星的私密照片,如张柏芝和钟欣潼(阿娇),这些照片的实性通过对照片中的细节得到了确认‌。

<>自此,帅气的陈冠希开发布会宣布永远退出娱乐圈,女星也付出了惨痛的代价。

<>十几年后我看冠希哥的演讲,依旧风采依旧,我甚至还学习了一个词组:waytooimportant.原来way还能做副词这么用。

陈冠希道歉:

带黑色头套的黑客(中国早期IT人员):

<>话说回来。为何照片会被泄露呢?

<>从技术的角度,可能是2个原因:

1:电脑坏之前陈冠希没有删除照片,所以维修店的老板修理好了照片就好奇打开了相册

2:冠希哥已经删除了照片或者格式化了,但是维修店的老板利用文件和图像处理知识给他恢复了。如果是这个原因,那维修店的老板确实挺专业。

所以,为什么需要文件,因为太有用了,如果冠希哥知道数据不安全,他格式化后得在相册里面多几次读写覆盖文件,就应该恢复不了了。,或者最安全的方法,物理销毁,我想如果知道是这样的情况,冠希应该会把电脑磁盘烧了。

<>我们假设第二种情况,看看数据是如何修复的。后面还的有一个实的实验可以做。

有一个古老的文件叫Fat文件,fat是FileAllocationTale(FAT)文件分配表,据说xp和现在的u盘都是用的这个文件,我2011年上大学的的第一台电脑的作就是xp。门时间是2008年,估计冠希也是xp。冠希哥照片泄露,fat文件可能是罪魁祸首。

<>我们分步骤讨论fat文件:

<>第一部分:什么是随机存储器

我们的内存是抽象过后的,我们malloc一块内存,就可以直接使用了,其实我们用到了下面的抽象。加上我们cpu有缓存机制,导致我们有个randomaccess的假象。

<>但是底层是什么样子的呢?我们都知道,程序运行的时候,需要把可执行文件从磁盘空间拷贝到内存运行。那么文件在磁盘里面是怎么存储和访问的呢?

<>二:磁盘和软盘存储

<>可以看出,磁盘以逻辑块或者簇为单位访问,软盘一簇就是一个扇区。文件在磁盘软盘上不能随机访问,而是通过read和write的调用访问。

<>这样有一个读放大和写放大的问题,没有读一个字节或者写一个字节都需要以块位单位,读写一个字节需要读512字节。

<>在软盘时代,软盘的容量很小

<>软盘容量很小,单面180K.

<>只有360个扇区,那时候的工程师需要在软盘上构建一个文件。

<>数据结构里面学过链表,二叉树,hash表等等,由于软盘内存少,工程师选择了最简单的链表。即使是2个面大约只需要720个节点。

<>三:基于链表的2种方法的文件

<>3.1每一个簇(对于软盘就是扇区512字节)有2部分组成,前面是510字节的数据,后面16位即2字节的next指针,指向下一个块。

如上图,第一个块前面510字节是数据,后面2字节是next指针,指向块2,这之前有个块是未使用块,第二块的最后2字节的指向第三块,第3块的next指针是结束符。

这样做的优点是,每一个块都一样,起来容易,第一块是根目录,后面直接遍历很方便。

缺点是:1.每一块都是510,不是一个扇区。没有对齐到2的整数次方,计算机运算不友好(2的k次方,可以位运算)。

<>2.类似于读写放大的问题,找文件需要从开头读,耗时,如果是找最后一个字符,还得遍历链表。例如读写最后的一个块(这里是3)需要从1开始遍历整个链表。如果文件很大,读文件的时间很长,这个是较致命且难以解决的问题。

<>3.2还有两外一种方法,将next指针单放在一起:

因为next指针占用不多,可以搬到内存访问很快,而且存储有局部性,可以遍历很快。

这种链表的优点:指针集中存放,具有集中性,指针只需要很少的块,少所以可以放内存里面,访问更快了,

缺点:磁盘容易坏,如果坏的存放next指针的部分,整个文件取不出来了,而且除非只改写文件内容数据,文件作都要找指针部分。更容易损坏。

哪一种确定可以解决,是第二种,将next备份一下。这个和廉价磁盘冗余阵列raid的思想有点像。这个next就是fat,文件分配表,如下图。

<>四:Fat(FileAllocationTale)文件

<>这个结构就和上面的3.2类似了。

<>这里面的fat有2份。

<>Fat的手册文档s://jyywiki/pages/OS/manuals/MAT-spec.pdf

<>里面提到了

<>这个参数就是fat备份数目,这里推荐是2,1可以但是就不安全了不推荐。

<>五:fat文件格式化

<>生成一个51200000字节的文件,用mkfs.fat格式化。

<>我在uuntu试验了一个类似的:

<>发现太小不能格式化成fat格式。

<>格式化后查看,发现y字符还在:

<>可以strace跟踪调试:

<>jyy的shell是fish,我的ash就不对了

<>修改:

<>可以看到,格式化就算在文件描述法3这个地方不停写512字节的0,就是把fat的非配表抹去了!实现了快速格式化,其实数据y还在!!!

Jyy在他的作业里面说:实际上,文件在实现文件/目录的删除作时,也仅是从文件的数据结构中,抹去文件相关的信息,但是并不会实际将每一个保存数据的块删除。这大大增加了文件的性能,减少了磁盘的读写数量。这些里为了节约时间做出的作,其实牺牲了一定程度的安全性——可以通过“扫描磁盘”的方式,一定程度地恢复出文件中已经被删除的文件。

<>六:冠希哥数据怎么恢复的

其实已经在5里面讲了,格式化只是把fat的指针删除了,文件内容还在,还在呀!

别说是电脑城的老板了,要是我得到了冠希的电脑,本着八卦的心态,我也要把他电脑里面的内容获取出来,哈哈哈,想到我当年花了一个午休打开同学的课桌密码锁的往事了。。还有花了一个月打开了表弟的机械密码本。。哈哈哈,太闲了。。

<>七:怎么恢复的

虽然上面是理论可行的,的恢复格式化的图片还是需要技术的。

这个是jyy课程的一个实验:s://jyywiki/OS/2022/las/M5.html

需要哪些知识呢?

<>1:作知识

<>2.Fat文件知识,rtfm:s://jyywiki/pages/OS/manuals/MAT-spec.pdf

在这里找到文件目录和大小,据jyy说图片是按行存储的,可以找出来文件顺序:

Wc,他画的这个遍历猜测next指针让我头皮发麻,太hack了。我当年遍历试密码还可怕(我遍历密码的时候有机械的小诀窍的)。

不过后面他提到:可以假设图片剩下的部分(clusters)都连续地存储在文件中。因此你只要正确知道文件的大小(这个信息在目录项中也有),你就可以直接恢复出一张图片了。应该不是暴力法。

<>3.图片格式的知识

<>Jyy假设图片是mp格式的,估计如果冠希哥哥的图片是png或者jpg的还得学习格式。

<>4.算法知识:

<>,黑盒子深度学习搞多了,现在觉得传方法才是高级的。

<>5:校验知识

<>看到这,我感觉这个实验一时半会我完成不了了,太综合了。在s://jiaweihawk.githu.io/2021/12/05/%E6%93%8D%E4%D%9C%E7%3%%E7%%9F-%E8%AE%E%E8%AE%A1%E4%8%8E%E5%AE%9E%E7%8E%0-%E5%85%A/#%E8%A7%A3%E6%9E%90%E7%9%AE%E5%D%95%E9%A1%9

<>看到有人实现了,有空我得研究下。

<>8.一些有趣的试验和知识:

<>jyy提供了一个镜像。在s://jyywiki/OS/2023/uild/lect28.ipyn.html<>下载

<>将img镜像挂载到mnt

<>进去能看到图片了:

<>有一个知识:

<>uuntu:DCIM$llk

<>NAMEMAJ:MINRMSIZEROTYPEMOUNTPOINT

<>loop07:004.2M1loop/snap/asciiquarium/42

<>loop17:10104M1loop/snap/core/16928

<>loop27:2055.4M1loop/snap/core18/2846

<>。。。

<>loop237:23064M0loop/home/uuntu/data/mnt

<>可以看到,M5-frecovery.img挂载,但是这里面是loop23挂载到/mnt,其实是每一个挂载都生成一个loop回环设备

<>这个loop是啥的疑问我很久之前就有了。。

格式化再挂载,图片就没有了

<>uuntu:data$vimM5-frecov.img

还是可以看到许多数据,只是fatnext找不到了,目录还在,数据还在。

具体怎么恢复,有空再试验。

<>总结:

<>文件太有趣了,jyy的作课程太硬核了。

<>写这个主要是为了记录我学习jyy课程的过程,去年就看过一次,再复习一次。

<>Fat是fileallocationtale就是next指针的变体,就这么一点,让我对fat文件印象深刻了。而我经常看到的NTFS,ext2我就不记得,因为不能将名字和含义起来。


今天发现,我大学的第一个u盘是fat32文件:

有空得好好研究数据恢复技术。

<>参考:

<>s://iliili/video/V1xN411C74V?spm_id_from=333.788.videopod.sections&vd_soce=1a8681304910d6aa697afc3828f419

s://iliili/video/V1oZ4y1t7ce?spm_id_from=333.788.videopod.sections&vd_soce=1a8681304910d6aa697afc3828f419

s://jyywiki/OS/2022/las/M5.html

s://jyywiki/pages/OS/manuals/MAT-spec.pdf

s://jyywiki/OS/2023/uild/lect28.ipyn.html

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码