Windows的环境下驱动保护进程浅析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows的环境下驱动保护进程浅析

Windows的环境下驱动保护进程浅析   【摘 要】随着技术的发展,计算机系统已经通过特定程序可实现任意操作,微软的windows是使用最广泛的系统之一,其中,Rootkit技术在windows下最常见的实现方式当属驱动级的内存技术对抗,它被广泛的应用于游戏保护,杀毒软件防护等方面。   【关键词】对抗 驱动 Windows API Hook   一、Intel X86处理器   Intel的X86处理器是通过Ring级别来控制访问权限的,级别共分4层,从Ring0到Ring3(后面简称R0,R1,R2,R3)。R0层拥有最高的权限,R3层拥有最低权限。而现在的操作系统,包括Windows和Linux都没有采用4层权限,而只是使用了2层―R0层和R3层,分别用来存放操作系统数据和应用程序数据。   二、用户模式和内核模式   Windows从总体上分为内核模式(Kernel Mode)和用户模式(User Mode),Windows将内核模式运行在CPU的R0层,而将用户模式运行在CPU的R3层。而驱动程序一旦加载,就运行在R0层,就拥有了和操作系统同样的权限,可以做任何事情。   三、WIN32子系统   Win32是Windows的一个子系统,还有另外的子系统如OS/2、POSIX、WOW等。不同的子系统系统提供了不同的编程接口,即API,一般说的API指的就是Win32 API。Win32子系统是最纯正的Windows子系统,提供了大量的API函数,程序员只需要熟练的使用这些API就可以写出Windows应用程序,当然程序员也可以考虑第三方库,如VC提供的MFC,但这些库不过是在应用程序和Win32子系统中间加了一层封装而以,没有本质的区别。Windows API 分为三类 分别是USER函数,GDI函数,和KERNEL函数。USER函数(user32.dll):这类函数管理窗口,菜单,对话框和控件;GDI函数(gdi32.dll):这类函数在物理设备上执行绘图操作;KERNEL函数(kernel32.dll):这类函数管理非GUI资源,如进程、线程和同步服务等。   四、Native API(Ntdll.dll)   大部分Win32子系统的API都是通过Native API实现的。Native API的函数一般都是在Win32 API上加上Nt两个字母。Native API 是可由用户模式和内核模式程序调用的NT系统服务集接口,它们直接由操作系统实现。   五、SSDT   SSDT的全称是System Services Descriptor Table,系统服务描述符表。这个表就是一个把R3的Win32 API和R0的内核API联系起来。SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。系统服务是由操作系统提供的一个函数集,这些函数可以帮助调用者实现系统的各种功能。用户态的应用程序可以通过API函数间接地调用系统服务。在内核态中,系统通过服务描述符表寻找相应系统服务函数。在系统中有2个描述符表(SYSTEM_DESCRIPTOR_TABLE 结构):(1)KeServiceDescriptorTable,由ntosknl.exe导出,主要为KERNEL32和ADVAPI32中的API提供服务;(2)KeServiceDescriptorTable Shadow,未被导出,主要完成USER32/GUI32中的请求。每个描述符表由4个连续的系统服务表(System Service Table, SST)的表项组成,每项可以描述一组服务。每组服务由一个系统服务分发表(System Service Dispatch Table, SSDT)和一个系统服务参数表(System Service Parameter Table, SSPT)组成,分别对服务的入口地址和所需参数进行索引。每个服务有一个服务序号,系统根据这个序号查找2个表,最终可找到相应的服务函数和参数信息。   六、sysenter和sysexit指令   从R3切换到R0层,早期的操作系统一般通过中断来实现,如Linux下的 int 80h,Windows NT和Windows2000下的 int 2Eh。而在Windows XP以后则使用了快速系统调用sysenter和sysexist来进行系统调用和返回。   七、驱动文件   亦为PE格式的一种,含有用户模式驱动、文件系统驱动等,各类驱动配合操作系统内核组成了庞大的windows系统,用户层应用程序调用API,该API对应用程序提供的参数进行校验再将所有东西转化为unicode,然后调用ntdll.dll中的K

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档