动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.绝对能够测试你的C语言功力的几个.
.奇技淫巧C++之语法魔力球.
.VC编程技巧:IE控件的高级用法.
.Eclipse3.06 + MinGW3.1配置标准.
.C语言基础教程(一)基础篇.
.C++基础:初始化类对象.
.More Effective C++:防止资源泄.
.C语言的常用库函数使用方法分析及.
.C++ 代码优化.
.C语言的预处理程序与注释.
.在Visual Studio.NET中使用Cryst.
.C++ 泛型编程系列讲座之实施.
.C语言高效编程的的四招技巧.
.BCB控件制作和消息处理.
.VC Studio 使用技巧大全.
.第 1 章 贪婪算法.
.大教堂和市集.
.使用CommaText.
.在BCB中使用VCL控件数组1.
.解析C++中的内部连接与外部连接.

Win98内核分析(Kernel32)

发表日期:2008-3-8 |



  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
上一篇:Win2K下的Api函数的拦截 人气:410
下一篇:C++ 编程技巧 人气:282
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵