windows系统调用
- 格式:docx
- 大小:115.92 KB
- 文档页数:4
操作系统名词解释汇总操作系统(Operating System,简称OS)是计算机系统中最基本的软件之一,它负责管理和控制计算机硬件资源,并提供用户与计算机之间的接口。
本文将对一些常见的操作系统名词进行解释,帮助读者更好地理解操作系统相关的概念。
一、内核(Kernel)内核是操作系统的核心部分,它直接控制计算机的硬件和系统资源。
内核负责管理计算机的进程、内存以及设备驱动程序。
它提供了与应用程序和硬件交互的接口,是操作系统其他组件的基础。
二、进程(Process)进程指在操作系统中正在运行的一个程序实例。
它是计算机资源分配的基本单位,每个进程都有自己的执行状态、代码、数据和上下文。
操作系统通过进程调度算法来合理分配CPU时间片,从而实现多个进程之间的并发执行。
三、线程(Thread)线程是进程中的一个执行单元,也被称为轻量级进程。
同一个进程中的多个线程共享进程的资源(如内存),每个线程有自己的执行路径和局部数据。
多线程可以提高程序的并发性和系统的响应速度,提高资源利用率。
四、虚拟内存(Virtual Memory)虚拟内存是一种操作系统内存管理技术,它将物理内存和磁盘空间组合起来使用,扩展了可用的内存空间。
虚拟内存使得应用程序可以访问比物理内存更大的内存空间,同时提供了内存保护和共享机制。
五、文件系统(File System)文件系统是操作系统中用于管理和存储文件的一种机制。
它提供了文件的创建、读取、写入和删除等操作,同时还负责文件的组织和存储。
常见的文件系统包括FAT、NTFS(Windows系统)、Ext4(Linux系统)等。
六、设备驱动程序(Device Driver)设备驱动程序是操作系统用于和硬件设备进行通信的一种软件。
它提供了对硬件设备的访问接口,使应用程序可以通过操作系统与硬件设备进行交互。
不同硬件设备需要不同的设备驱动程序来完成其控制和数据传输功能。
七、系统调用(System Call)系统调用是应用程序通过操作系统提供的接口来访问操作系统功能的一种机制。
操作系统重点概念1、进程:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
2、线程:线程是操作系统能够进行运算调度的最小单位。
它被包含在进程之中,是进程中的实际运作单位。
一条指令,必须在一个线程中被执行。
3、进程状态:进程状态是用来表示进程在内存中的状态,包括:新建、就绪、阻塞、运行、终止等状态。
4、进程调度:进程调度是操作系统中最重要的一种调度,也是操作系统提供给用户的唯一接口。
5、死锁:死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。
6、文件系统:文件系统是操作系统在磁盘上组织文件的方法。
7、文件控制块:文件控制块是用来表示文件在磁盘上的存储结构。
8、虚拟内存:虚拟内存是操作系统提供给用户的内存,它使得应用程序认为它拥有连续可用的内存,实际上是被分割到多个不同的物理内存碎片中。
9、中断:中断是指计算机运行过程中,出现某些意外情况而由硬件或者软件引起的计算机执行顺序突然发生改变的现象。
10、中断向量表:中断向量表是用来存放中断处理程序的入口的。
11、系统调用:系统调用是应用程序请求操作系统为其服务的一种方式。
12、作业调度:作业调度是操作系统中用来控制作业进入内存的程序。
13、设备驱动程序:设备驱动程序是用来控制硬件设备的中断处理程序。
14、目录树:目录树是用来组织和管理文件系统中文件的树形结构。
15、文件权限:文件权限是指对文件可以进行读、写、执行等操作的权限控制。
操作系统基本概念操作系统是计算机系统的核心组件,负责管理和控制计算机系统的硬件和软件资源。
它使得计算机能够高效、有序、安全地运行各种应用程序,并提供给用户一个友好、易于使用的操作环境。
一、操作系统的定义和功能操作系统是一种系统软件,它控制计算机的硬件和软件资源,为用户和应用程序提供一个统一、标准的接口。
操作系统的主要功能包括:1、资源管理:操作系统负责分配和释放计算机的各种资源,如CPU、内存、磁盘空间、网络等。
讲到第三章我又压力山大了,相信各位看官都是冲着这一章和下一章来的,如果写不好的话肯定要被各位看官拍死。
好,废话不多说,转入正题。
在开始正式讲HOOK之前,先把WIN64的系统调用说清楚。
WIN64的系统调用比WIN32要复杂很多,原因很简单,因为WIN64系统可以运行两种EXE,而且WIN32EXE的执行效率并不差(据我本人用3DMARK06实测,在一台电脑上分别安装WIN7X86和WIN7X64,使用同样版本的显卡驱动,3DMARK06在WIN7X86的系统得分比在WIN7X64系统的得分高3%左右,性能损失还算少),因此判断出WIN32EXE在WIN64系统上绝对不是模拟执行的,而是经过了某种转换后直接执行。
在本文中,先讲解WIN64进程(或称64位进程)的系统函数的执行过程,再讲解WOW64进程(或称32位进程)的系统函数的执行过程。
一、WIN64进程的系统函数执行流程ntdll!NtCreateFile没有像Win32一样经过ntdll!KiFastSystemCall等麻烦步骤,直接通过syscall指令进入内核(多说一句,ntdll!ZwCreateFile和ntdll!NtCreateFile的反汇编代码是一样的,也就是说跟Win32一样,ntdll!ZwCreateFile和ntdll!NtCreateFile是同一个函数,除了名字不相同外)。
在第二句反汇编代码中,0x52是ZwCreateFile在SSDT中的编号。
接下ZwCreateFile调用了KiServiceLinkage,把系统服务序号放进eax后又调用了KiServiceInternal,KiServiceInternal又调用了KiSystemServiceStart。
KiServiceLinkage和KiServiceInternal是初始化系统服务的,KiSystemServiceStart则是开始执行系统服务。
windows系统调用方法Windows system call methods are important for developers and system administrators. These methods allow programs to communicate with the operating system and access system resources. Windows provides a set of system calls that can be used by developers to perform various tasks such as file operations, memory management, and process management.Windows系统调用方法对于开发人员和系统管理员来说非常重要。
这些方法允许程序与操作系统通信,并访问系统资源。
Windows提供了一组系统调用,开发人员可以使用这些调用来执行各种任务,如文件操作,内存管理和进程管理。
One of the most common system calls in Windows is the CreateProcess() function, which creates a new process and its primary thread. This function allows developers to start new programs from within their own program and control various aspects of the new process, such as its priority and security attributes.在Windows中最常见的系统调用之一是CreateProcess()函数,它创建一个新的进程及其主线程。
windows dtrace 用法Windows DTrace 是一项非常有用的工具,它可以帮助开发人员和系统管理员在 Windows 操作系统上进行高级的故障排除和性能分析。
下面将介绍一些关于Windows DTrace 的基本用法。
首先,要使用 Windows DTrace,您需要在您的计算机上安装 Windows Performance Toolkit(WPT)。
WPT 是一个独立安装的组件,可以从 Microsoft 的官方网站上下载和安装。
安装完成后,您可以在命令提示符或 PowerShell 中访问DTrace 工具。
DTrace 是一个强大的命令行工具,它提供了一种方便的方式来跟踪和监视操作系统的各个方面,包括内核函数调用、用户进程活动、网络通信等。
下面是一些常见的 DTrace 用法示例:1. 跟踪系统调用:使用 DTrace 来监视系统调用可以帮助我们了解应用程序与操作系统之间的交互情况。
例如,您可以使用以下命令跟踪一个特定进程的系统调用:```dtrace -p <PID> -n 'syscall:::entry { printf("%s\n", probefunc); }'```这将打印出进程的系统调用名称。
2. 跟踪进程活动:通过使用DTrace,您可以监视进程的活动,包括函数调用、线程执行等。
例如,下面的命令将打印指定进程的函数调用栈:```dtrace -n 'pid1234:::entry { ustack(); }'```这将显示进程 ID 为 1234 的进程的函数调用栈。
3. 跟踪网络通信:使用 DTrace,您可以监视网络连接和数据包传输。
例如,以下命令将显示所有连接到本地主机的 TCP 连接信息:```dtrace -n 'tcp:::connect { printf("%s:%d connected\n", args[2]->tcps_raddr, args[2]->tcps_rport); }'```这将打印出每个建立的 TCP 连接的远程地址和端口。
dllmain调用逻辑DLL(动态链接库)的`DllMain` 函数是一个特殊的入口点,它在以下几个时刻被Windows系统调用:1. 当DLL被加载时:当一个应用程序加载一个DLL时,`DllMain` 函数会被自动调用。
这通常发生在以下几种情况:* 当应用程序启动时,如果它需要加载DLL。
* 当应用程序通过`LoadLibrary` 函数显式加载DLL时。
2. 当DLL被卸载时:当一个DLL被卸载时,`DllMain` 函数也会被自动调用。
这通常发生在以下几种情况:* 当应用程序关闭时,如果它之前加载了该DLL。
* 当应用程序通过`FreeLibrary` 函数显式卸载DLL时。
3. 在DLL中的线程创建时:每当在DLL中创建一个新的线程,`DllMain` 函数也会被调用,但仅当`DLL_THREAD_ATTACH` 被设置时。
这意味着如果你想在一个新线程开始执行时执行某些操作,你应该在`DllMain` 函数中检查这个标志,并在需要的时候进行设置。
4. 在DLL中的线程退出时:当在DLL中的线程结束时,`DllMain` 函数会被调用,但仅当`DLL_THREAD_DETACH` 被设置时。
这意味着如果你想在某个线程结束时执行某些清理操作,你应该在`DllMain` 函数中检查这个标志,并在需要的时候进行设置。
需要注意的是,`DllMain` 函数应当小心处理这些事件,因为不正确的处理可能会导致不稳定的行为或资源泄漏。
例如,如果你在`DllMain` 函数中启动新的线程,但没有正确地处理`DLL_THREAD_ATTACH` 和`DLL_THREAD_DETACH`,你可能会在应用程序关闭时留下未完成的线程。
windows r3 与r0通信原理Windows R3与R0通信原理Windows操作系统是当今世界上最为流行的操作系统之一,它提供了许多强大的功能和便捷的用户界面。
在Windows操作系统中,R3和R0是两个重要的层次,它们分别代表用户态和内核态。
本文将深入探讨Windows R3与R0之间的通信原理。
我们要了解R3和R0的含义。
R3是指Ring 3,即用户态,它是操作系统的最高层次之一。
在R3中,运行着应用程序和用户进程,它们可以访问用户空间的资源,如内存、文件等。
R0是指Ring 0,即内核态,它是操作系统的最低层次。
在R0中,运行着操作系统的内核,它负责管理硬件资源和提供系统服务。
在Windows操作系统中,R3和R0之间的通信是通过系统调用来实现的。
系统调用是一种机制,允许用户态程序向内核态请求服务。
当一个应用程序需要访问受限资源时,它可以通过系统调用请求操作系统的帮助。
例如,当一个应用程序需要读取一个文件时,它可以通过系统调用请求操作系统打开并读取该文件。
具体来说,当一个应用程序发起系统调用请求时,操作系统会将该请求传递给R0中的内核。
内核会根据请求的类型和参数执行相应的操作,并将结果返回给应用程序。
这个过程涉及到用户态和内核态之间的切换。
当应用程序发起系统调用时,它会触发一个特殊的异常,将控制权转移到内核态。
内核会在完成请求后,将控制权再次转移到用户态,使应用程序可以继续执行。
在系统调用中,应用程序和内核之间的通信是通过参数传递的。
应用程序将请求的类型和参数传递给内核,内核根据这些参数执行相应的操作。
参数的传递可以通过寄存器、栈或共享内存等方式进行。
具体的参数传递方式取决于操作系统的实现和架构。
除了系统调用,Windows操作系统还提供了其他的通信机制,如进程间通信(IPC)。
IPC允许不同的应用程序之间进行数据交换和共享资源。
在Windows操作系统中,IPC可以通过命名管道、共享内存、消息队列等方式实现。
操作系统中进程管理的原理操作系统是计算机系统中最为重要的软件之一,其作用是管理计算机的硬件和软件资源,为用户提供一个良好的使用环境。
进程管理是操作系统中的一个重要功能,其原理涉及到多个方面,包括进程的创建、退出、调度、通信等,具有重要的学习价值和实际应用价值。
本文将从进程的定义、特征和组成等方面入手,介绍操作系统中进程管理的原理。
一、进程的定义、特征和组成进程是指正在运行中的程序的一个实例,它是计算机系统中最基本的执行单元。
进程具有以下几个特征:1. 动态性:进程是动态的实体,可以被创建、终止或挂起。
2. 独立性:每个进程都有自己的虚拟地址空间和资源管理机制,能够独立地执行各自的任务。
3. 并发性:多个进程可以在同一时间内执行,实现系统的并发处理。
4. 同步性:进程之间可以通过共享内存、消息传递等方式进行通信和协作,实现数据的交换和同步。
进程由程序代码、数据、堆栈和系统资源等组成。
程序代码是进程的核心,它被存放在内存中,由CPU执行。
数据是进程运行时使用的变量、数组和结构等,它们保存在进程的堆和栈中。
堆是指程序运行时使用的动态分配内存,栈是指程序调用函数时使用的内存空间。
系统资源包括CPU、内存、输入输出设备等。
二、进程的创建和退出进程的创建包括进程控制块(PCB)的分配和初始化、地址空间的分配和初始化、程序代码的装入、系统资源的分配等步骤。
进程的退出则是相反的过程,包括系统资源的回收、地址空间的释放、PCB的回收等。
操作系统中进程的创建和退出通常通过系统调用实现。
在Linux中,创建进程的系统调用是fork(),退出进程的系统调用是exit()。
在Windows中,创建进程的系统调用是CreateProcess(),退出进程的系统调用是ExitProcess()。
三、进程的调度进程的调度是指进程在CPU上的分配和切换。
操作系统中使用多种调度算法对进程进行调度,如先来先服务(FCFS)、短作业优先(SJF)、时间片轮转等。
64位要用 C:\Windows\SysWow64下的 regist32注册另外 IIS下要设置应用是32位的单独执行vbs的话,也要用 C:\Windows\SysWow64下的cscript.exeX64上的IIS調用32位的DLL方法程序在编译的时候默认是Any CPU,即编译的程序可以在X86、X64系统平台上运行。
若希望我们的程序运行在X64系统上,我们所要做的仅仅是部署IIS,修改配置。
若想程序运行于IIS32位模式下,即运行在.net framwork32位下进行如下配置:1.修改IIS配置,允许32位程序运行。
cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs setw3svc/appPools/enable32bitapponwin64 12.为IIS注册32。
注册后在IIS的web扩展里显示的是2.0.*32bit。
C:/WINDOWS//Framework/v2.0.50727/aspnet_regiis -i3.Web扩展里允许 2.0.*32bit运行。
运行的是w3wp32.exe进程。
二.64位模式1.cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs setw3svc/appPools/enable32bitapponwin64 0默认就是0,若原来运行了32位程序,则需要重新设置为0。
2.C:/WINDOWS//Framework64/v2.0.50727/aspnet_regiis - i为IIS注册64为。
注册了64位的IIS在Web扩展里显示的是2.0.*。
3.Web扩展里允许 2.0.*运行。
运行的是w3wp.exe进程。
处理后还是没有出现“w3wp32.exe进程”。
但我的 Web扩展里面是有, 2.0的32位设置为允许的。
后新建了应用程序池,在新建的应用程序池的“高级设置”里面,把“启用32位应用程序”设置为true。
操作系统_苏州大学中国大学mooc课后章节答案期末考试题库2023年1.以下有关内核线程的论述,正确的是()。
参考答案:内核线程由内核进行创建和撤销_内核线程由内核完成线程调度_内核线程由内核管理2.引入线程后,处理机只在线程间切换。
参考答案:错误3.Java中的线程有四种状态,分别是:可运行(Runable)、就绪(Ready)、阻塞(Blocked)、死亡(Dead)。
参考答案:错误4.程序开发者必须创建一个线程去管理内存的分配。
参考答案:错误5.Unix的exec创建的进程可以和创建它的父进程共享各类资源,从而使得它的创建、切换成本较低。
参考答案:错误6.为了照顾紧迫型进程,应采用()调度策略。
参考答案:PR7.可能存在饥饿问题的调度算法有()。
参考答案:PR_SJF8.在页式存储管理中,引入快表可以减少每一次的内存访问时间。
参考答案:错误9.用户程序中使用的从零地址开始的地址编号是逻辑地址。
参考答案:正确10.内存管理的目的是()。
参考答案:进行存储保护_提高内存数据访问的速度_提高内存利用率11.离散内存分配技术包括()。
参考答案:段页式_分段_分页12.存在外碎片的存储管理方式有()。
参考答案:可变分区分配_段式存储管理13.把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上的备份区,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需的程序或数据,调入内存。
这种技术是()。
参考答案:交换14.一个32位地址的计算机使用两级页表。
虚拟地址被分成9位的顶级页表域、11位的二级页表域和一个偏移量,页面大小是()。
参考答案:4KB15.分页存储管理中的页表由()建立参考答案:操作系统16.TLB在计算机系统中是用于()。
参考答案:地址变换17.在页式存储管理中,为了实现主存的空间分配,应设置()。
参考答案:页表18.在RR算法中,时间片越小越好。
参考答案:错误19.SJF算法可以获得最小的响应时间。
实验3 操作系统的程序口一、实验目的操作系统管理着计算机系统的所有软件资源和硬件资源。
为了让终端用户方便地使用计算机,一般操作系统都提供了人机界面,让计算机前的人能通过命令接口和图形接口来获取操作系统提供的服务。
另外,为了方便用户通过程序来使用计算机资源、获取操作系统提供的各种服务,操作系统还往往给用户提供了另外一个接口——程序接口,也叫系统调用。
系统调用可以看作是用户程序在程序一级请求操作系统为之服务的一种手段。
在操作系统的管理下,运行中的用户程序通过“程序口”或“系统调用”,使得当前处理机的状态发生改变(从用户态“自陷(陷入)”转变为系统态),从而执行操作系统提供的服务。
一旦系统调用完毕,处理机的状态就又会从系统态返回到用户态。
Linux操作系统的程序口就是它所说的“系统调用”,Windows操作系统则提供了一些API(Application Programming Interface)函数,用户通过这些函数,来引发操作系统的系统调用。
Visual Basic 6.0、Visual C++ 6.0是微软开发的两个十分流行的开发工具,本次实验将在这两个环境下进行。
通过该实验,意在让学生了解操作系统留给用户的程序接口,并在开发环境中体会一下程序口的使用方法。
二、实验内容和要求1.Windows API包括哪些方面的内容?Windows API 就是windows应用程序接口,是针对microsoft windows操作系统家族的系统编程接口,这样的系统包括Windows 7,Windows Vista、Windows XP、Windows Server 2003、Windows 2000、Windows 95、Windows 98、Windows Me(Millennium Editon)和Windows CE等几乎所有版本。
Windows API包括几千个可调用的函数,它们大致可以分为:基本服务、组件服务、用户界面服务、图形多媒体服务、消息和协作、网络、Web服务2.什么是动态链接库?动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。
Windows系统编程课程设计一、前言Windows系统编程是一门非常重要的计算机科学课程,它能够让我们深入了解操作系统的内部机制,掌握Windows系统编程的核心概念和技术,从而为我们今后的职业发展打下良好的基础。
为了帮助学习者更好地掌握这门课程,本文将介绍一些有关Windows系统编程课程设计的内容,以及如何通过编程实践来深入理解此课程的核心知识。
二、课程设计内容Windows系统编程是一门包罗万象的课程,它涉及的内容非常之广,从系统调用、Windows驱动程序到编写基于Windows API的GUI应用程序,每个方面都需要我们认真学习和实践。
在本文中,我们将为大家介绍一些基本的课设内容,以帮助大家更好地学习和理解Windows系统编程。
1. 系统调用系统调用是操作系统最基本的服务之一,它可以让用户程序向内核发出请求,让内核完成一些底层操作。
在Windows系统编程中,我们需要了解如何使用Windows API中的系统调用函数,例如CreateFile、ReadFile、WriteFile等,这些函数在Windows编程中非常常用。
我们可以根据需要编写一些小程序来练习使用系统调用函数。
2. Windows驱动程序开发Windows驱动程序是一种系统级别的软件,它能够让外设与操作系统之间进行通信,是Windows系统编程中非常重要的一部分。
我们需要了解Windows驱动程序的结构和原理,掌握Windows驱动程序的编写方法,以及如何将驱动程序与外设进行交互。
我们可以在Windows系统中安装一些外设驱动程序,分析其结构和原理,然后根据需要编写自己的驱动程序。
3. Windows应用程序开发Windows应用程序开发是Windows系统编程中最常见的一部分,它可以让我们开发各种各样的GUI应用程序,包括图形界面、控制台应用程序等。
在Windows应用程序开发中,我们需要了解Windows API中的一些重要函数和控件,例如CreateWindow、MessageBox、Button等,掌握如何使用它们来开发Windows应用程序。
1.简述中断处理过程答:当中断发生的时,一旦CPU响应中断,系统就开始进行中断处理。
中断处理过程如下:一、保护被中断进程现场。
为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理机的状态字(PSW)和程序计数器(PC)等的值。
二、分析中断原因,转去执行相应的中断处理程序。
在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
三、恢复被中断进程的现场CPU继续执行原来的被中断的进程。
2、处理机为什么要区分管态和目态两种操作方式?在什么情况下进行两种方式的转换?答:区分管态和目态两种操作方式的目的是为了保护操作系统程序。
目态到管态的转换发生中断产生时,而管态到目态的转换则发生在中断返回到用户程序时。
3、叙述系统调用的概念和操作系统提供系统调用的原因。
答:系统调用也称程序接口,是程序级的接口,即用户程序可以利用系统调用提供的一族系统调用命令去调用操作系统内核中的一个或是一组过程来完成自己所需要的功能。
系统调用可以看成是操作系统内核和应用程序之间进行交互的接口,操作系统向用户程序提供系统调用的原因是为了对系统进行“保护”。
当用户程序需要系统服务,也就是要调用系统内核中的某些程序时,只能从规定的位置进入内核,这样才能保证系统的安全。
4、什么叫做重定位?有哪几种重定位技术?有何区别?答:重定位是把程序中的相对地址转换为绝对地址。
程序进行重定位的技术分为两种:静态重定位技术和动态重定位技术。
区别:静态重定位技术是用户作业在装入内存时由装入程序实现从逻辑地址到物理地址的转换。
而动态重定位技术是程序在执行过程中,CPU在访问程序和数据之前才实现地址转换,整个过程需要借助硬件地址转换机构来实现。
5、为什么要引入进程的概念?进程的基本特点是什么?它与程序有何联系和区别。
答:进程的概念是操作系统中最基本的概念。
为了描述系统内部出现的情况,系统内部各作业的活动规律而引进的一个新的概念,由于处在这样一个多道程序系统所带来的更为复杂的环境中,程序具有了并发,制约,动态的特征,使得原来的程序概念已难以刻画和反映系统中的情况了。
默认分类390 0
42
与进程相关的结构主要包括进程块(EPROCESS)、进程环境块(PEB)、线程块(ETHREAD)、线程环境块(TEB),它们之间的关系如下图:
(1)进程块(EPROCESS):每个Windows进程通过进程块来描述,其中包含于进程相关的属性,同时还指向其他的数据结构。
(2)进程环境块(PEB):存放进程信息,每个进程都有自己的PEB信息。
位于用户地址空间。
在Win 2000下,进程环境块的地址对于每个进程来说是固定的,在0x7FFDF000处,这是用户地址空间,所以程序能够直接访问。
准确的PEB
在进行系统调用之前,EAX中保存系统调用服务ID,而EDX中保存了调用参数的堆栈指针,然后引发INT 2Eh中断。
(1)Windows 2000中的系统调用执行过程:
ServiceId:请求的中断服务ID
ParameterTable:中断服务对应的参数
ParamTableBytes:参数个数信息
添加Hook的过程:先在系统中找到IDT,然后确定2Eh在IDT中的地址,最后将用户定义的函数地址去取代它。
当用户态进程一旦调用系统服务就会触发Hook函数。
(2)Windows XP中系统调用执行流程:
其中rdmsr是获取IA_SYSENTER_EIP寄存器中的地址,即中断处理程序地址,不用进行上述查找过程。