【教學】建立抓取硬碟 MBR (LBA:0) 磁扇區的磁碟片(解硬碟羅輯鎖的前一步)



贊助商連結


bx2aa
2004-04-17, 04:24 PM
主題:建立抓取硬碟 MBR (LBA:0) 磁扇區的磁碟片(解硬碟羅輯鎖的前一步)
作者:BX2AA (版權所有)
開發工具: MS-DOS DEBUG

45205a1e9bceb7abd885f632f4bddf50 CREATE.COM
CREATE.COM 檔案的 MD5 摘要資訊

-----------------------------------------------------------------------------------------------------------------------------

前言:

看到有些人為了硬碟壞了(BIOS 可以抓到硬碟, 但是作業系統讀不出資料)四處詢問,
而我剛好稍微了解一些開機的過程, 就先花約 10 分鐘紙上談兵,
劃了大約 33 個 CPU 指令的 助憶符號 也就是 ASSEMBLY
然後花了一個多小時使用 DEBUG 初步完成.
然後再加上一個 DISPLAY OK!! 及加上以前寫的 309Bytes 的背景文字圖案上去.
如此即完成您現在看到的 CREATE.COM

-----------------------------------------------------------------------------------------------------------------------------

軟體簡介:

可以抓取硬碟的第一個磁扇區, 包括邏輯鎖所鎖住的硬碟
或是有開機型病毒(病毒存在於 MBR 上的), 目前只設定抓取一個磁扇區, 有些可能會使用更多磁扇區, 但需要時再予以增加
只要不是硬體損壞的硬碟皆能透過此程式所建立的磁片來開機抓取硬碟(dl=80) LBA:0 的資料

相信防毒軟體廠商應該都須具備這麼一個小程式才對, 用來協助抓取開機型病毒做分析

-----------------------------------------------------------------------------------------------------------------------------

事前準備:
1.準備一張空白磁片
2.可查看磁扇區資料的軟體
PS:或是使用 DEBUG INT 13 2號功能去讀取亦可
3.本 CREATE.COM 檔請先確定 MD5 值為 4 5 2 0 5 a 1 e 9 b c e b 7 a b d 8 8 5 f 6 3 2 f 4 b d d f 5 0

-----------------------------------------------------------------------------------------------------------------------------

使用方法:(請先備份好這張磁片的資料)

1.將一張空白 3.5" 磁片放到 A: 磁碟
2.雙擊 create.com
 或是到 Command Mode 執行 create.com 立即建立一張可以抓硬碟 MBR 的磁片
3.看到 OK!! 建立完成
4.將其他硬碟拆下, 再將有問題的硬碟裝上
5.進 BIOS 設定 A: 開機
6.看到類似如下畫面即完成 MBR 的擷取.
圖 1

7.再將這張 3.5" 磁片拿到正常的系統
8.使用可以查看磁扇區資料的程式查看 Cylinder:79 Head:1 Sector:2 就是在 LBA:2863 的地方
9.然後查看偏移位置 01BEH 開始的 16 Bytes

80 01 01 00 前面這四個 Bytes 如下圖
圖 2

80 表示 Active 正常的 MBR 是會將這 16 Bytes 代表的 Partition 去做 Initial Program Load
01 表示起始磁頭 如果被改為 00 就變成指到 MBR 那就會再把 同一個 Partition 當第二個
  作業系統會一直找出所有的 Partition 所以開機到載入 IO.SYS 就停住.
  (因為有很多 Partition 他還在找, (Disk Partition Table) DPT LOOP 了)
  就算開起來了, Partition 資訊也是錯的(找不到 BPB) 不能使用

-----------------------------------------------------------------------------------------------------------------------------

結語:

有了這些知識之後就知道該如何解鎖了.

就是作另一張開機磁片, 把硬碟的 Cylinder:0 Head:0 Sector:1 內的 01BFh 改為 01 存回去就可以了.
要解鎖的程式不到 30h Bytes 吧!留一些事讓您自己處理.
拿我以前用 DEBUG 來 BACKUP MBR 那 16h 22 Bytes 再加 14h 就是再加 20 bytes 就能解鎖了

不然使用有些 BIOS 有 Utility Tools 選項內的 Low Level Format 選項
來 Format 硬碟的 Cylinder:0 Head:0 Sector:1 即可.

也可以攔截 INT 13 啟動後再用 DEBUG 去修改, 但是看完 解開硬碟邏輯鎖死的一種有效方法 卻發現攔截 INT 13 是 LBA:0 損壞比較合適
且, 不知是作者巧思, 還是意外構成了一個笨蛋的難題, 我研究三四天才體會出其中的技術.
也因此能擺脫 IO.SYS 的束縛.
另一個 78 Bytes 拷貝機也是在擺脫 IO.SYS 後的一個產物.

-----------------------------------------------------------------------------------------------------------------------------

注意事項:

如果不幸您使用放了重要資料的磁片執行了 CREATE.COM 一次 可以將
Cylinder:79 Head:1 Sector:1 內容蓋回 Cylinder:0 Head:0 Sector:1
即可恢復除了 Cylinder:79 Head:1 Sector:1 磁扇區 以前的所有資料

如果這張放了重要資料的磁片執行超過一次以上 CREATE.COM 的寫入,
請拿其他磁片的 Cylinder:0 Head:0 Sector:1 蓋到這張磁片的 Cylinder:0 Head:0 Sector:1
或使用類似 Ontrack EasyRecovery 這類的軟體來救.

但被覆蓋掉的資料將無法救回.

-----------------------------------------------------------------------------------------------------------------------------

參考資料:
解開硬碟邏輯鎖死的一種有效方法
王江民的邏輯炸彈剖析
硬盤主引導程序剖析
HardDisk,Partition,Boot,OSLoader專題
還參考了相當多的資料, 族繁不及備載, 主要的是上列四篇文章.

-----------------------------------------------------------------------------------------------------------------------------

DE BX2AA
2004.04.17

贊助商連結


bx2aa
2004-04-17, 04:25 PM
圖 1

bx2aa
2004-04-17, 04:27 PM
圖 2

tomshan
2004-04-18, 04:43 AM
看不懂.......
這對我來說實在太高深
不過我相信對很多人卻是不可或缺的資料
給你拍拍手....
^^

bx2aa
2004-04-19, 04:17 PM
主題:建立抓取硬碟 MBR (LBA:0) 磁扇區的磁碟片(解硬碟羅輯鎖的前一步, 與建立解硬碟邏輯鎖的磁片)
作者:BX2AA 葉嘉勝(版權所有)
開發工具: MS-DOS DEBUG

45205a1e9bceb7abd885f632f4bddf50 CREATE.COM 建立抓取硬碟 MBR (LBA:0) 磁扇區的磁碟片
2bdf0b745b275fb18be78b7bdda47895 UNLOCK.COM 建立解硬碟羅輯鎖的磁碟片,
da00fea14fc8d8b154c5eabd8ae6c50c LOCK.COM 如果遭修改為此 MD5 值, 將變為邏輯上鎖住硬碟
檔案的 MD5 摘要資訊 如圖3
UNLOCK.COM 是從 CREATE.COM 直接修改其中 14 Bytes 而成.
LOCK.COM 從 UNLOCK.COM 修改三個 Bytes 而成.

沒有 Free Unlock.com 是因為加鎖(LOCK.COM)和解鎖(UNLOCK.COM)只在一線之間, 而這條線是直的
對於了解的人應該知道一線之間的意義何在, 但是對於不清楚的人可能很難體會出一線之間的精華所在
雖然放出 Create.com 已經是冒險了,我相信有能力修改 Create.com 成為 Unlock.com 或 LOCK.COM 的人應該修養夠高, 不會亂去鎖別人的硬碟.

-----------------------------------------------------------------------------------------------------------------------------

前言:

看到有些人為了硬碟壞了(BIOS 可以抓到硬碟, 但是作業系統讀不出資料)四處詢問,
而我剛好稍微了解一些開機的過程, 就先花約 10 分鐘紙上談兵,
劃了大約 33 個 CPU 指令的 助憶符號 也就是 ASSEMBLY
然後花了一個多小時使用 DEBUG 初步完成.
然後再加上一個 DISPLAY OK!! 及加上以前寫的 309Bytes 的背景文字圖案上去.
如此即完成您現在看到的 CREATE.COM 以及 UNLOCK.COM.

-----------------------------------------------------------------------------------------------------------------------------

軟體簡介:

可以抓取硬碟的第一個磁扇區, 包括邏輯鎖所鎖住的硬碟, 以及使用 UNLOCK.COM 建立解鎖磁片
或是有開機型病毒(病毒存在於 MBR 上的), 目前只設定抓取一個磁扇區, 有些可能會使用更多磁扇區, 但需要時再予以增加
只要不是硬體損壞的硬碟皆能透過此程式所建立的磁片來開機抓取硬碟(dl=80) LBA:0 的資料

相信防毒軟體廠商應該都須具備這麼一個小程式才對, 用來協助抓取開機型病毒做分析

-----------------------------------------------------------------------------------------------------------------------------

事前準備:
1.準備一張空白磁片
2.可查看磁扇區資料的軟體
PS:或是使用 DEBUG INT 13 2號功能去讀取亦可
3.本 CREATE.COM 檔請先確定 MD5 值為 4 5 2 0 5 a 1 e 9 b c e b 7 a b d 8 8 5 f 6 3 2 f 4 b d d f 5 0
4.本 UNLOCK.COM 檔請先確定 MD5 值為 2 b d f 0 b 7 4 5 b 2 7 5 f b 1 8 b e 7 8 b 7 b d d a 4 7 8 9 5

-----------------------------------------------------------------------------------------------------------------------------

使用方法:(請先備份好這張磁片的資料)

1.將一張空白 3.5" 磁片放到 A: 磁碟
2.雙擊 create.com
 或是到 Command Mode 執行 create.com 立即建立一張可以抓硬碟 MBR 的磁片
3.看到 OK!! 建立完成
4.將其他硬碟拆下, 再將有問題的硬碟裝上
5.進 BIOS 設定 A: 開機
6.看到類似如下畫面即完成 MBR 的擷取.
圖 1

7.再將這張 3.5" 磁片拿到正常的系統
8.使用可以查看磁扇區資料的程式查看 Cylinder:79 Head:1 Sector:2 就是在 LBA:2863 的地方
9.然後查看偏移位置 01BEH 開始的 16 Bytes

80 01 01 00 前面這四個 Bytes 如下圖
圖 2

80 表示 Active 正常的 MBR 是會將這 16 Bytes 代表的 Partition 去做 Initial Program Load
01 表示起始磁頭 如果被改為 00 就變成指到 MBR 那就會再把 同一個 Partition 當第二個
  作業系統會一直找出所有的 Partition 所以開機到載入 IO.SYS 就停住.
  (因為有很多 Partition 他還在找, (Disk Partition Table) DPT LOOP 了)
  就算開起來了, Partition 資訊也是錯的(找不到 BPB) 不能使用
10.確定為硬碟邏輯鎖所鎖住時, 使用 UNLOCK.COM 建立一張解鎖磁片
11.使用解鎖磁片解開硬碟邏輯鎖所鎖住的硬碟
解鎖時如果出現
     !!! WARNING !!!
DIsk Boot sector is to be modified
Type "Y" to accept, any Key to abort
    Award Software, Inc.
表示 BIOS 內的 Virus Warning: Enabled
PS:如果四個或是整個 Disk Partition Table 鏈表皆被鎖住時 Unlock.com 建立的磁片將失效
須先另外建立一張覆蓋 Disk Partition Table 為 16 個 00 的磁片, 然後再使用可以編輯 Sector 的軟體
前往各個 Partition 修改, 或您自己寫出修改整個 DPT 鏈表的開機程式
如果要修改硬碟大於 8GB 位置以後,記得要使用 擴展 INT 13 的 42 號 和 43 號功能

-----------------------------------------------------------------------------------------------------------------------------

結語:

有了這些知識之後就知道該如何解鎖了.

就是作另一張開機磁片, 把硬碟的 Cylinder:0 Head:0 Sector:1 內的 01BFh 改為 01 存回去就可以了.
要解鎖的程式不到 30h Bytes 吧!留一些事讓您自己處理.
拿我以前用 DEBUG 來 BACKUP MBR 那 16h 22 Bytes 再加 14h 就是再加 20 bytes 就能解鎖了

不然使用有些 BIOS 有 Utility Tools 選項內的 Low Level Format 選項
來 Format 硬碟的 Cylinder:0 Head:0 Sector:1 即可.

也可以攔截 INT 13 啟動後再用 DEBUG 去修改, 但是看完 解開硬碟邏輯鎖死的一種有效方法 卻發現攔截 INT 13 是 LBA:0 損壞比較合適
且, 不知是作者巧思, 還是意外構成了一個笨蛋的難題, 我研究三四天才體會出其中的技術.
也因此能擺脫 IO.SYS 的束縛.
另一個 78 Bytes 拷貝機也是在擺脫 IO.SYS 後的一個產物.

-----------------------------------------------------------------------------------------------------------------------------

注意事項:

如果不幸您使用放了重要資料的磁片執行了 CREATE.COM 一次 可以將
Cylinder:79 Head:1 Sector:1 內容蓋回 Cylinder:0 Head:0 Sector:1
即可恢復除了 Cylinder:79 Head:1 Sector:1 磁扇區 以前的所有資料

如果這張放了重要資料的磁片執行超過一次以上 CREATE.COM 的寫入,
請拿其他磁片的 Cylinder:0 Head:0 Sector:1 蓋到這張磁片的 Cylinder:0 Head:0 Sector:1
或使用類似 Ontrack EasyRecovery 這類的軟體來救.

但被覆蓋掉的資料將無法救回.

UNLOCK.COM 所建立的磁片沒有將磁片 Cylinder:0 Head:0 Sector:1 複製到
Cylinder:79 Head:1 Sector:1 所以請使用其他磁片的 Cylinder:0 Head:0 Sector:1
來覆蓋 UNLOCK.COM 所建立磁片的 Cylinder:0 Head:0 Sector:1

-----------------------------------------------------------------------------------------------------------------------------

參考資料:
解開硬碟邏輯鎖死的一種有效方法
王江民的邏輯炸彈剖析
硬盤主引導程序剖析
HardDisk,Partition,Boot,OSLoader專題
還參考了相當多的資料, 族繁不及備載, 主要的是上列四篇文章.

-----------------------------------------------------------------------------------------------------------------------------

DE BX2AA
2004.04.19

本程式只使用於解開遭邏輯鎖所鎖住的硬碟.
若有人修改本程式去惡作劇鎖住任何人的硬碟與本人無關.

圖3