gjlmp
驱动牛犊
驱动牛犊
  • 注册日期2010-10-09
  • 最后登录2014-01-09
  • 粉丝5
  • 关注3
  • 积分21分
  • 威望124点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分35分
阅读:6948回复:12

nt4源码剖析之ntldr篇

楼主#
更多 发布于:2011-10-01 13:03
 
 
nt4源码ntldr模块剖析目录:
 
第一章 启动流程……………………………………………………………………………………………………………………5
    一 启动……………………………………………………………………………………………………………………………5
      1 FAT系统的启动代码…………………………………………………………………………………………………………5
      2 NTFS系统的启动代码………………………………………………………………………………………………………11
      3 MBR………………………………………………………………………………………………………………………… 42
    二 Startup………………………………………………………………………………………………………………………46
      1初始化视频子系统………………………………………………………………………………………………………… 52
      2关闭软驱马达……………………………………………………………………………………………………………… 58
      3 修正软盘参数表……………………………………………………………………………………………………………59
      4 获取机器类型………………………………………………………………………………………………………………60
      5 构造内存描述符……………………………………………………………………………………………………………62
      6 内存大小检测………………………………………………………………………………………………………………79
      7 启用A20地址线…………………………………………………………………………………………………………… 81
      8 重定位X86结构…………………………………………………………………………………………………………… 85
      9 启动保护模式………………………………………………………………………………………………………………86
      10 重定位OS Loader Section………………………………………………………………………………………………93
      11 跳转到OS Loader…………………………………………………………………………………………………………97
    三 NtProcessStartup函数…………………………………………………………………………………………………… 100
      1 全局初始化…………………………………………………………………………………………………………………100
      2 初始化系统参数……………………………………………………………………………………………………………130
      3 获取启动分区名称…………………………………………………………………………………………………………132
      4 内存初始化…………………………………………………………………………………………………………………137
      5 初始化os loader的IO系统……………………………………………………………………………………………… 146
    四 BlStartup函数………………………………………………………………………………………………………………151
      1 图形模式初始化……………………………………………………………………………………………………………157
      2 读取boot.ini文件…………………………………………………………………………………………………………162
      3 初始化ABIOS……………………………………………………………………………………………………………… 162
      4 关闭软驱马达………………………………………………………………………………………………………………198
      5 选择启动内核名称…………………………………………………………………………………………………………199
      6 运行NTDETECT………………………………………………………………………………………………………………216
      7 调用BlOsLoader函数………………………………………………………………………………………………………234
    五 BlOsLoader函数…………………………………………………………………………………………………………… 235
      1 配置树………………………………………………………………………………………………………………………256
      2 日志系统……………………………………………………………………………………………………………………266
      3 加载系统注册表……………………………………………………………………………………………………………267
      4 非X86构造ARC启动设备名称和NT路径名称 …………………………………………………………………………351
      5 获取NTFT设备标识…………………………………………………………………………………………………………360
      6 配置CPU ……………………………………………………………………………………………………………………365
第二章 内存管理……………………………………………………………………………………………………………………373
    一 内存分布…………………………………………………………………………………………………………………… 373
    二 内存管理…………………………………………………………………………………………………………………… 373
    三 内存描述符操作…………………………………………………………………………………………………………… 375
      1 寻找制定页的内存描述符…………………………………………………………………………………………………375
      2 构造新的内存描述符………………………………………………………………………………………………………376
      3 插入描述符…………………………………………………………………………………………………………………381
      4 移除描述符…………………………………………………………………………………………………………………383
    四 内存操作…………………………………………………………………………………………………………………… 383
      1 申请内存……………………………………………………………………………………………………………………383
      2 申请新的堆…………………………………………………………………………………………………………………388
第三章 显示…………………………………………………………………………………………………………………………391
    一 显卡操作…………………………………………………………………………………………………………………… 391
    二 文本模式…………………………………………………………………………………………………………………… 393
      1 设置文本模式………………………………………………………………………………………………………………394
      2 显示字符……………………………………………………………………………………………………………………394
      3 设置光标位置………………………………………………………………………………………………………………396
      4 清屏…………………………………………………………………………………………………………………………397
      5 滚屏显示……………………………………………………………………………………………………………………398
    三 图形模式…………………………………………………………………………………………………………………… 399
      1 设置图形模式………………………………………………………………………………………………………………400
      2 设置属性……………………………………………………………………………………………………………………400
      3 显示字符……………………………………………………………………………………………………………………403
      4 设置光标位置………………………………………………………………………………………………………………406
      5 清屏…………………………………………………………………………………………………………………………407
    四 统一接口函数……………………………………………………………………………………………………………… 408
      1 显示字符……………………………………………………………………………………………………………………408
      2 设置光标位置………………………………………………………………………………………………………………408
      3 设置属性……………………………………………………………………………………………………………………409
      4 清屏…………………………………………………………………………………………………………………………410
      5 标准打印字符函数…………………………………………………………………………………………………………411
第四章 磁盘…………………………………………………………………………………………………………………………418
    一 扩展服务表(ExportEntryTable) …………………………………………………………………………………………418
    二 SU模块……………………………………………………………………………………………………………………… 424
      1 重置磁盘……………………………………………………………………………………………………………………424
      2 读磁盘………………………………………………………………………………………………………………………425
      3 写磁盘………………………………………………………………………………………………………………………427
    三 BIOS磁盘…………………………………………………………………………………………………………………… 430
      1 打开磁盘……………………………………………………………………………………………………………………430
      2 读磁盘………………………………………………………………………………………………………………………435
      3 写磁盘………………………………………………………………………………………………………………………441
    四 BIOS分区…………………………………………………………………………………………………………………… 446
      1 打开分区……………………………………………………………………………………………………………………447
      2 读分区………………………………………………………………………………………………………………………451
      3 写分区………………………………………………………………………………………………………………………453
    五 ARC函数………………………………………………………………………………………………………………………454
      1 函数数组……………………………………………………………………………………………………………………454
      2 打开…………………………………………………………………………………………………………………………456
      3 读……………………………………………………………………………………………………………………………458
      4 写……………………………………………………………………………………………………………………………460
第五章 文件系统……………………………………………………………………………………………………………………463
    一 FAT文件系统…………………………………………………………………………………………………………………463
      1 判断是否是FAT文件系统………………………………………………………………………………………………… 463
      2 读文件………………………………………………………………………………………………………………………467
      3 写文件………………………………………………………………………………………………………………………470
      4 读磁盘………………………………………………………………………………………………………………………474
      5 写磁盘………………………………………………………………………………………………………………………476
      6 刷缓存到磁盘………………………………………………………………………………………………………………478
      7 FAT的VBO转换成LBO……………………………………………………………………………………………………480
    二 NTFS文件系统……………………………………………………………………………………………………………… 483
      1 判断是否是NTFS文件系统…………………………………………………………………………………………………483
      2 读文件………………………………………………………………………………………………………………………490
      3 写文件………………………………………………………………………………………………………………………492
      4 读磁盘………………………………………………………………………………………………………………………493
      5 写磁盘………………………………………………………………………………………………………………………495
      6 读取常驻的属性值…………………………………………………………………………………………………………495
      7 读取且解析文件记录………………………………………………………………………………………………………497
      8 读取非常驻的属性值………………………………………………………………………………………………………500
      9 NTFS的VBO转化成LBO…………………………………………………………………………………………………506
第六章 PE文件………………………………………………………………………………………………………………………511
    一 文件格式…………………………………………………………………………………………………………………… 511
    二 PE文件操作………………………………………………………………………………………………………………… 512
      1 加载镜像……………………………………………………………………………………………………………………512
      2 获取NT头的地址……………………………………………………………………………………………………………522
      3 获取目录项地址……………………………………………………………………………………………………………522
      4 重定位………………………………………………………………………………………………………………………524
      5 引用DLL文件 …………………………………………………………………………………………………………528
      6 绑定导入表…………………………………………………………………………………………………………………533
      7 校验和………………………………………………………………………………………………………………………540
      8 镜像文件数据表项…………………………………………………………………………………………………………541
第七章 检测硬件NTDETECT……………………………………………………………………………………………………545
    一 主函数DetectionMain………………………………………………………………………………………………………545
    二 检测硬件HardwareDetection………………………………………………………………………………………………548
      1 总线类型……………………………………………………………………………………………………………………567
      2 鼠标类型……………………………………………………………………………………………………………………569
      3 日期…………………………………………………………………………………………………………………………569
      4 PCI总线组件……………………………………………………………………………………………………………… 573
      5 APM总线组件……………………………………………………………………………………………………………… 578
      6 PNP BIOS总线组件…………………………………………………………………………………………………………579
      7 MCA槽信息………………………………………………………………………………………………………………… 583
      8 磁盘参数……………………………………………………………………………………………………………………587
      9 ROM块……………………………………………………………………………………………………………………… 590
      10 键盘组件………………………………………………………………………………………………………………… 610
      11 COM组件……………………………………………………………………………………………………………………627
      12 并口组件………………………………………………………………………………………………………………… 643
      13 鼠标组件………………………………………………………………………………………………………………… 647
      14软驱组件……………………………………………………………………………………………………………………695
      15 显示字体信息…………………………………………………………………………………………………………… 709
      16 EISA配置数据…………………………………………………………………………………………………………… 711
第八章 注册表………………………………………………………………………………………………………………………722
    一 注册表结构………………………………………………………………………………………………………………… 722
      1 磁盘上的注册表文件结构…………………………………………………………………………………………………722
      2 内存中的注册表结构………………………………………………………………………………………………………725
    二 注册表操作………………………………………………………………………………………………………………… 728
      1 初始化注册表………………………………………………………………………………………………………………729
      2 加载注册表…………………………………………………………………………………………………………………740
      3 写注册表文件………………………………………………………………………………………………………………746
      4 BitMap操作…………………………………………………………………………………………………………………754
      5 MAP操作…………………………………………………………………………………………………………………… 757
      6 校验注册表…………………………………………………………………………………………………………………769
      7 按名称查找注册表…………………………………………………………………………………………………………773
      8 覆盖日志文件中的修正到内存镜像………………………………………………………………………………………787
      9 CELL操作……………………………………………………………………………………………………………………791
      10 设置文件大小…………………………………………………………………………………………………………… 798
      11 注册表头………………………………………………………………………………………………………………… 800
      12 寻找注册表的dirty logical sectors的最大的RUN……………………………………………………………………  806
 
 Ntldr剖析.rar
 
 
 
游客

返回顶部