2009年3月9日 星期一

檔案隱藏

不是什麼新的東西,這個方法是給那種有些檔案不想被別人發現的人用的....
需要的工具為 WinRAR以及 Windows 作業系統,其他的作業系統或許可以用
其他的壓縮格式(如 tgz、tar等等,但是還不確定可行性)

顯檔就是要偽裝成的檔案,這裡採用 .jpeg 圖檔
隱檔就是要隱藏的檔案,這裡當然就是使用 .rar 壓縮檔



假設我們要隱藏的檔案是 b.rar 裡面放了一些刺激的東西(如影片、圖片等)
不想被別人看見。

要顯示給別人看的檔案選用健康的 JPEG 圖檔(如難看的 Windows XP桌布)
假設是 a.jpg 。

兩個檔案放在同一個目錄底下,執行命令提示字元(開始→執行 輸入"cmd")
移動到該目錄底下(不會的話 google 找 cmd 指令)
輸入: copy /b a.jpg+b.rar c.jpg
(注意,顯檔一定要在前面)
就可以把兩個檔案合併成 c.jpg,這時候開啟 c.jpg 只能看到健康的圖檔
如果把 .jpg 改成 .rar 就可以看到裡面要藏的東西了。

但是這個方法是有失敗的可能的,這個牽扯到 jpg 圖檔和 rar 壓縮檔的讀取方式(檔案組態)

jpg 圖檔的規定是第一、二個 byte 必須為 FF D8,代表這是一個 jpg 圖檔。
一直讀取到最後有連續的兩個 byte 分別是 FF D9 結束,也就是 FF D9 後面的東西
完全不會去理會。

也就是說如果在 FF D9 後面還有其他資料,讀取 jpg 圖檔的程式會忽略掉。
可以衍生一個技巧,如果把圖檔中某個地方插入兩個 byte:FF D9 那麼檢視這張圖片的時候
後面的部份就會消失。

然而 RAR 檔的讀取方式是從頭開始尋找一連串的連續 byte 資料:
52 61 72 21 1A 07 00 這一組連續資料(共7 bytes),一但讀取到之後
將會認定之後為 WinRAR 檔案,直到讀取到連續資料 C4 3D 7B 00 40 07 00
為止。

而指令 copy /b 就是完完全全將兩個檔案給結合起來(依照給的前後順序)
利用這兩個檔案的特性,就可以做到檔案隱藏的功能。

所以說,如果圖檔中,有那麼剛剛好遇到連續七個 bytes 組合是:
52 61 72 21 1A 07 00 ,那麼這個方法就會失效(機率很低)。

不過那也只是裝個樣子用的,可以多試幾個圖檔,來做偽裝。

只要知道這個原理,自己也可用用程式語言(VB、C、Java、PHP....)
來製作簡單的檔案偽裝程式。
【如要轉載此文章請註明出處】 by darkk6

沒有留言:

張貼留言