13 flukeshen

尚未进行身份认证

暂无相关简介

等级
TA的排名 10w+

Windows内核神功葵花宝典之系统调用篇

  用户态进入系统态有以下几种方式:  中断(Interrupt)。在允许中断的情况下,有外部设备的中断请求到达,CPU自动转入系统空间,并从预定地址执行指令。中断只发生在两条指令之间,不会打断正在执行的指令。对CPU而言,进入中断是被动的,所以中断的发生可以看作是“异步”的。  异常(Exception)。不管是用户空间或系统空间,执行指令失败都会引起一次“异常”,CPU因此转入系统空间,并...

2019-03-09 16:19:30

深入解析Windows操作系统(笔记9)

  I/O管理器创建一个IRP(I/O request packet)来代表一个I/O操作,并且将该IRP传递给正确的驱动程序。同时,I/O管理器中也提供了许多其他驱动程序都会使用到的通用的例程。  如果一个驱动程序需要应用程序能够打开该设备对象,必须在\Global??(Win2K中为\??)目录中创建一个符号链接,并且使它指向\Device目录中的该设备对象的名称。  快速I/O是一种特...

2019-02-01 21:51:27

深入解析Windows操作系统(笔记7)

  32位的应用程序,开启大地址空间标志的情况下,在64位Windows系统可用4GB的内存空间(32位系统上最多达3G)。  内存管理器是Windows执行体的一部分(位于Ntoskrnl.exe中),主要由:  一组执行体系统服务,负责分配、释放和管理虚拟内存;  提供内存管理异常中的,转译无效陷阱处理器,以及访问错误陷阱处理器;  工作集管理器(优先级16),驻留在物理内存的部分称...

2019-01-17 21:00:06

深入解析Windows操作系统(笔记6)

  一个EPROCESS块表示一个进程,位于系统空间,但EPB(环境进程块)位于用户空间中,因为其中有些信息需要用户模式的代码来修改。  EPROCESS的第一个成员为KPROCESS(内核进程块),内核进程块中存放着与调度有关的信息。  与进程有关的内核变量:  PsActiveProcessHead 进程块的列表头  PsIdleProcess 空闲(Idle)进程块  PsIni...

2019-01-12 13:26:25

深入解析Windows操作系统(笔记5)

  x86引导过程:  每个硬盘可以包含多达4个主分区,每个主分区内最多可分配4个额外的分区(扩展分区),扩展分区又可以包含扩展分区,所以扩展分区的数量是没有限制的。  引导过程中涉及的组件:  主引导纪录(MBR,Master Boot Record)代码 读入和加载分区的引导扇区  引导扇区 读入根目录,加载Ntldr  Ntldr 读入Boot.ini,加载Ntoskrnl.exe...

2019-01-06 23:26:16

深入解析Windows操作系统(笔记4)

  注册表是一个数据库,其结构类似于磁盘卷的结构。注册表6个根键中其实有3个根键是REG_LINK类型的符号链接。  HKEY_CURRENT_USER,包含当前本地登陆用户的参数和软件配置有关的数据,文件位于\Document and Setting\用户名\Ntuser.dat中。这是一个链接,指向HKEY_USERS下该用户的子键。  HKEY_USERS,为系统中每个加载的用户轮廓和用...

2019-01-06 14:46:01

深入解析Windows操作系统(笔记3)

  Windows提供的机制有:  陷阱分发,包括中断、延迟过程调用、异步过程调用、异常分发,以及系统服务分发;  执行体对象管理器;  同步,包括自旋锁、内核分发器对象,以及等待是如何实现的;  系统辅助线程;  其他的机制,如Windows全局标志;  本地过程调用;  内核事件追踪;  Wow64。  dt nt!_ktrap_frame查看陷阱帧(trap frame)...

2019-01-04 22:37:26

深入解析Windows操作系统(笔记2)

  Windows内核模式组件有:Windows执行体(executive)、Windows内核(kernel)、设备驱动程序(device drivers)、硬件抽象层(HAL)、窗口和图形系统(User32.dll及Gdi32.dll的内核实现)。  其中执行体在最上层,提供基本的操作系统服务,由中层的内核与驱动程序所支持,最下层为硬件抽象层隔离平台硬件差异。窗口和图形系统移进内核是当时为了...

2019-01-01 12:51:55

深入解析Windows操作系统(笔记1)

  Windows NT和Window 95的差异比较,NT在性能上支持多处理器,支持访问安全性,纯32位代码,程序地址空间保护。总而言之Windows 95除了是从16位代码发展而来,可以完全兼容运行DOS时代的程序,其他方面都没有任何优势。(哎,现在的脚本小孩们有谁用过Win95和DOS呢,本书还提及了当时代号为“Longhorn”下一代Windows系统,就是后来惨败的Vista,不得不说时...

2018-12-31 20:25:32

VC编译器查看虚表函数

  IDA中看到的虚函数调用通常形式为:mov eax,[ecx]call dword ptr[eax+XX]  如果有该类的相关源码,如何得知虚函数在虚表中的位置?若这个类非常单纯,没有继承自任何类,那么只需在VC调试器中下断点,观察类对象信息,就能看到其虚表函数;但是若此类是继承其他类的,调试器断点只能看到其原始基类(最上层)的虚表函数信息,这种情况可以使用VC编译器/d1 re...

2018-05-21 00:36:10

网络NTP协议时间校对源码

写这个NTP校时的程序,起因是家里旧笔记本的BIOS没电了,每次断电重启都要重设时间,于是就决定自己写一个。NTP服务器使用UDP协议和123端口号,查询时间的具体方法及NTP协议数据格式见源码及注释,还是比较简单的。代码中只是简单的读取服务器返回的时间,没有去计算修正网络传输的来回延时,对我来说精度已经足够了,有需求的朋友可以改一下。

2017-09-03 22:11:37

科锐课堂笔记:2017/5/9 树、二叉树

科锐课堂笔记:2017/5/9 树、二叉树

2017-05-10 09:02:48

科锐课堂笔记:2017/5/8 栈和队列

科锐课堂笔记:2017/5/8 栈和队列

2017-05-09 09:58:13

科锐课堂笔记:2017/5/3 数据结构基本概念

科锐课堂笔记:2017/5/3 数据结构基本概念

2017-05-04 09:05:09

科锐课堂笔记:2017/4/25 异常

科锐课堂笔记:2017/4/25 异常

2017-04-26 10:46:15

科锐课堂笔记:2017/4/24 文件操作

科锐课堂笔记:2017/4/24 文件操作

2017-04-25 10:09:46

科锐课堂笔记:2017/4/21 多重继承与智能指针

科锐课堂笔记:2017/4/21 多重继承与智能指针

2017-04-23 15:54:15

科锐课堂笔记:2017/4/20 抽象类

科锐课堂笔记:2017/4/20 抽象类

2017-04-21 10:07:44

科锐课堂笔记:2017/4/19 虚函数

科锐课堂笔记:2017/4/19 虚函数

2017-04-19 23:43:49

科锐课堂笔记:2017/4/18 类继承

科锐课堂笔记:2017/4/18 类继承

2017-04-19 10:17:20

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!