摘要: 1.EPROCESS结构体 EPROCESS块来表示。EPROCESS块中不仅包含了进程相关了很多信息,还有很多指向其他相关结构数据结构的指针。例如每一个进程里面都至少有一个ETHREAD块表示的线程。进程的名字,和在用户空间的PEB(进程环境)块等等。EPROCESS中除了PEB成员块在是用户空间 阅读全文
posted @ 2016-08-11 16:45 狂客 阅读(3123) 评论(0) 推荐(0) 编辑
摘要: 一、PspCidTable概述 PspCidTable也是一个句柄表,其格式与普通的句柄表是完全一样的,但它与每个进程私有的句柄表有以下不同: 1.PspCidTable中存放的对象是系统中所有的进程线程对象,其索引就是PID和TID。 2.PspCidTable中存放的直接是对象体(EPROCES 阅读全文
posted @ 2016-08-11 16:43 狂客 阅读(3925) 评论(0) 推荐(0) 编辑
摘要: 一、获取ShadowSSDT 好吧,我们已经在R3获取SSDT的原始地址及SDT、SST、KiServiceTbale的关系里面提到:所有的SST都保存在系统服务描述表(SDT)中。系统中一共有两个SDT,一个是ServiceDescriptorTable,另一个是ServiceDescriptor 阅读全文
posted @ 2016-08-11 16:39 狂客 阅读(4455) 评论(0) 推荐(0) 编辑
摘要: [cpp] view plain copy print? ULONG GetShadowSsdtCurrentAddresses( PSSDT_ADDRESS AddressInfo, PULONG Length ) { PSYSTEM_SERVICE_TABLE KeServiceDescript 阅读全文
posted @ 2016-08-11 16:34 狂客 阅读(1936) 评论(0) 推荐(0) 编辑
摘要: 方法1: ZwQuerySystemInformation 这个方法网上一搜一大堆,不举例了 方法2:暴力枚举PID枚举进程,代码: [cpp] view plain copy print? NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICO 阅读全文
posted @ 2016-08-11 16:25 狂客 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 枚举进程模块的方法有很多种,常见的有枚举PEB和内存搜索法,今天,先来看看实现起来最简单的枚举PEB实现获取进程模块列表。 首先,惯例是各种繁琐的结构体定义。需要包含 ntifs.h 和 WinDef.h, 此处不再列出,各位看官根据情况自行添加。 [cpp] view plain copy pri 阅读全文
posted @ 2016-08-11 16:18 狂客 阅读(3117) 评论(0) 推荐(0) 编辑