光碟目錄隱藏原理及破解方法

黨偉_90發表於2018-07-11

此處的隱藏,並不是只指一般屬性為H的目錄,用該方式修改後的目錄,不僅在Windows下面看不到,就是在DOS下用dir/a也看不到,雖然你看不到,但它卻是存在於光碟上的,你可以用cd(目錄名)進入此目錄進行操作。

用這種方式燒錄出的光碟保密性絕對一流,試想誰會知道這張光碟還會有一個目錄,就算有人知道光碟上有隱藏目錄,但他卻缺少了最重要的一把鑰匙,他不知道目錄名。

根據ISO9660 Directory Record(ISO 9660 記載規定)每一個目錄,檔案都有一定的格式規定,記錄,內容如下:

 

Bytes 記載規定
  01 Length of directory Record
  02 Extended Attribute Record Length
  03~10 Location of Extent
  11~18 Date Length
  19~25 Recording Date and Time
  26 File Flags 
  27 File Unit Size
  28 Interleave Gap Size
  29~32 Volume Sequence Number
  33 Length of File Identifier
  ……
  由上表可以看出:

  第11~18個Bytes記載檔案的長度
  第19~25個Bytes記載資料夾的建立的日期和時間
  第26個Bytes記載資料夾的屬性
  第33個Bytes記載資料夾名稱的字元長度

  “隱藏目錄”的原理就是依照上表記載的第26個Bytes位置,而進行修改ISO檔案,讓刻出來的光碟產生看不到但可執行的檔案或目錄的特異功能。

  想要刻出這樣的光碟只需要兩個軟體,其中一個當然是必不可少的燒錄軟體,另一個就是可編輯二進位制程式碼的ASCII字元編輯器,這裡我使用的是Ultra edit32而且操作起來很方便,首先是要做一個Image(就是製作一個cd映象),注意製作映象時檔案系統必須是ISO9660。(如果使用JOLIET格式,在DOS或Windows3.1都有效,但在Windows95卻原形畢露。因此請將Joliet檔案格式改為ISO 9660格式。)

  接下來任務就由Ultra edit32來出場了,用Ultra edit32開啟剛才製作的映象檔案,點選search選單下的Find,彈出一個對話方塊,在Find what中填入你想要隱藏的資料夾(在此我是想要隱藏down這個目錄),並在Find ASCII前打勾,現在就可以查詢了,記住查詢到第一個後再連按兩下F3才是要修改的地方(第三個記載目錄名的扇區),在前面的“ISO 9660位置記載”表中,Bytes位置到底改如何得知呢?第一個Bytes又是從何時開始的呢?如果你是從第一個Bytes開始查詢是有點麻煩,但如果你能從後面倒數,呵呵那可簡單多了,從表中得知第33個Bytes記載資料夾名稱的字元長度,而你用Ultra edit32查詢到的就是第33個Bytes,就像down目錄名就是程式碼44 4F 57 4E,請以44算起,倒數第8個字串(兩個數字算一個),就是第26個Bytes,把原來的02改成04 05 06 07中的任一位元組 ,然後存檔退出。

  
  附:為什麼可以修改成04 05 06 07 中的任意位元組?

  因為如果我們把倒數第8個位元組02換算成八進位制為00000010,最後一個數字是bit0 ,倒數第二位是bit1,根據規定當
  bit0= 1表示檔案屬於隱藏bit1=1 表示是目錄
  bit0= 0表示檔案屬於正常bit1= 0 表示是檔案
 

  現在大家就好理解這樣修改的理由了吧。

 

如果只是存放資料的目錄那就沒有辦法。

如果是光碟內的程式讀取隱藏目錄的內容,那麼使用procmon 工具就可以跟蹤到隱藏目錄的訪問。

相關文章