国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Win98內核分析(Kernel32)

2019-11-17 05:38:24
字體:
來源:轉載
供稿:網友

  IBMBIO各模塊的介紹。

一、環境治理塊emb
要讀入EMB,可使用INT 21 的52H號功能。調用該中斷后,EMB的地址會放在ES:BX中。具體用法如下:
C:/>debug
-a
0F6C:0100 mov ah,52
0F6C:0102 int 21
0F6C:0104 int 3
0F6C:0105
-g=0100 0104 //運行100至104的命令
AX=5200 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0F6C ES=00C9 SS=0F6C CS=0F6C ip=0104 NV UP EI PL NZ NA PO NC
0F6C:0104 CC INT 3
-d00c9:0024 //顯示EMB的內容
00C9:0020 11 02 46 13-C9 00 CC 00 C9 00 4C 00 ..F...
....L.
00C9:0030 70 00 16 00 70 00 00 02-6D 00 C9 00 00 00 97 D5 p...p...m.
第一個MCB地址 0211:0000
FILES運行環境鏈鏈頭地址 00C9:00CC
當前標準輸入設備標題首址 0070:0016
BUFFERS運行環境鏈鏈頭地址 00C9:006D
FCBS運行環境鏈頭地址 D2E7:0000
邏輯驅動器號 05
設備驅動程序鏈頭地址 D181:0000
DPT鏈頭地址 00C9:1346
當前時鐘設備標題首址 0070:004C
每個緩沖區字節數 0200
磁盤路徑表(DPAT)首址 D597:0000
DOS不能自動關閉的FCB數目 0000
最末驅動器號 1A

......
00C9:0040 00 00 E7 D2 00 00 05 1A-00 00 81 D1 04 80 CD 0D ..........
......
(從0024讀起是為了讀入MCB的地址)二、磁盤參數表DPT和磁盤路徑表DPAT
1.磁盤參數表DPT
由EMB的表格知道DPT鏈頭地址為00C9:1346,根據該地址可讀出DPT的內容如下代碼:

// 0 1 2 3 4 5 6 7 8 9 A B C D E F
-d00c9:1346
00C9:1340 00 00-00 02 FE 00 01 00 02 40 .........@
00C9:1350 00 09 00 60 01 02 00 05-00 5E 00 70 00 00 80 83 ...`.....^.p....
00C9:1360 13 C9 00 00 00 FF FF FF-FF 89 1E EC 18 2E 8C 09 ................
-d00c9:1383
00C9:1380 01 01 00 02 FE-00 01 00 02 40 00 09 00 .........@...
00C9:1390 60 01 02 00 05 00 5E 00-70 00 00 80 C0 13 C9 00 `.....^.p.......
00C9:13A0 00 00 FF FF FF FF 35 80-3F 0E 74 0A 09 00 00 00 ......5.?.t.....
-d00c9:13c0
00C9:13C0 02 02 00 02 1F 05 01 00-02 00 02 01 02 2E EF F0 ................
00C9:13D0 00 E1 01 5E 00 70 00 F8-00 FD 13 C9 00 02 00 FF ...^.p..........
00C9:13E0 FF FF FF 00 1A 72 0D 06-2E 01 02 00 00 2E EF 00 .....r..........
-d00c9:13fd
00C9:13F0 03 03 00 ...
00C9:1400 02 3F 06 01 00 02 00 02-01 02 37 EF F0 00 E1 01 .?........7.....
00C9:1410 5E 00 70 00 F8 00 3A 14-C9 00 00 00 FF FF FF FF ^.p...:.........
-d00c9:143a
00C9:1430 04 04 00 02 1F 05 ......
00C9:1440 01 00 02 00 02 01 02 2E-EF F0 00 E1 01 5E 00 70 .............^.p
00C9:1450 00 F8 00 00 00 6E 06 00-00 FF FF FF FF CD 17 C3 .....n..........
-d066e:0000
066E:0000 06 06 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
066E:0010 00 00 00 00 00 6A 06 00-00 FF FF FF FF 00 00 00 .....j..........
066E:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

066E:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
066E:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

現在把上面有陰影的代碼按從左到右,從上到下的順序讀出其中的具體內容:

00 相同設備的BPB序號為0
00 本DPT對應的邏輯驅動器號為0
00 02 每扇區字節數為0200,即512個字節
FE 每簇扇區數,當前A盤不用,該數據項無效
00 每簇扇區數對2的對數,當前A盤不用,該數據項無效
01 00 保留扇區數為1
02 FAT個數為2
40 00 根目錄項數為40H個
09 00 文件區起始扇區號為0009
60 01 文件區占用簇數為0160H
02 每個FAT占用扇區數為2
00 05 目錄區起始扇區號為0500
00 5E 00 70 相應設備驅動程序設備標題指針為7000:5E00
80 介質描述字節,當前A盤不用,該數據項無效
00 該DPT使用標志,當前A盤不用,該數據項無效
83 13 C9 00 下一個DPT指針為00C9:1383
00 00 當前目錄的首簇號為0000,
FF FF FF FF 空簇數

01 相同設備的BPB序號為1
01 本DPT對應的邏輯驅動器號為1
00 02 每扇區字節數為0200,即512個字節
FE 每簇扇區數,當前B盤不用,該數據項無效
00 每簇扇區數對2的對數,當前B盤不用,該數據項無效
01 00 保留扇區數為1
02 FAT個數為2
40 00 根目錄項數為40H個
09 00 文件區起始扇區號為0009
60 01 文件區占用簇數為0160H
02 每個FAT占用扇區數為2
00 05 目錄區起始扇區號為0500
00 5E 00 70 相應設備驅動程序設備標題指針為7000:5E00
80 介質描述字節,當前B盤不用,該數據項無效
00 該DPT使用標志,當前B盤不用,該數據項無效
C0 13 C9 00 下一個DPT指針為00C9:13C0
00 00 當前目錄的首簇號為0000,
FF FF FF FF 空簇數

02 相同設備的BPB序號為2
02 本DPT對應的邏輯驅動器號為2
00 02 每扇區字節數為0200,即512個字節
1F 每簇扇區數為20H (每簇有32個扇區)
05 每簇扇區數對2的對數為5 (32為2的5次方)
01 00 保留扇區數為1
02 FAT個數為2
00 02 根目錄項數為200H個
01 02 文件區起始扇區號為0201
2E EF 文件區占用簇數為EF2EH
F0 每個FAT占用扇區數為F0H
00 E1: 目錄區起始扇區號為E100H
01 5E 00 70 相應設備驅動程序設備標題指針為7000:5E01
F8 介質描述字節為F8,表示硬盤
00 該DPT 使用標志為00,正在使用
C0 13 C9 00 下一個DPT指針為00C9:13FD
02 00 當前目錄的首簇號為0200H
FF FF FF FF 空簇數

03 相同設備的BPB序號為3
03 本DPT對應的邏輯驅動器號為3
00 02 每扇區字節數為0200,即512個字節
3F 每簇扇區數為40H (每簇有64個扇區)
06 每簇扇區數對2的對數為6 (64為2的6次方)
01 00 保留扇區數為1
02 FAT個數為2
00 02 根目錄項數為200H個
01 02 文件區起始扇區號為0201
37 EF 文件區占用簇數為EF37H
F0 每個FAT占用扇區數為F0H
00 E1: 目錄區起始扇區號為E100H
01 5E 00 70 相應設備驅動程序設備標題指針為7000:5E01
F8 介質描述字節為F8,表示硬盤
00 該DPT 使用標志為00,正在使用
3A 14 C9 00 下一個DPT指針為00C9:143A
00 00 當前目錄的首簇號為0000,即根目錄
FF FF FF FF 空簇數

04 相同設備的BPB序號為4
04 本DPT對應的邏輯驅動器號為4
00 02 每扇區字節數為0200,即512個字節
1F 每簇扇區數為20H (每簇有32個扇區)
05 每簇扇區數對2的對數為5 (32為2的5次方)
01 00 保留扇區數為1
02 FAT個數為2
00 02 根目錄項數為200H個
01 02 文件區起始扇區號為0201
2E EF 文件區占用簇數為EF2EH
F0 每個FAT占用扇區數為F0H
00 E1: 目錄區起始扇區號為E100H
01 5E 00 70 相應設備驅動程序設備標題指針為7000:5E01
F8 介質描述字節為F8,表示硬盤
00 該DPT 使用標志為00,正在使用
00 00 6E 06 下一個DPT指針為066E:0000
00 00 當前目錄的首簇號為0000,即根目錄
FF FF FF FF 空簇數


后面的代碼內容都差不多,就不在贅述了
分析:
1) 與DOS舊版本來說,WIN98的DPT內數據項的偏移有所不同,從介質描述字節項開始,后面數據項的偏移都下移一位,即介質描述字節偏移為17H,DPT使用標志偏移為18H等等。
2) 由于沒有使用A、B盤,所以A、B盤對應的DPT里面的一些數據項的內容會表現的不合理。
3) 對于C、D、E盤來說,由于保留扇區數為1,而根目錄項占用了200H個扇區,所以文件區起始扇區為0201H,即文件區起始扇區號值包含了引導記錄、FAT表和根目錄所占用的扇區總數。
4) 由于C、D、E盤都為硬盤,所以相應設備驅動程序設備標題指針都相同,都是硬盤驅動程序設備標題指針。

二.磁盤路徑參數表DPAT
由EMB的表格知道DPT鏈頭地址為00C9:1346,根據該地址可讀出DPT的內容如下代碼:
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
-dd597:0000
D597:0000 41 3A 5C 00 00 00 00 00-00 00 00 00 00 00 00 00 A:/.............
D597:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
D597:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
D597:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
D597:0040 00 00 00 00 40 46 13 C9-00 FF FF FF FF B2 6E 02 ....@F........n.
D597:0050 00 00 C0 0A 81 D1 00 00-42 3A 5C 00 00 00 00 00 ........B:/.....
D597:0060 00 00 00 00 0

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿合奇县| 金川县| 思茅市| 喀喇沁旗| 库尔勒市| 望都县| 廊坊市| 巫溪县| 宁化县| 博野县| 嘉鱼县| 南溪县| 攀枝花市| 沅陵县| 肇源县| 青川县| 荔浦县| 湘潭县| 常宁市| 景宁| 岗巴县| 澄迈县| 乐亭县| 青浦区| 张家川| 商城县| 玉田县| 历史| 蒙自县| 遂昌县| 渝北区| 武功县| 顺平县| 霸州市| 镇安县| 灵台县| 临武县| 佛教| 兴和县| 黄平县| 巴马|