分享
 
 
 

Win98内核分析 (Kernel32)

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

Win98内核分析 (Kernel32)

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盘都为硬盘,所以相应设备驱动程序设备标题指针都相同,都是硬

盘驱动程序设备标题指针。

2.磁盘路径参数表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 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0080 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0090 00 00 00 00 00 00 00 00-00 00 00 00 40 83 13 C9 ..........

..@...

D597:00A0 00 FF FF FF FF FF FF 02-00 00 00 00 00 00 00 00 ..........

......

D597:00B0 43 3A 5C 00 57 49 4E 39-38 00 20 46 49 4C 45 53 C:\.WIN98.

FILES

D597:00C0 5C 4D 53 49 5C 53 4F 46-54 43 4F 4F 4C 45 52 00

\MSI\SOFTCOOLER.

D597:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:00F0 00 00 00 00 40 C0 13 C9-00 FF FF FF FF B2 6E 02 ....@.....

....n.

D597:0100 00 00 C0 0A 81 D1 00 00-44 3A 5C 00 00 00 00 00 ........D:

\.....

D597:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0140 00 00 00 00 00 00 00 00-00 00 00 00 40 FD 13 C9 ..........

..@...

D597:0150 00 FF FF FF FF B2 6E 02-00 00 C0 0A 81 D1 00 00 ......n...

......

D597:0160 45 3A 5C 00 00 00 00 00-00 00 00 00 00 00 00 00 E:\.......

......

D597:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:0190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:01A0 00 00 00 00 40 3A 14 C9-00 FF FF FF FF B2 6E 02 ....@:....

....n.

D597:01B0 00 00 C0 0A 81 D1 00 00-46 3A 5C 00 00 00 00 00 ........F:

\.....

D597:01C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:01D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:01E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D597:01F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D835:0200 00 FF FF FF FF FF FF 02-00 00 00 00 00 00 00 00 ..........

......

D835:0210 47 3A 5C 00 00 00 00 00-00 00 00 00 00 00 00 00 G:\.......

......

D835:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D835:0230 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D835:0240 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ..........

......

D835:0250 00 00 00 00 40 00 00 6E-06 FF FF FF FF B2 6E 02 ....@..n..

....n.

D835:0260 00 00 C0 0A 81 D1 00 00-48 3A 5C 00 00 00 00 00 ........H:

\.....

由上述代码读出带阴影部分,得到如下表格:

41 3A 5C 表示目录路径区为A:\

46 13 C9 00 相应DPT地址为00C9:1346

42 3A 5C 表示目录路径区为B:\

83 13 C9 00 相应DPT地址为00C9:1383

43 3A 5C 00 57 49 4E 39-38 00 20 46 49 4C 45 53 5C 4D 53 49 5C 53 4F

46-54 43 4F 4F 4C 45 52: 表示目录路径区为C:\.WIN98. FILES

\MSI\SOFTCOOLER.

C0 13 C9 00 相应DPT地址为00C9:13C0

44 3A 5C 表示目录路径区为D:\

FD 13 C9 00 相应DPT地址为00C9:13FD

45 3A 5C 表示目录路径区为E:\

3A 14 C9 00 相应DPT地址为00C9:143A

46 3A 5C 表示目录路径区为F:\

47 3A 5C 表示目录路径区为G:\

分析

1) 从上面读出的内容可了解到:硬盘有A、B、C、D、E五个区,其中A、B是默认

设置,而C、D、E是硬盘上的逻辑分区。

2) 这五个区的DPT地址都与DPT表中的地址相符合。而F、G这些不是逻辑分区,所

以在硬盘路径表DPAT中虽然都为这些盘符开设了相应空间,但并没有给出具体内容

。三、句柄参数区HPA和句柄参数表HPT

由EMB表格可

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有