Win98内核分析(Kernel32)

2016-02-19 15:04 25 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的Win98内核分析(Kernel32)懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

  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 ................

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  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 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 MSISOFTCOOLER.

  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. FILESMSISOFTCOOLER.

  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表格可读出句柄FILES运行环境链链头地址为00C9:00CC,由此可读出下列代码:

  // 0 1 2 3 4 5 6 7 8 9 A B C D E F

  -d00c9:00cc

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  00C9:00C0 00 00 64 D2 ..d.

  00C9:00D0 05 00 1C 00 02 00 00 C0-00 28 00 70 00 00 00 2E .........(.p....

  00C9:00E0 4E 91 26 00 00 00 00 00-00 00 00 00 00 00 00 00 N.&.............

  00C9:00F0 00 00 41 55 58 20 20 20-20 20 20 20 20 28 00 00 ..AUX (..

  00C9:0100 00 00 00 92 84 00 00 00-00 00 00 00 00 54 00 02 .............T..

  -dd264:0000

  D264:0000 08 00 30 06 23 00 01 00-80 00 20 42 90 01 00 01 ..0.#.....B....

  D264:0010 00 00 00 20 A0 D3 24 EB-EA 01 00 13 1F 00 00 00 ... ..$.........

  D264:0020 00 05 00 00 00 00 20 20-20 20 20 20 20 20 20 20 ......

  D264:0030 20 00 00 00 00 01 00 87-08 00 00 00 00 00 00 C0 ...............

  D264:0040 0A 01 00 80 00 20 42 90-01 00 01 00 00 00 20 A0 ..... B....... .

  D264:0050 D3 24 F0 7D 00 00 10 7C-00 00 00 00 06 00 00 00 .$.}...|........

  D264:0060 00 20 20 20 20 20 20 20-20 20 20 20 00 00 00 00 . ....

  D264:0070 01 00 87 08 00 00 00 00-00 00 C0 0A 01 00 00 00 ................

  -d0630:0008

  0630:0000 FF FF FF FF 0A 00 00 00 ........

  我们从上面带阴影的代码可读出HPA的表格

  00 00 64 D2 下一个HPA的地址为D264:0000

  05 00 本环境拥有文件句柄参数表个数为5,这五个句柄是标准输入设备的HPT、标准输出设备的HPT、标准错误设备的HPT、标准辅助设备的HPT、标准打印设备的HPT

  08 00 30 06 下一个HPA的地址为0630:0008

  23 00 本环境拥有文件句柄参数表个数为23H,即45个FF FF FF FF 表明本HPA为最后一个HPA

  0A 00 本环境拥有文件句柄参数表个数=A-5=5

  现在具体分析地址为D264:0000的HPA的第一个HPT,得如下表格:

  01 00 标志位,表示句柄打开

  80 00 打开方式,以FCB方式打开

  20 文件属性字

  42 90 设备属性字

  01 00 01 00 DPT地址

  00 00 起始簇号

  20 A0 时间

  D3 24 日期

  EB EA 01 00 文件长度

  13 1F 00 00 读写指针

  00 00 磁盘文件所占簇数太大,不表示

  05 00 当前簇号

  00 00 逻辑扇区号

  00 目录项号

  20 20 20 20

  20 20 20 20

  20 20 20 文件名+扩展名,而在这里全为空格,表明这里把本HPT对应的文件的文件名和扩展名都隐藏起来,在这里不能读出,当在读下面几个HPT都会发现类似情况,具体见上面的代码的阴影部分

  一个有趣的现象:

  在WIN98系统默认设置下,句柄参数表个数30个,而不是40个,即在系统文件CONFIG.SYS中,加入FILES=30和没有加入这一命令语句读出的HPA是一样。

  当在CONFIG.SYS中,加入FILES=N当N=30,即是缺省设置。

  当N30,会读出4个HPA,第一个HPA的HPT的个数为5,第二HPA的HPT的个数为N-5,第三个HPA 的HPT的个数为30-N,第四HPA的HPT的个数为A

  当N30,会读出3个HPA,第一个HPA的HPT的个数为5,第二HPA的HPT的个数为N-5,第三个HPA 的HPT的个数A

  举例:

  当N=9,即在CONFIG.SYS中加入FILES=40。9=5+4

  当N=40,即在CONFIG.SYS中加入FILES=40。40=23H+5=35+5

  当N=50,即在CONFIG.SYS中加入FILES=50,上面的代码就是加入该语句读出的。50=2DH+5=45+5

  这说明了当N30,四个HPA中,头一个HPA记录了五个标准设备的HPT,第二个HPA记录了N-5个HPT,而显然至少需要打开30个HPT才能满足WINDOWS系统的需要,所以第三个HPA记录了30-N个HPT。而最后一个HPA中的A是一个无用数据(纯属个人观点)。

  当N30,三个HPA中,头一个HPA记录了五个标准设备的HPT,中间一个HPA记录了大部分文件的HPT,而最后一个HPA中的A是一个无用数据

  以下是在CONFIG.SYS中加入FILES=9后读出的4个HPA代码:

  -d00c9:00cc

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  00C9:00C0 00 00 64 D2 ..d.

  00C9:00D0 05 00 1C 00 02 00 00 C0-00 28 00 70 00 00 00 2E .........(.p....

  00C9:00E0 4E 91 26 00 00 00 00 00-00 00 00 00 00 00 00 00 N.&.............

  00C9:00F0 00 00 41 55 58 20 20 20-20 20 20 20 20 28 00 00 ..AUX (..

  00C9:0100 00 00 00 92 84 00 00 00-00 00 00 00 00 54 00 02 .............T..

  -dd264:0000

  D264:0000 0C 00 37 06 04 00 01 00-80 00 20 42 90 01 00 01 ..7.......B....

  D264:0010 00 00 00 20 A0 D3 24 EB-EA 01 00 13 1F 00 00 35 ... ..$........5

  D264:0020 00 05 00 0D 00 0E 20 20-20 20 20 20 20 20 20 20 ......

  D264:0030 20 00 00 00 00 01 00 AC-08 00 00 C4 12 00 00 C0 ...............

  D264:0040 0A 01 00 80 00 20 42 90-01 00 01 00 00 00 20 A0 ..... B....... .

  D264:0050 D3 24 F0 7D 00 00 10 7C-00 00 35 00 06 00 0D 00 .$.}...|..5.....

  D264:0060 0E 20 20 20 20 20 20 20-20 20 20 20 8F 12 00 00 .....

  D264:0070 01 00 AC 08 00 00 C4 12-00 00 C0 0A 00 00 00 00 ................

  -d0637:000c

  0637:0000 0C 00 85 06 ....

  0637:0010 15 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

  0637:0080 00 00 00 00 00 00 00 00-00 00 00 00 ............

  -d0685:000c

  0685:0000 FF FF FF FF 0A 00 00 00 ........

  四、内存控制块MCB

  从EMB表格中可读出内存控制块MCB的起始地址为0211:0000,由此读出以下代码:

  // 0 1 2 3 4 5 6 7 8 9 A B C D E F

  -d0211:0000

  0211:0000 4D 08 00 C7 02 00 00 00-53 44 00 00 00 00 00 00 M.......SD......

  -d04d9:0000

  04D9:0000 4D 08 00 04 00 4D 4D 00-53 43 3A 20 44 4D 41 20 M....MM.SC:DMA

  -d04de:0000

  04DE:0000 4D 2C 05 01 00 33 C0 26-43 4F 4D 4D 41 4E 44 00 M,...3.&COMMAND.

  -d04e0:0000

  04E0:0000 4D 02 06 0D 00 4D 50 3D-43 3A 5C 50 57 49 4E 39 M....MP=C:PWIN9

  -d4ee:0000

  04EE:0000 4D EF 04 2D 00 43 41 46-45 53 31 39 33 38 00 41 M..-.CAFES1938.A

  -d051c:0000

  051C:0000 4D 2C 05 0E 00 03 01 46-BA B9 02 83 C2 15 C1 EA M,.....F........

  -d052b:0000

  052B:0000 4D 2C 05 D5 00 75 06 2E-57 49 4E 00 01 8B 44 01 M,...u..WIN...D.

  -d0601:0000

  0601:0000 4D 02 06 FE 00 00 00 00-76 6D 6D 33 32 00 00 00 M.......vmm32...

  -d0700:0000

  0700:0000 4D 11 07 0F 00 B3 F7 0E-9B CE EB 82 CB B3 45 00 M.............E.

  -d0710:0000

  0710:0000 4D 11 07 65 01 CE EB 82-43 4F 4D 4D 41 4E 44 00 M..e....COMMAND.

  -d0876:0000

  0876:0000 4D 11 07 59 00 0D 34 BD-8B 1E 31 09 3C 02 74 1F M..Y..4...1..t.

  -d8d0:0000

  08D0:0000 4D E2 08 10 00 A0 1A 00-8A E0 89 07 1F 07 58 5B M.............X[

  -d8e1:0000

  08E1:0000 5A E2 08 1D 97 8A 33 D2-44 45 42 55 47 00 D1 E9 Z.....3.DEBUG...

  由上面代码的阴影部分得出以下表格:

  4D 标记,表示本内存控制块非最后一块

  08 00 本内存分配块已分配,该数值表示本内存分配块分配给了系统使用

  C7 02 本内存分配块的大小为02C7节(可求得下一个内存分配块地址=0211+02C7+1=04D9)

  4D 标记,表示本内存控制块非最后一块

  08 00 本内存分配块已分配,该数值表示本内存分配块分配给了系统使用

  04 00 本内存分配块的大小为0004节(可求得下一个内存分配块地址=04D9+0004+1=04DE)

  4D 标记,表示本内存控制块非最后一块

  2C 05 本内存分配块已分配

  01 00 本内存分配块的大小为0001节

  4D 标记,表示本内存控制块非最后一块

  2C 06 本内存分配块已分配

  0D 00 本内存分配块的大小为000D节

  

  

  4D 标记,表示本内存控制块非最后一块

  2C 05 本内存分配块已分配

  2D 00 本内存分配块的大小为000E节

  4D 标记,表示本内存控制块非最后一块

  2C 05 本内存分配块已分配

  D5 00 本内存分配块的大小为00D5节

  4D 标记,表示本内存控制块非最后一块

  02 06 本内存分配块已分配

  FE 00 本内存分配块的大小为00FE节

  4D 标记,表示本内存控制块非最后一块

  E2 08 本内存分配块已分配

  10 00 本内存分配块的大小为0059节

  5A 标记,表示本内存控制块为最后一块

  E2 08 本内存分配块已分配

来源:http://www.tulaoshi.com/n/20160219/1608751.html

延伸阅读
标签: Java JAVA基础
在win98下安装JSP环境 (jswdk-1.0.1或tomcat3.1在Jdk1.3下) 在PWIN98SE环境下 ,我使用JSP运行环境为JSWDK-1.0.1和JDK1.3,要到http://java.sun.com处下载。JDK1.3安装过程很简单,JSWDK1.0.1无须安装只要解压缩即可。然后修改AUTOEXEC.BAT如下: PATH=%PATH%;c:\jdk1.3 set CLASSPATH=C:\jdk1.3\lib\Tools.jar;C:\jdk1.3\lib\d...
如果大家觉得升级内核麻烦和危险的话,可以试试以下方法: 1 首先安装 yum 下载yum http://www.linux.duke.edu/projects/yum/download/2.0/yum-2.0.4-1.noarch.rpm 并安装 rpm -ivh yum-2.0.4-1.noarch.rpm 2 修改 /etc/yum.conf,加入如下几行: ------------------------------------------------------------ [2.6testkernels] n...
    对于不了解内核的,特别是内核网络的人来说,内核的网路处理就像一个巧克力盒子。不打开就不会知道里面是什么,打开了就会觉得里面是丰富多彩的。    本文试图从一个原始数据包处理流程的角度,结合源代码(相应的函数)简单扼要地分析FreeBSD的内核网络处理。    主机对主机的方式是比较简...
//// do_IRQ 函数执行完硬件 ISR 后退出时调用此函数。//void irq_exit(void){ account_system_vtime(current); trace_hardirq_exit(); sub_preempt_count(IRQ_EXIT_OFFSET); // // 判断当前是否有硬件中断嵌套,并且是否有软中断在 // pending 状态,注意:这里只有两个条件同时满足 //...
确定有穷自动机分析内核 作者/孙雪青 下载源代码     前些时候学习编译原理,同时也为 DocWizard 做词法分析技术的准备,于是便想出了一种词法分析内核。这个分析内核可以在不改变代码的情况下分析不同的 DFA。 分析器的基本构造 ...

经验教程

125

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部