0

0
0

文字

分享

0
0
0

為什麼被刪除的檔案還有機會被救回來?檔案刪除時到底發生了什麼事?

活躍星系核_96
・2019/04/12 ・2759字 ・閱讀時間約 5 分鐘 ・SR值 522 ・七年級
  • 慕容峰│從事數位鑑識工作多年,在分析證物的過程中,彷佛側耳傾聽證物娓娓道來一般,同時審慎客觀地仔細分析察看,即便是旁枝末節也不輕易放過,浸淫其中而樂此不疲。

當提到不小心刪除檔案了,多數人的直覺反應會是「完蛋了」,接下來的念頭通常是「還救的回來嗎?」在回答這個問題之前,先讓要大家了解的是,當檔案被建立或刪除時,背後的處理機制有何玄機。

檔案刪除時 Ctrl+Z 救不回來,但不代表就沒救喔。圖/wikimedia

檔案系統的機制就像是餐廳的訂位系統

儘管檔案系統(File System)的種類眾多,常見的如 FAT、NTFS、Ext2/3/4、HFS/HFS+,但以數位鑑識的觀點來看待這些檔案系統,當掌握了其特性之後,你會發現它們其實很單純,皆是有著猶如餐廳訂位系統般的運作機制。

大家應該都有在餐廳訂位的經驗,當訂位完成時,訂位系統已註記了你所預訂的是哪一廳的哪些座次,這就與檔案系統的機制不謀而合。為了單純化起見,以下就以 FAT 這個檔案系統為例以有效地說明。

檔案的過程如同你到餐廳預約席位。圖/pexels

當檔案被建立時,檔案系統會記錄此檔案的相關屬性值及儲存資料內容。而存放資料內容的基本單位,便是所謂的「cluster」,我們可以把它想像成是一個個的容器,即猶如一個個的餐廳座位一樣。當檔案愈大,就好比是聚餐的參與者愈多,需要更多的座位一般,檔案系統就會為其配置更多的 cluster以存放該檔案的資料內容。

此外還會在「directory entry」記錄此檔案的檔案名稱、副檔名、起始 cluster 號碼,及檔案大小等屬性值。並於FAT表註記該檔案所佔用的 cluster 編號是幾號到幾號。此一目的在於標記這些 cluster 已被佔用,就像是餐廳的座位若已被訂走就無法將其再開放讓其它人來訂一樣,如此才能確保檔案系統運作順遂。

當然了,一個資料量很大的檔案所佔用的 cluster 號碼可不見得是連號的哦,這部份亦可由FAT表中看出端倪。就算不是連號各位也不用為檔案系統操心,在FAT表中的記錄足可以串連出一個檔案所佔用的所有 cluster 無誤。

如下圖所示,D槽的磁碟標籤為「Disk」,目前裡頭有 2 個檔案,分別為「file1.txt」及「_News.txt」,留意一下 2 個檔案的大小。由於txt是明文形式的檔案內容,以這種純文字檔來為各位說明最是簡明易懂。

或許有人會有疑問,怎知道這 2 個檔案各是佔用了多少 cluster 呢?沒錯,這就牽涉到 D 槽在格式化之初,所選擇的「配置單位大小」。下圖便是 D槽這個分區目前的配置狀況,由「Bytes per cluster: 2048」可清楚的得知一個 cluster 的大小是 2048 bytes,至於「sector」在此暫不論及,以免讀者們混淆不清就更是摸不著頭緒了。

我們就先來看看 file1.txt 好了,使用hex editor工具來查看 D 槽,file1.txt的資料內容及hex值如下圖所示,而其檔案大小為0.6KB,對照前述D槽的cluster資訊,便可輕易推導出file1.txt只佔用了一個cluster。

那要如何得知它佔用的是哪一個cluster呢?接著我們來看一下directory entry,如下圖所示,紅色框住部份便是file1.txt的相關屬性記錄,而其中綠色框住部份的「02 00」,便是此檔案的起始cluster號碼,由於其為Little Endian的定序。經轉換後得知file1.txt的起始cluster號碼為「2」。

接著我們便可定位到FAT表中的cluster 2,如下圖紅色框住部份所示的值,即是file1.txt這個檔案在檔案系統中的「訂位記錄」了。

但由於這檔案很小僅佔用了一個cluster,我們再看看_News.txt有何不同。_News.txt的文本內容及hex值如下圖所示,此檔案的大小為2.9KB。

聰明的讀者們至此應該已經知道了,它佔用了一個以上的cluster,那要如何得知它佔用了哪些個cluster呢?如同前述的作法,我們要先得知它的起始cluster才行。來看一下它的directory entry便知道了,如下圖所示,_News.txt的起始cluster號碼是「5」。

再定位到FAT表中的cluster 5,如下圖紅色框住部份所示的值,其中「06 00」即表示它不僅佔用了cluster 5,同時也佔用了cluster 6。而其後的「FF FF」即表示結尾之意。

或許會有讀者感到好奇,file1.txt的起始cluster是2,且它只佔用一個cluster,而_News.txt的起始cluster卻是5,為何不是3呢?原因很簡單,因為cluster 3及cluster 4早就被佔用了,如下圖所示,佔用這2個cluster的分別是資源回收筒及其下的檔案desktop.ini。

刪除檔案所產生的變化

那刪除檔案會產生何種變化呢?如同餐廳訂位系統一樣,若用餐畢離席時,原本被佔用的座位就可以空了出來,再開放給其它人訂位。我們就來看一下把file1.txt及_News.txt 刪除之後的變化,如下圖所示,此時 D 槽在檔案總管中已空無一物。

若查看 file1.txt的 directory entry,發現 file1.txt 的檔案名稱已變的不易辨識,沒錯,原因即就在於下圖紅色框住的值已變成了「E5」之故。

那麼 _News.txt 是不是也有相同的變化呢?是的,其directory entry的起始值也變成了「E5」,這便是FAT檔案系統中檔案遭到刪除後所呈現的特徵值。

值得留意的是,除此之外,其它像是副檔名、起始 cluster、檔案大小等屬性值並未受到影響。但是,剛為各位說明了這 2 個檔案既被刪除,其原本佔用的cluster就該釋出而不能繼續佔用了,我們接著觀察一下 FAT 表是否有相應的變化。如下圖紅色框住部份所示,沒錯,這 2 個檔案本來佔用的 cluster 皆已被註記為「00 00」,代表已釋出,那些cluster可再被其它新進來的檔案去佔用了。

當然了,一般人最關心的仍是,有沒有機會救回這 2 個檔案的原有資料內容呢?答案是「有機會」的,只要是在尚未被新資料內容給覆蓋之前,都有機會可救回。下圖所示便是 file1.txt 的資料內容,目前仍完好如初。

再看_News.txt的內容如下圖所示,亦是完好如初。因為當刪除檔案之時,資料本體尚在,只是儲存資料的容器遭釋出可允許新資料寫入。這也就是我們常說的,傳統硬碟(SSD除外)的資料救援有著較高的成功機率之故。

但要留意的是,究竟是比較早刪還是比較晚刪的檔案內容易遭到覆蓋,則未有定論,畢竟這是作業系統及檔案系統在進行處理,非人為能夠介入決定。

數位鑑識是一門嚴謹的科學,當鑑識人員對電子跡證的本質有了更深入的了解,便能在需要對證物中的遭刪除資料進行回復時,採取穩當而有效的措施。

參考資料

文章難易度
活躍星系核_96
756 篇文章 ・ 70 位粉絲
活躍星系核(active galactic nucleus, AGN)是一類中央核區活動性很強的河外星系。這些星系比普通星系活躍,在從無線電波到伽瑪射線的全波段裡都發出很強的電磁輻射。 本帳號發表來自各方的投稿。附有資料出處的科學好文,都歡迎你來投稿喔。 Email: contact@pansci.asia


0

4
0

文字

分享

0
4
0

江山代有 B 肝出,各領風騷數千年—— B 型肝炎病毒的萬年演化史

寒波_96
・2021/10/22 ・4398字 ・閱讀時間約 9 分鐘

B 型肝炎是台灣很熟悉的傳染病,主要藉由血液、體液的交流傳染。它的歷史非常久遠,在世界各地普遍存在。新發表的論文報告:超過一萬年的人類遺骸中,已經能見到 B 型肝炎病毒(Hepatitis B virus,簡稱 HBV);各款遺傳品系萬年來起了又落,可謂各領風騷數千年。

古代 DNA 的研究,技術已經進步到可以由遺骸或環境樣本,定序裡頭所有的 DNA 片段。例如取自人類牙齒的樣本,定序不只能獲得人類的 DNA,也可能捕獲當事人生前口腔中的微生物。所以同一份樣本被定序後,可以進行不同目的之探索。

論文的 B 型肝炎病毒取樣地點、年代。A 為歐亞大陸的古代樣本,B 為美洲的古代樣本,C 為現代各地流行的基因型分布狀況。圖/參考資料 1

和人類一起移民美洲,獨立發展的 B 肝病毒

B 肝病毒以 DNA 為遺傳物質,被感染的人去世後,病毒的 DNA 可能保留在死人骨頭、牙齒中,因此有機會被偵測到。新問世的論文搜尋資料庫,在世界各地 137 個古代樣本中,偵測到 B 肝病毒的存在。

這批古代 B 肝病毒,年代介於距今 400 到 10500 年前,絕大部份位於歐亞大陸西部和美洲。將各款病毒擺在一起畫演化樹,美洲的古代病毒自成一群,和歐亞大陸的同類平行發展。

一直到數百年前歐洲人殖民以前,美洲的 B 肝病毒都自成一群,最古老的樣本距今約 9000 年,位於安地斯高地的 Cuncaicha 岩蔭遺址(CUN002)。

如今的 B 肝病毒被分為 10 種基因型,稱為 A 到 J 型。美洲流行的 H 型、F 型(genotype H、genotype F),便是這群病毒流傳至今的後裔。

現代、古代的 B 型肝炎病毒擺在一塊,畫出的演化樹。這兒估計的分家年代,相對比較晚。圖/參考資料 1

B 肝病毒的主要宿主是人類,大部分傳播會跟著人走。(北極區以外)美洲原住民的祖先從亞洲移民到美洲後,長期獨立發展,和其他地區缺乏交流。而美洲居民的 B 肝病毒也獨立演化超過一萬年,和人類遷徙、分家的狀況一致。

B 肝病毒在哪兒起源,有多資深?

美洲和歐亞大陸的 B 肝病毒,在什麼時候分家?論文對此不敢給出肯定的答案,也許是一萬多年前,也可能較接近兩萬年前。不過再怎麼說,都比智人祖先離開非洲的年代,要更晚許久。

過去有學者認為,B 肝病毒的歷史能追溯到數萬年前,智人離開非洲的時候。一大證據來自澳洲原住民感染的 C4 亞型(subgenotype C4),和同類分家 5 萬年之久。

但是這回估計 C4 資歷應該不超過 4500 年,遠遠比人類移民抵達澳洲的年代更遲。由此推論,C4 很可能是後來才抵達澳洲的。

根據現有資訊推敲,B 肝病毒的共同祖先頂多處於 2 萬年前。但是更早以前是否已經存在,卻在歷史洪流中失傳呢?目前無法判斷,需要更多樣本才能釐清。

傳染病同類的不同品系間競爭激烈,若是新秀徹底取代老將並不意外。B 肝病毒在歐洲一萬年來的發展史,便是鮮明的興替實例。

歐亞大陸西部不同年代,B 肝病毒的品系存在感,以及其演化關係。圖/參考資料 1

歐亞大陸西部,延續四千年的上古霸權

137 個樣本,大部分位於歐亞大陸西部,可以看出比較詳細的端倪。簡單說:江山代有病毒出,各領風騷數千年。

距今 9000 到 11000 年前,歐洲一帶有 2 款遺傳品系;隨後的 7500 到 9000 年前,其中一款完全消失(Mesolithic 1,下圖左紅色),只剩另外一款(Mesolithic 2,下圖紫色),最早出現在高加索北部,接著在歐洲各處,缺乏農業,不定居的採集狩獵族群中廣傳。

距今 7500 到 11000 年前之間,歐亞大陸西部的 B 肝病毒型號分佈。圖/參考資料 1

接下來四千年,也就是距今 3500 到 7500 年前,歐洲和中東幾乎完全被另一群病毒佔領(WENBA,下圖綠色)。論文推測此一品系,是在距今 8000 年過後的歐洲新石器時代,隨著中東農夫移民潮進入歐洲,廣傳各地。

歐洲最初的農夫移民源於安那托利亞(現在屬於土耳其),可是約一萬年前,唯一的安那托利亞樣本卻不屬於這款(上圖左淡紅色),不是 WENBA 品系的直系祖先。

可想而知,目前取樣很有限之下,無法精準判斷各品系起源的位置與年代。每個時期可能都有多款品系共存,我們只能見到,當時存在感比較高的少數代表。

距今 3000 到 7500 年前之間,歐亞大陸西部的 B 肝病毒型號分佈。圖/參考資料 1

距今約 5000 年前,青銅時代開始之際,歐洲又有大量移民湧入,能追溯到其東方的草原地區。但是人類族群的 DNA 組成明顯改變之際,B 肝病毒卻沒有變化。或許這時歐洲、草原流行的品系是同一款,你傳我,我傳你,還是看不出差別?

反正歐亞大陸西部在這四千年間,各地的人們不管生活方式、文化差異多大,大家都共享同一款 B 肝病毒!

B肝病毒的興替:霸權崩潰與轉移

盛極四千年的 WENBA 戰隊,距今 3300 年前過後卻幾乎消失。取而代之的是至今仍然存在的 A 型品系(Genotype A,上圖右紅色、下圖左紅色),已知樣本中距今 3500 到 5000 年前分佈於中東、高加索、歐洲東緣;隨後又前進歐洲,到 1500 年前還很有存在感。

接下來興起的是 D 型品系(Genotype D,下圖藍色),與 A 型共存一段時間後,從 1500 年前起成為歐亞大陸西部的新興霸權,從此一直延續到現代。

現代到距今 3000 年前之間,歐亞大陸西部的 B 肝病毒型號分佈。圖/參考資料 1

江山代有 B 肝出,WENBA 戰隊為什麼會徹底退出江湖呢?論文推測,多半和距今 3000 多年前的氣候、政治等劇變有關。

青銅時代晚期,地中海東部、中東一帶發生大規模的崩潰潮,周圍的歐洲、埃及動蕩不安(知名的特洛伊戰爭就發生在那個時期),數個重要的政權、勢力瓦解,社會秩序崩解。希臘的邁錫尼文明,黎凡特地區的烏加里特等城邦,安那托利亞的西臺帝國都不復存在。

在人類的經濟、政治強權崩潰,人群大洗牌的同時,B 肝病毒似乎也跟著霸權轉移。

青銅時代晚期的動盪局勢。圖/取自 wiki

上古霸權仍有後裔!卻是半殘的?

然而,在古代樣本沒有取樣到的地方,WENBA 戰隊仍有後裔持續傳承,衍生出 G 型品系(Genotype G)。如今它的存在感薄弱,遺傳多樣性很低,三千餘年來應該是悄悄地活著。

奇妙的是,G 型其實不算是健全的病毒,由於突變之故,它的核心蛋白(core protein)功能受到影響,而且無法生產「B 型肝炎 E 抗原(HBeAg)」,嚴重降低它的複製和感染能力。

曾經縱橫四千年的霸權,現存唯一後裔竟然是半殘的。但是 G 型也有其厲害之處:善於和其他病毒共生。現代的 G 型感染者,多數也同時是愛滋病患。而且 G 型品系的搭便車能力,很可能不是最近出現。

進一步考察非常驚人地發現,與其類似的突變缺失,其實古代樣本中相當常見:距今 3500 到 7000 年前,總共有 14 款略有差異的 B 肝病毒具有這些缺陷。

已知歐亞大陸西部的 83 位古代 B 肝宿主中,高達 22 人同時感染有缺失的病毒,以及健全的另一款品系(包括目前主流之一的 A 型)。半殘的 G 型品系似乎就靠著搭便車,一路前進到現在。

B 肝病毒的蛋白質組成。HBeAg 是關鍵成分,但是 G 型品系無法生產。圖/取自 wiki

B型肝炎的歷史,也是全人類的歷史

感染 B 肝病毒多半不會致命,長期帶原卻會影響健康,有時候後果非常嚴重,因此被列為公衛計畫的打擊目標。台灣成功根除 B 肝病毒,是偉大的公衛成就,每一位居民都因此受益。

上萬年來普遍與人共生的 B 肝病毒,其歷史也是人類的一部分歷史。至今古代 B 肝病毒的研究,取樣幾乎都來自美洲和歐亞大陸西部,其餘地區如東亞、東南亞、非洲的樣本極少。B 肝病毒在這些地方如何演化,也令人好奇。

延伸閱讀

參考資料

  1. Kocher, A., Papac, L., Barquera, R., Key, F. M., Spyrou, M. A., Hübler, R., … & Moiseyev, V. (2021). Ten millennia of hepatitis B virus evolution. Science, 374(6564), 182-188.
  2. Study traces the evolution of the hepatitis B virus from prehistory to the present

本文亦刊載於作者部落格《盲眼的尼安德塔石匠》暨其 facebook 同名專頁

寒波_96
952 篇文章 ・ 245 位粉絲
生命科學碩士、文學與電影愛好者、戳樂黨員,主要興趣為演化,希望把好東西介紹給大家。部落格《盲眼的尼安德塔石器匠》、同名粉絲團《盲眼的尼安德塔石器匠》。
網站更新隱私權聲明
本網站使用 cookie 及其他相關技術分析以確保使用者獲得最佳體驗,通過我們的網站,您確認並同意本網站的隱私權政策更新,了解最新隱私權政策