史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-05-19, 09:06 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 KV3000修復硬碟資料之修復FAT32位C碟分區表

因4月26日CIH發作,使許多用戶的硬碟上的資料丟失,在這裡提供一種用KV3000硬碟救護箱功能手動修復硬碟分區表和BOOT表的方法。本文以修復思路為主,雖然以被CIH破壞的硬碟為例,但修復硬碟的思路大同小異,因此其他硬碟的修復仍可採用本文的思路。

  本文例子:40G硬碟,分三個區,文件格式FAT32。

  現象:4月26日被CIH破壞。用戶使用其它軟體修復過,只能找到C碟,但C碟資料均為亂碼,同時,其他分區不存在。這說明硬碟分區表不正確。

  修復方法如下:

  一、將出問題的硬碟掛在一台正常的電腦上。開機進入CMOS設置,檢測硬碟,若能檢測到,可以進行下步操作;若檢測不到,說明硬碟的電路板有問題,這時就需要換一塊與該硬碟同型號的電路板再進去行下步操作,否則,該硬碟便無法恢復。

  二、用乾淨的起始碟(軟碟)啟動電腦,此時會在DOS下,用DOS指令檢查硬碟狀態(關於DOS指令可參考相關書籍)。如果的確出現本文例子中出現的"現象",則可採用手動方法恢復。

  手動恢復工具:KV3000F6功能-硬碟急救箱。

  三、進入KV3000的F6急救箱後可看到第0扇區的情況。此扇區就是平常所說的"硬碟分區表"。此表中從"80"到"55AA"之間的參數記錄了硬碟的基本情況;再按下F2可檢視BOOT區。

  本文例子如下:(表一為硬碟分區表;表二為BOOT區I/0表)

  表一:

                    8001 0100BFE 7F7E3F00
  000080E2 5D000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 000055AA

  表二:(標準表的第13字元開始)

       02102000 02000000 00F80000 3F00FF00 3F000000
  62A9B400 142D0000 00000000 02000000 01000600

  (註:數"字元"以表中的兩個數為一個"字元",表中開始的字元為第"0字元",以後以此類推,如表一中的"80"為第"0字元","5D"為第"14字元"。)

  由表一可以看出,"80"和"55AA"都存在,從第12到第15字元表示了C碟的扇區數(也稱作C碟大小)。把這個數換算成十進制以備後用;

  80E25D00 高低換位→ 005DE280 換算為十進制(用F7)→ 6152832

  四:用F6(搜尋硬碟分區表),再按下F2=search logical Hard,Disk partition (搜尋邏輯硬碟分區表),可檢測到該硬碟的邏輯分區的情況:

  Hard Disk Total Sector Total Bytes Partition Table Sector
  D:19.008G 37126152   19008589824  6152895
  E:19.008G 37126152   19008589824  43279110
          (表三)


  可以看到,此表中與D相對應的Partition Table Sector:6152895。用這個數減掉63:6152895-63=6152832,與換算出的C碟扇區數相同(第三步中算出的)。這說明0扇區中表示C碟扇區數正確,而且D碟的分區表位置也正確。將6152895換算成十六進制數以備後用:

  6152895 換算為十六進制(用F7)→ 005DE2BF 高低換位→ BFE25D00

五、核實邏輯分區表正確性:

  1、搜尋邏輯分區:按表三中的Partition Table Sector 找到6152895(D碟分區表所在扇區)和43279110(E盤分區表所在扇區),並記下兩扇區的資料,如下:

  D:

    0001 417F0BFE BF853F00 00000880 36020000 81860FFE
  FF120663 94024780 36020000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 000055AA
        (表四)

  E:

    0001 81860BFE FF123F00 00000880 36020000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 000055AA
        (表五)

  可以看到,D碟分區表中表示的E盤起始位置(第18-19字元)和結束位置(第21-23字元):"8186";"FEFF12"與E盤分區表的起始位置(第2-3字元)"8186"和結束位置"FEFF12"(第6-8字元)相同。

  2、計算:此步中需要計算核對部分資料:

  表四:

  1第12-15字元:表示了D碟扇區數:"08803602" 高低換位→ "02368008" 換算為十進制(用F7)→ 37126152,此數與表三中D:Total Sector37126152相同,說明12-15字元正確。

  2第24-27字元:表示E盤分區表所在扇區:"06639402" 高低換位→ "02946306" 換算為十進制(用F7)→ 43279110,此數與表三中E:Partition Table Sector:4327110相同,說明24-27字元正確。

  3第28-31字元(表示D碟之後所有邏輯分區的總扇區數。本例中D碟之後僅有E盤,因此這裡表示的是E盤的扇區總數):

  "47803602" 高低換位→ "02368047" 換算為十進制(用F7)37126215。再看表三中E:Table Sector 37126152;該數加63為37126215。可以看到表四中換算出的數與表三中計算出來的數相同。說明表四的28-31字元也正確。

  (註:63是DOS在分區時,在每個分區之前保留了63個扇區,這個數較固定)

  表五:第12-15字元,表示E扇區數:"08803602" 高低換位→ "02368008" 換算為十進制(用F7)→ 37126152。此數與表三中E:Total Sector:37126152相同。說明表五中的第12-15字元正確。

  至此,由計算可得出如下結論:檢視到的D、E分區表是正確的。所以之後,可以根據D、E的分區表信息,手動寫到C碟分區表的相應位置,便可恢復邏輯分區的資料。

  六、手動修改C碟的硬碟分區表:

  工具:KV3000中硬碟急救箱(F6)裡的F5=Edit(編輯功能)。

  現在,再回到表一,從第16字元開始到第31字元均為零。這就是為什麼只有C碟而找不到D、E的原因。現在只要將正確的參數寫到相應的位置即可恢復D、E。

  從表四記下必要參數;

  1第2-3字元:D碟起始位置,寫到表一中第18-19字元處;

  2第5-7字元:D碟結束位置,寫到表一中第21-23字元處;

  3將第四步所得的D碟分區表位置:BFE25D00寫入表一第24-27字元;

  4D+E總扇區數=37126152+371261852+63×2=74252430 換算為十六進制(用F7)→ 046D008E 高低換位→ 8E006D04

  5在表一的第20字元處寫入"0F",表示邏輯分區的分區格式。"0F"表示FAT32。

  這樣,填寫後表一第16至第31字元處,結果如下:

  0000 417F0FFE BF85BFE2 5D8E006D 04000000

  這時,重新啟動電腦後,D、E的資料全部恢復。

  七、恢復C碟資料:

  1、看表二中第20-23字元"62A9B400"表示了C碟的扇區數,比較與表一中第12-15字元"80E25D00"不符,因表一中的數已證明是正確的,因此,表二中的資料是錯誤的,可按表一中的資料改過來:即把"62A9B400"改為"80E25D00"。

  2、搜尋目錄區:用F4=Search功能,在ASCII 類型:欄中輸入"command",Enter鍵後,游標會移到Starting Sector,輸入"1"Enter鍵,開始搜尋。找到後,出現"Found"字樣。按下Enter鍵檢視該頁是否為目錄區。若是則記下該頁扇區數,若不是則繼續搜尋。目錄區最明顯的特徵是可看到原來C碟中的所有目錄名,漢字為亂碼。本文例子的目錄區在第19625扇區。需做如下計算:(扇區數-63-32)/2=(19625-63-32)/2=9765 換算為十六進制(用F7)→ 2625 高低換位→ 2526。將所得到的"2526"與表二中第24-25字元"142D"比較,發現表二中該數錯誤。此時將"142D"改為"2526"。(FAT32如上計算,FAT16有所不同。)

  3、重寫FAT表:(用正常的FAT2表重寫被破壞的FAT1表),按下F4=Search,用TAB鍵切換到Hex Codes,鍵入0000F8FFFF0F(FAT表前幾個字元)Enter鍵,輸入"1"Enter鍵。找到後記下扇區數。檢視該頁,在該頁的左上方開始處可看到"F8FFFF0F"幾個字元,否則,要繼續搜尋。本文例子:FAT2位於第9860處。退出該"搜尋"界面,用F3功能翻到第9860扇區。再用Ctrl+F10(寫扇區功能)。在To Write Sector 0-[ ]輸入"95"Enter鍵;跳至Write Sector Count 輸入"1500"Enter鍵,再按兩次"N",一次"Y"。

  在完成以上步驟後,重新用軟碟啟動電腦,此時C、D、E盤被認可,資料安全恢復。再用SYS C:傳上系統,硬碟完全恢復。

  下面,我們總結一下修復步驟:


檢測硬碟→檢視硬碟狀態→分析可能原因→檢查各分區分區表及I/O表參數是否正確→檢測邏輯分區→修改出錯的部分→修改I/0表中錯的目錄區指針→用正確的FAT2表覆蓋FAT1表→重啟,資料恢復→傳系統→殺毒→制作備份資料(註:第一二步中若檢測不到硬碟或無法檢視硬碟信息,則說明硬體有問題或硬碟已物理損壞)

  幾點說明:

  1、硬碟分區表、I/0表、目錄區、FAT表均記錄了硬碟的許多信息,如果該表中的參數出現錯誤,可能造成各式各樣的情況。因此若對硬碟邏輯和物理結構或表中的資料不熟悉的情況下,千萬不要隨意改動。

  2、在操作程序中,若沒有確實的把握,請將被改動的地方記錄下來,以備隨時恢復。

  3、硬碟出現的問題因原因不同,萬不可一概而論,本文中所提到的方法有所限制,切不可隨意模仿。

  4、本文中提到的資料和參數有很大的不確定性(每塊硬碟不盡相同),所以在得到一個數後,一定要反覆驗證後方可更改。

  5、本文雖然以40G硬碟為例,其他大硬碟也可按文中的思路進行恢復。
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 10:52 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2020, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1