默认分类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寄存器中的地址,即中断处理程序地址,不用进行上述查找过程。