windows系统调用

windows系统调用

ID:48314968

大小:115.92 KB

页数:4页

时间:2020-01-13

windows系统调用_第1页
windows系统调用_第2页
windows系统调用_第3页
windows系统调用_第4页
资源描述:

《windows系统调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Windows系统调用浅析默认分类2009-11-0517:39:15阅读390评论0  字号:大中小 订阅      网上关于Linux系统调用的资料很多了,介绍都很详细。而最近需要了解下Windows系统调用,发现Windows的系统调用机制比Linux的复杂很多,可能是初次接触比较陌生的缘故。我在此只是进行简单的分析,基本上都是查看别人的资料,再加上自己的理解。(说明:毛得操老师写的关于《Windows内核源码情景分析》是本很好的参考资料,建议大家有兴趣的看看)      X86体系结构提供了4个特权级(ring0,1,2,3),Wi

2、ndows只使用了其中的2个特权级,分别是ring0(内核空间),ring3(用户空间)。在默认情况下,Windows将低2GB的地址空间。 与进程相关的结构主要包括进程块(EPROCESS)、进程环境块(PEB)、线程块(ETHREAD)、线程环境块(TEB),它们之间的关系如下图: (1)    进程块(EPROCESS):每个Windows进程通过进程块来描述,其中包含于进程相关的属性,同时还指向其他的数据结构。(2)    进程环境块(PEB):存放进程信息,每个进程都有自己的PEB信息。位于用户地址空间。在Win2000下,进程环

3、境块的地址对于每个进程来说是固定的,在0x7FFDF000处,这是用户地址空间,所以程序能够直接访问。准确的PEB地址应从系统的EPROCESS结构的0x1b0偏移处获得,但由于EPROCESS在系统地址空间,访问这个结构需要有ring0的权限。还可以通过TEB结构的偏移0x30处获得PEB的位置,FS段寄存器指向当前的TEB结构:moveax,fs:[0x30]movPEB,eax在用户态下WinDbg中可用命令$proc取得PEB地址。(3)    线程块(ETHREAD):Windows线程通过线程执行体来描述,除了TEB之外的结构都

4、位于内核地址空间。(4)    线程环境块(TEB):系统在此TEB中保存频繁使用的线程相关的数据。位于用户地址空间,在比PEB所在地址低的地方。进程中的每个线程都有自己的一个TEB。一个进程的所有TEB都以堆栈的方式,存放在从0x7FFDE000开始的线性内存中,每4KB为一个完整的TEB,不过该内存区域是向下扩展的。在用户模式下,当前线程的TEB位于独立的4KB段,可通过CPU的FS寄存器来访问该段,一般存储在[FS:0]。在用户态下WinDbg中可用命令$thread取得TEB地址。FS寄存器保存了TEB结构的指针,TEB结构如下: 

5、位置长度描述FS:004当前结构化异常处理帧…  FS:20h4进程IDFS:24h4线程ID…  FS:30h4PEB的线性地址…     在Intelx86架构上的Windows系列,Windows2000通过执行int0x2e来激活系统调用;而Windows2003/XP通过执行sysenter(Intel)/syscall(AMD)指令来进行系统调用。Windows操作系统以动态链接库的方式导出大量API供应用程序调用,主要分为2类:(1)    运行在用户态,可供应用程序直接调用。(2)    运行在内核态,需要陷入(trap)才

6、能调用,称为NativeAPI,在ntoskrnl.exe中实现,通过ntdll.dll进行调用。 在进行系统调用之前,EAX中保存系统调用服务ID,而EDX中保存了调用参数的堆栈指针,然后引发INT2Eh中断。(1)Windows2000中的系统调用执行过程:ServiceId:请求的中断服务IDParameterTable:中断服务对应的参数ParamTableBytes:参数个数信息添加Hook的过程:先在系统中找到IDT,然后确定2Eh在IDT中的地址,最后将用户定义的函数地址去取代它。当用户态进程一旦调用系统服务就会触发Hook函

7、数。(2)WindowsXP中系统调用执行流程:其中rdmsr是获取IA_SYSENTER_EIP寄存器中的地址,即中断处理程序地址,不用进行上述查找过程。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。