摘要:
R3层枚举进程模块的方法有以下三种: 1.ToolHelp库 2.PsApi库 3.遍历Peb中的Ldr链表 1.ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 0); if (hSna 阅读全文
摘要:
R3层枚举进程主要有两种方法,使用ToolHelp库及PsApi库 ToolHelp库: 点击查看代码 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDL 阅读全文
摘要:
创建进程共有六个阶段: I:打开目标映像文件 Ⅱ:创建Windows的(内核)管理层进程对象,即“进程控制块”EPROCESS数据结构及相应的句柄 Ⅲ:创建该进程的初始(第一个)线程,包括其堆栈、上下文,以及“管理层线程对象”,即“线程控制块”ETHREAD数据结构及相应的句柄 Ⅳ:将新创建的进程通 阅读全文
摘要:
分页机制和映射过程 x86 : CR3-PDT-PTT-offset 10-10-12 x86 with PAE : CR3-PDPT-PDT-PTT-offset 2-9-9-12 EPT(x64) : EPTP-PML4E-PDPTE-PDE-PTE-offset 9-9-9-9-12 x86 阅读全文
摘要:
KiFastCallEntry函数有什么用??? Ring0层Zw系列函数(如ZwSetEvent)在设置完函数服务号之后会调用KiSystemService函数, 在KiSystemService函数中又会跳转到KiFastCallEntry函数内部获取SSDT表的基地址,系统函数服务号,进而获得 阅读全文
摘要:
SSDT表是什么?有什么用? SSDT(System Service Descriptor Table,系统服务描述符表),用来存储服务函数索引及服务函数地址。通过该表被保护起来,只具读的属性,不能写。(不过可以使用CRO寄存器的第1位来改变SSDT的属性。CRO寄存器第1位叫做保护属性位,控制着页 阅读全文
