線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1541
推到 Plurk!
推到 Facebook!

安 全 處 理 硬 盤 的 幾 個 有 效 方 法

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-09 01:55:16 IP:61.64.xxx.xxx 未訂閱
此為轉貼資料 http://www.pcworld.com.cn/98/manus/9806/061001e.html 安 全 處 理 硬 盤 的 幾 個 有 效 方 法 李 莉 莉 一. 解 除 硬 盤 分 割 的 妙 法 ---- NORTON8.0 中 的DISKREET. SYS 提 供 的 加 密 方 法 確 實 很 好, 其 加 密 的 程 度 經 過 美 國 中 央 情 報 局 測 試, 可 以 說 是 無 法 解 密, 當 你 忘 記 了 口 令 怎 麽 辦? 它 占 去 了32MB 的 硬 盤 就 無 法 使 用。 如 果 把 硬 盤 格 式 化, 盤 上 有 用 的 重 要 數 據 就 會 丟 失。 下 面 介 紹 一 個 簡 單 的 刪 除 辦 法: ---- 1. 在 有 加 密 盤 符 的 硬 盤 上 用DIR/A, 可 以 發 現 一 個 以@ #! 爲 擴 展 名 的 文 件, 其 大 小 與 建 立 加 密 盤 符 大 小 相 等。 ---- 2. 用ATTRIB 可 以 發 現 其 屬 性 爲S、H、R。 ---- 3. 用ATTRIB 可 以 改 變 其 屬 性:“ATTRIB -S-H-R *.@ #!”。 ---- 4. 用DEL 就 可 以 輕 松 的 刪 除 它:DEL *.@ #! ---- 這 樣 硬 盤 的 其 它 數 據 保 住 了, 空 間 也 有 了。 二. 不 破 壞 硬 盤 數 據 進 行 重 新 分 區 的 方 法 ---- 大 家 知 道 新 購 進 的 機 器 在 硬 盤 當 中 大 都 附 帶 了 很 多 軟 件 而 且 只 有 一 個 分 區C, 而 在 實 際 應 用 中 我 們 常 常 需 要 多 個 區, 如 果 先 備 份C 盤 中 的 內 容 然 後 再 分 區, 工 作 量 又 很 大。 我 經 過 摸 索 找 出 了 一 種 比 較 簡 單 的 方 法, 在 不 破 壞 數 據 的 情 況 下 可 對 硬 盤 進 行 重 新 分 區, 過 程 如 下: ---- 首 先 利 用CHKDSK /F 來 收 回 磁 盤 丟 失 的 空 間, 再 用DOS6. XX 提 供 的 磁 盤 優 化 工 具 Defrag 對 硬 盤 進 行 優 化, 檢 查 一 下 磁 盤 的 利 用 情 況, 來 確 定 分 區 的 大 小。 然 後 利 用 Debug 將 分 區( 即C 盤) 引 導 扇 區 的 內 容 讀 出 形 成 一 個 文 件( 備 用), 具 體 的 執 行 過 程 如 下: A:\>DEBUG -N BOOT -L 200 2 0 1 -RCX CX:0000 :0200 -W 200 writing 00200 bytes -Q ---- 接 著 利 用FDISK 命 令 刪 除 主DOS 分 區, 對 硬 盤 重 新 分 區, 分 區 的 大 小 可 根 據 自 己 的 需 要, 但 一 定 要 防 止 將 原 來C 盤 上 的 數 據 分 割 在 兩 個 區, 否 則 會 造 成 數 據 的 丟 失。 注 意: 分 完 區 以 後 要 設 置C 區 爲 主 引 導 區, 絕 對 不 要 對C 盤 進 行 格 式 化! ---- 下 面 的 操 作 是 將 備 份 出 來 的 分 區 引 導 扇 區 的 內 容 重 新 寫 回 原 處: A:\>DEBUG -N BOOT -L 200 -A 100 XXXX:0100 MOV AX 0301 XXXX:0103 MOV BX 0200 XXXX:0106 MOV CX 0001 XXXX:0109 MOV DX 0180 XXXX:010C INT 13 XXXX:010E INT 20 XXXX:0110 -G=100 program terminated normally -Q ---- 操 作 完 以 後, 用 軟 盤 重 新 啓 動 機 器, 利 用SYS C: 將 系 統 傳 送 至C 盤, 格 式 化 新 分 出 來 的 區, 這 時 你 的 硬 盤 上 即 有 多 個 分 區 了。 ---- 在 操 作 之 前, 請 你 先 格 式 化 一 張 系 統 盤, 拷 出 一 些 必 要 的 文 件Fdisk.EXE、Debug. EXE、 SYS.COM。 只 要 你 按 照 上 面 的 方 法 正 確 地 去 操 作, 不 必 擔 心 原 來C 盤 上 的 數 據 丟 失。( 建 議: 爲 防 止 誤 操 作, 分 區 前 最 好 做 硬 盤 備 份。) 三. 隱 藏 硬 盤 邏 輯 驅 動 器 的 方 法 ---- 隨 著 計 算 機 硬 盤 容 量 的 逐 漸 增 加, 多 數 用 戶 都 在 一 個 硬 盤 上 建 立 多 個 邏 輯 驅 動 器, 並 把 自 己 獨 享 的 文 件 或 系 統 單 獨 放 在 某 個 邏 輯 盤 上, 用DOS 外 部 命 令SUBST 把 一 個 邏 輯 盤 與 另 一 個 邏 輯 盤 上 的 某 一 子 目 錄 相 連 接, 並 將 其 加 到Autoexec.bat 文 件 中。 但 此 法 對 一 般 熟 悉DOS 的 用 戶 來 說, 只 要 用 命 令SUBST 加 參 數 /d 即 可 解 除 聯 接, 所 以 希 望 能 找 一 種 更 可 靠 有 效 的 方 法 隱 藏 自 己 的 邏 輯 盤。 ---- 本 文 通 過 對DOS 硬 盤 管 理 的 主 引 導 記 錄 中 分 區 表 的 分 析, 給 出 了 用Diskedit (Nortin8.0 的 一 個 應 用 程 序) 。 尋 找 邏 輯 盤 分 區 表 及 修 改 分 區 表, 從 而 隱 藏 邏 輯 盤 的 具 體 方 法。 ---- 硬 盤 的 主 引 導 記 錄 在 硬 盤 的0 磁 頭0 柱 面1 扇 區。 主 引 導 記 錄 由 三 部 分 組 成:(1) 主 引 導 程 序;(2) 四 個 分 區 表;(3) 主 引 導 記 錄 有 效 標 志 字。 詳 見 表1。 ---- 表1 主 引 導 記 錄 結 構 位 置 內 容 0000H -00D9H 主 引 導 記 錄 代 碼 區 00DAH -01BDH 空 閑 區 01BEH -01CDH 分 區1 結 構 信 息 01CEH -01DDH 分 區2 結 構 信 息 01DEH -01EDH 分 區3 結 構 信 息 01EEH -01FDH 分 區4 結 構 信 息 01FEH -01FFH 55 PAAH 主 引 導 記 錄 有 效 標 志 ---- 分 區 表 自 偏 移1BEH 處 開 始, 分 區 表 共64 個 字 節, 表 中 可 填 入 四 個 分 區 信 息, 每 十 六 個 字 節 爲 一 個 分 區 說 明 項, 這16 個 字 節 含 義 詳 見 表2。 ---- 必 須 注 意: 扇 區 號 的 高 二 位 占 用 柱 面 號 所 在 字 節 的 最 高 二 位, 即 柱 面 號 爲10 位, 扇 區 號6 位。 ---- 表2 分 區 結 構 信 息 偏 移 長 度 含 義 00H 1 活 動 分 區 指 示 符, 該 值 爲80H 表 示 爲 可 自 舉 分 區 ( 僅 有 一 個), 該 值 爲00H 表 示 其 餘 分 區。 01H 1 分 區 起 始 磁 頭 號。 02H 1 低6 位 是 分 區 開 始 的 扇 區, 高2 位 是 分 區 開 始 的 柱 面 的 頭 兩 位。 03H 1 分 區 開 始 的 起 始 柱 面 號 的 低8 位。 04H 1 系 統 標 志, 該 值 爲01H 表 示 采 用12 位FAT 格 式 的DOS 分 區, 該 值04H 表 示 采 用16 位FAT 格 式 的DOS 分 區, 該 值 爲05H 表 示 爲 擴 展DOS 分 區, 爲06H 表 示 爲DOS 系 統。 05H 1 分 區 終 止 頭 號 06H 1 低6 位 爲 分 區 結 束 的 扇 區 號, 頭2 位 爲 結 束 柱 面 號 的 前2 位。 07H 1 分 區 結 束 柱 面 號 的 低8 位。 08H 4 本 分 區 前 的 扇 區 數, 低 位 字 節 在 前。 0CH 4 本 分 區 總 的 扇 區 數, 低 位 字 節 在 前。 ---- 1. 邏 輯 盤 分 區 表 的 尋 找 ---- 下 面 以 一 台 微 機 硬 盤 分 區 表 爲 例, 說 明 如 何 用Diskedit.exe 尋 找 邏 輯 盤 分 區 表。 ---- 首 先 運 行Diskedit.exe, 用object 菜 單 的Partition table( 分 區 表) 將 硬 盤0 磁 頭 0 柱 面1 扇 區 的 數 據 讀 出, 這 是 第 一 個 分 區 表( 自 偏 移01BEH 處 開 始), 詳 見 表3。 ---- 表3 第 一 個 分 區 表 80 01 01 00 06 1F 3F 98 3F 00 00 00 A1 B4 04 00 00 00 01 99 05 1F BF 0E E0 B1 04 00 40 81 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 這 裏, 每 行 十 六 個 字 節, 爲 一 個 分 區 說 明, 數 據 爲 十 六 進 制。 ---- 第 一 個 分 區: 活 動 分 區 指 示 符 爲80H, 表 示 該 分 區 爲 可 自 舉 分 區。 ---- 系 統 標 志 爲06H 表 示 是DOS 系 統, 即C 盤。 ---- 第 二 個 分 區: 系 統 標 志 爲05H, 說 明 該 分 區 是 擴 展Dos 分 區。 ---- 第 三、 四 個 分 區 數 據 均 爲00H, 沒 有 定 義。 ---- 從 擴 展DOS 分 區 說 明 項( 即 第 二 個 分 區) 知 下 一 個 分 區 表 位 於: 起 始 磁 頭 爲0 頭, 起 始 柱 面 爲99H=153D, 起 始 扇 區 爲1 扇 區。 ---- 利 用Diskedit 的Physical Sector 項。 把 第153 簇,0 磁 頭1 扇 區 的 數 據 讀 出, 得 到 第 表2 個 分 區 表, 詳 見 表4( 自 偏 移1BEH 處 開 始)。 ---- 表4 第 二 個 分 區 表 00 01 01 99 06 1F 7F C9 3F 00 00 00 A1 61 09 00 00 00 41 CA 05 1F BF 0E E0 61 09 00 60 1F 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 該 分 區 表 的 格 式 和 含 義 同 第 一 個 分 區 表。 ---- 第 一 個 分 區 說 明 項: 該 分 區 指 示 符 爲00H, 說 明 爲 不 可 引 導 分 區。 系 統 標 志 字 節 爲06H 說 明 爲DOS 分 區, 即 邏 輯D 盤。 ---- 第 二 個 分 區 說 明 項: 系 統 標 志 字 節 爲05H, 說 明 是 擴 展DOS 分 區 ---- 第 三, 四 個 分 區 說 明 項 數 據 均 爲00H 沒 有 定 義。 ---- 由 第 一 個 分 區 說 明 項 知D 盤 開 始 於153 簇0 爲1 扇 區。 ---- 由 擴 展 分 區 說 明 項 知, 擴 展 分 區 表 起 始 簇 號 爲01CAH=458D, 起 始 磁 頭 爲0 頭,1 扇 區。 ---- 再 次 利 用Diskedit 的Physical Sector, 把458 簇0 磁 頭1 扇 區 的 內 容 讀 出( 自 偏 移0 1BEH 處 開 始), 得 到 第 三 個 分 區 表, 詳 見 表5。 ---- 表5 第 三 個 分 區 表 00 01 41 CA 06 1F BF 0E 3F 00 00 00 21 1F 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 這 是 第 三 個 分 區 表 ---- 該 分 區 表 的 第 一 個 分 區 說 明 項 表 明, 本 分 區 是DOS 分 區, 不 可 引 導。 ---- 自 第 二 個 分 區 說 明 項 開 始, 全 爲00H 說 明 後 面 不 再 有 分 區 表。 ---- 由 上 可 知: ---- 每 一 個 分 區 表 中 擴 展 分 區 說 明 項 實 際 上 指 示 下 一 個 分 區 表 的 位 置 ( 簇, 磁 頭 號, 扇 區 號)。 最 後 一 個 分 區 表 沒 有 擴 展 分 區 說 明 項。 ---- 每 一 個 分 區 表 都 會 有 一 個 實 際 分 區 說 明 項, 也 就 是 對 邏 輯 盤 的 實 際 起 始、 終 止 位 置 進 行 說 明。 ---- 除 邏 輯 盤C 主 引 導 記 錄 及 分 區 表 共 占 用 一 個 扇 區, 其 它 分 區 表 則 各 占 一 個 扇 區, 自 該 扇 區01BEH 處 開 始, 以55AAH 結 束。 ---- 2. 邏 輯 盤 的 隱 藏 ---- 如 將D 盤 隱 藏, 則 首 先 找 到C 盤 主 引 導 扇 區(0 簇0 頭1 扇 區) 中 的 分 區 表( 自 偏 移1BEH 處) 。 讀 出 擴 展 分 區 說 明 項 的 數 據, 根 據 上 面 介 紹 方 法, 找 到 第 二 個 分 區 表。 將 該 分 區 表 中 的 第 一 個 分 區 說 明 項 中 的 系 統 標 志 字 節06H 修 改 爲00H ( 表 示 無 此 分 區), 則DOS 重 新 啓 動 後, 就 會 繞 過 該 分 區 而 將E 盤 當 作D 盤, 從 而 達 到 隱 藏D 盤 的 目 的。 ---- 如 想 隱 藏C 盤, 則 將 第 一 個 分 區 說 明 項 的06H 改 爲00H, 則 用 軟 盤 啓 動 後, 就 會 將D 盤 當C 盤,E 盤 當D 盤。 ---- 也 就 是 說, 第 一、 第 二、 第 三 分 區 表 中 的 實 際 分 區 說 明 項 按 其 順 序 分 別 描 述C、D、 E 盤。 如 將 某 一 分 區 表 說 明 項 的 系 統 標 志 字 節006H 改 爲00H,DOS 便 認 爲 沒 有 該 分 區( 或 該 邏 輯 盤 沒 有 使 用), 而 將 下 一 個 分 區 表 所 描 述 的 分 區( 或 邏 輯 盤) 當 作 現 在 的 邏 輯 盤。 ---- 如 想 恢 複 已 隱 藏 的 邏 輯 盤, 只 需 將 對 應 分 區 表 的 系 統 標 志 字 節 還 原 即 可。 四. 給 硬 盤 邏 輯 分 區 加 寫 保 護 的 方 法 ---- 實 現 硬 盤 寫 保 護 有 著 名 軟 件ADM、DM, 安 裝 它 們 都 需 要 先 對 硬 盤 重 新 格 式 化 分 區, 倘 若 硬 盤 上 已 有 許 多 文 件, 就 會 破 壞 原 有 文 件。 基 於 這 一 點, 本 人 用TurboC + +3 .0, 編 譯 模 式Tiny, 用TASM 配 套 程 序, 對Fdisk 分 區 的 硬 盤,MS -DOS6 .22 下 編 譯 通 過 了 一 個 硬 盤 寫 保 護 程 序WRTPRT .C, 程 序 簡 單 易 行。 ---- 其 實 現 原 理 很 簡 單, 衆 所 周 知, 幾 乎 所 有 與 磁 盤 操 作 有 關 的 調 用, 最 後 都 要 轉 到 BIOS 中 的INT13。 因 此 我 們 只 需 編 制 一 小 段 內 存 駐 留 程 序 接 管INT13, 使 所 有 的 磁 盤 操 作 都 必 須 先 經 過 該 駐 留 程 序 的 檢 測, 若 是 寫 操 作 則 攔 截 之, 若 爲 讀 操 作 則 調 用 原INT1 3 使 之 正 常 運 行。 ---- 還 有 一 個 問 題 就 是 硬 盤 常 常 被 分 爲 多 個 邏 輯 分 區, 用 戶 可 能 只 想 對 其 中 一 個 或 幾 個 分 區 實 現 寫 保 護。 爲 此, 我 們 得 分 析 一 下INT13 的 入 口 參 數 及 硬 盤 分 區 表 鏈。 INT13 的 入 口 參 數 有: AH= 功 能 號( 其 中3、5、7、0bH、0fH、13H、19H 爲 寫 操 作) AL= 要 讀 / 寫 的 扇 區 數 CH= 柱 面 號 CL= 扇 區 號 DH= 磁 頭 號 DL= 驅 動 器 號( 其 中0 爲A:,1 爲B:,80H 爲 第 一 個 硬 盤) ---- 從AH 中 判 斷 是 否 爲 寫 操 作 而 決 定 是 否 攔 截 之, 從DL 中 可 以 判 斷 是 軟 盤 還 是 硬 盤, 最 後 一 個 問 題 就 是 怎 樣 判 斷 是 邏 輯C 區 還 是D 區、E 區 … … 它 們 是 不 是 應 該 寫 保 護 的 盤。 ---- 我 們 用DEBUG 輸 入 一 小 段 彙 編 程 序 movdl,80; 驅 動 器 號 movdh,0; 磁 頭 號0 movch,0; 柱 面 號0 movcl,1; 扇 區1 moval,1; 扇 區 數 movbx,2000 movah,2; 讀 磁 盤 int13 int3 讀 出C 盤0 頭0 柱1 扇 區 的 內 容 xxxx:21be80010100 01031168 . . . . . . xxxx:21ce00000169 . . . . . . ---- 偏 移1BF ~1C1 是C 區 的 起 始 磁 頭( 簡 稱H)、 起 始 扇 區( 簡 稱S)、 起 始 柱 面( 簡 稱C) ---- 偏 移1C3 ~1C5 是C 區 的 終 止H、 終 止S、 終 止C ---- 偏 移1CF ~1D1 是D 區 的 起 始H、 起 始S、 起 始C ---- 我 們 可 把1CF ~1D1 的 數 據 分 別 代 入 上 面 彙 編 程 序 的dh, cl,ch, 同 樣 可 讀 出D 區 的 分 區 信 息。 ---- xxxx .21be00010169 010311cc . . . . . . ---- xxxx .21ce000001cd 05 . . . . . . ---- 其 中, 偏 移1BF ~1C1 是D 區 的 起 始H、 起 始S、 起 始C; 偏 移1C3 ~1C5 是D 區 的 終 止H、 終 止S、 終 止C; 偏 移1CF ~1D1 是E 區 的 起 始H、 起 始S、 起 始C。 同 樣 的 道 理, 我 們 可 讀 出E 區、F 區 … … 的 分 區 信 息。 這 便 是 硬 盤 分 區 表 鏈。 ---- 我 們 可 由 分 區 表 鏈 取 得 要 寫 保 護 分 區 的 起 始、 終 止H、S、C, 但 有 一 點 要 注 意 的 是S 中 的 高2 位 與C 中 的8 位 組 合 成 的10 位 二 進 制 數 方 是 真 正 的C, 去 掉 高2 位 的S 方 是 真 正 的S。 例 從 某 分 區 讀 出 的 終 止S、C 分 別 爲51H、30H。 ---- 可 見S 截 掉 高2 位 後 爲11H,C 加 上2 位 後 爲130H。 ---- 把 變 化 後 的 起 始 和 終 止S、C 及H 保 存 起 來, 作 爲 真 正 的 起 始 和 終 止H、S、C。 同 樣 的 道 理INT13 的CL、 CH 中 的S、C 也 應 作 相 應 的 變 化。 這 時 我 們 便 可 以 確 定 下 面 不 等 式 的 成 立 與 否。 ---- 保 存 的 真 正 起 始H,S,C〈=INT13 的 真 正H,S,C Ι= 保 存 的 真 正 終 止H,S,C 若 成 立 則 應 寫 保 護, 從 而 解 決 了 怎 樣 判 斷 哪 個 分 區 是 寫 保 護 分 區 的 問 題。 ---- 但 實 際 上, 硬 盤 的 分 區 是 先 按 柱 面 分, 再 按 磁 頭 分, 最 後 按 扇 區 分 的。 因 此 我 們 的 判 斷 順 序 應 該 是 這 樣 的: 先 判 斷 ---- 保 存 的 真 正 起 始C〈=INT13 的 真 正C Ι= 保 存 的 真 正 終 止C ---- 若INT13 的C 恰 好 等 於 保 存 的 終 止C, 則 應 進 一 步 判 斷H; 若INT13 的H 值 小 於 保 存 的 終 止H, 則 表 明 在 寫 保 護 盤 內; 若INT13 的H 大 於 保 存 的 終 止H, 則 表 明 超 出 了 寫 保 護 盤 的 範 圍, 若 等 於 則 應 進 一 步 確 定S; 若INT13 的S 值 大 於 保 存 的 終 止S 值 則 是 超 出 了 寫 保 護 盤, 反 之, 小 於、 等 於 則 是 在 寫 保 護 盤 內。 根 據 以 上 原 理, 我 們 不 難 把 程 序 編 制 出 來, 源 程 序 在 此 省 略。 編 譯 成 可 執 行 文 件 後 鍵 入 命 令 行: ---- WRTPRT [driver1 ] [driver2 ] [driver3 ] [driver4 ] [driver5 ] ---- 例: 要 對C: 和D: 寫 保 護 則 鍵 入 命 令 行 ---- WRIPRTC:D: ---- 其 中 不 帶 參 數 的WRTPRT 默 認 爲 對C: 寫 保 護 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-11-22 22:33:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!