SSDT 概述

      SSDT 的全称是System Services DescriptorTable,系统服务描述符表。这个表就是一个把ring3(应用层)的Win32API和ring0(内核层)的内核API联系起来的角色。对于一个干净的SSDT表来说,它里边的表项应该都是指向ntoskrnl.exe的;当程序的处理流程进入ring0之后,系统会根据服务号(eax)在SSDT这个系统服务描述符表中查找对应的表项,这个找到的表项就是系统服务某函数的真正地址。之后,系统会根据这个地址调用相应的系统服务函数,并把结果返回给ntdll.dll中。SSDT所示即为系统服务描述符表的各个表项;ntoskrnl.exe则为Windows系统内核服务进程(ntoskrnl即为NTOSKerneL的缩写),它提供了相对应的各个系统服务函数。ntoskrnl.exe这个文件位于Windows的system32目录下。根据你处理器的不同,系统内核服务进程可能也是不一样的。真正运行于系统上的内核服务进程可能还有ntkrnlmp.exe、ntkrnlpa.exe这样的情况。sxtpxa


Winsock,即 Windows 套接字。为 Windows 下的软件提供TCP/IP 接口的应用程序编程接口 (API) 标准。sxtpxa
sxtpxa
  WinSock是在90年代初,为了方便网络编程而由Microsoft联合几家公司共同制定的一套WINDOWS下的网络编程接口,即WindowsSockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。Socket也称为“套接字”。sxtpxa
sxtpxa
  Winsock 2是一个接口,而不是协议,所以它可以用于发现和使用任意数量的底层传输协议所提供的通信能力。起初的Winsock是围绕着TCP/IP协议运行的,但是在Winsock2中却增加了对更多传输协议的支持。Winsock 2不仅提供了一个供应用程序访问网络服务的Windowssocket应用程序编程接口(API),还包含了由传输服务提供者和名字解析服务提供者实现的Winsock服务提供者接口(SPI)和ws2_32.dll。本文仅讨论传输服务提供者及其应用,暂不对名字解析服务提供者进行分析。sxtpxa
  Winsock2的传输服务提供者是以动态链接库的形式(DLL)存在的,它是通过WSPStartup函数为上层函数提供接口,而其他的传输服务提供者函数则是通过分配表的方式来访问WS2_32.DLL。传输服务提供者的动态链接库只有在应用程序需要时才由Ws2_32.dll来装入内存中的,在不需要时则会被自动卸载。sxtpxa
sxtpxa
sxtpxa
  “如果不想别人使用某个软件,只要在其安装目录下新建一个名为ws2_32.dll的文件,这样系统就会提示应用程序出错而禁止运行。请问为什么?”sxtpxa
  现在,我们来看网络上流行的一句话(上面的),明白他的原理了吗?那么,明白他的局限性了吗?sxtpxa
  提示:1,必须这个程序使用Winsock。2,程序运行时需要先加载这个DLL,而程序寻找这个DLL时的顺序是先当前目录下寻找,找不到再从环境变量PTAH中寻找。sxtpxa
 
sxtpxa
sxtpxa
包含的启动路径:sxtpxa
HKLM/System/CurrentControlSet/Services/WinSock2/Parameters/Protocol_Catalog9 sxtpxa
 
 FSD(文件系统驱动),文件格式有特定的程序来识别并读取使用,而文件系统格式则由特定的驱动来识别并读取使用。sxtpxa
CDFS格式:Cdfs.syssxtpxa
UDFS格式:Udfs.syssxtpxa
FAT格式:Fastfat.syssxtpxa
NTFS格式:Ntfs.syssxtpxa
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值