当前位置:首页 > 每日看点 > 正文内容

为什么要有文件?

卡卷网7个月前 (01-10)每日看点125

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

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

‌陈冠希<>的照片泄露事件‌发生在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

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8406.html

分享给朋友:

相关文章

app拉新在哪接单?

app拉新在哪接单?

“提供500+款任务”,“一手渠道app拉新项目”,“纯绿色的”,“高佣金”,“当天做当天结/算”,“多年孵化经验”,“独立后台一对一帮扶持”以上这种还有人信吗???作为一个做了三个月时间并且也踩过坑的人告诉你,不要轻易相信发这种广告的,还...

那些极速版软件其存在目的是什么?

那些极速版软件其存在目的是什么?

我看了很多回答,其实都没有回答道点子上。你知道极速版APP为什么叫极速版吗?是他看视频更快吗?显然不是。只是它的安装包体积更小,下载安装速度更快而已,所以叫极速版app。当然啦,现在极速版APP和原声版APP,安装包已经没有区别了,这是因为...

马云也搞不明白:为什么现在用户偏爱微信支付,而不是支付宝?

这题我会,我教马云一招。你直接把你那破比支付宝的代码全删了,重新写一个。打开支付宝直接就是一个大大的支付码,然后右上角按一下就是扫一扫。你要是还想保留你的其他那些乱七八糟的功能,麻烦将他们全部做到下拉菜单里。你这么设计我不说你能干死微信,但...

Redmi 为什么可以把性价比做得那么高?

一位修手机的老大哥曾经跟我说过,红米1那个手机,除了处理器还凑活,其余零部件,就是市面上山寨机那种。其实红米性价比并不算极致,而且一直都有竞争者,从原来的群魔乱舞,到后来的荣耀,魅蓝,一加,再到现在的IQOO和realme。红米的方法也很简...

为什么有人觉得华为mate60只值2000?

为什么有人觉得华为mate60只值2000?

你以为买Mate60的人真的傻?真的那么爱国?国庆前,我家那傻子加价800多买了一台Mate60,当时还被我骂他是傻子。可是他说一回到公司就被老板同事朋友看到,拿去反复查看,都在惊叹他这么快就买到新机。跟亲戚朋友聚会,别人一看就知道他买的是...

如何看待台积电,三星相继停供大陆7nm及更先进芯片?

在这个事出来之前,我就看到过一个说法,两家Foundry可以在中东建厂,让中东的Fab去干“脏活”。本质上是国内企业搞几个中东的代理人,装作是中东的初创Fabless企业去下单,人家Foundry大概率睁一只眼闭一只眼,只管数钱。然而,紧接...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。