获取SSDT服务表数据
来源:互联网 发布:鬼玩人3黑暗军团知乎 编辑:程序博客网 时间:2024/05/12 01:51
#include <ntddk.h>
typedef struct _KSYSTEM_SERVICE_TABLE
{
PULONG ServiceTableBase; // SSDT (System Service Dispatch Table)的基地址
PULONG ServiceCounterTableBase; // 包含 SSDT 中每个服务被调用的次数
ULONG NumberOfService; // 服务函数的个数, NumberOfService * 4 就是整个地址表的大小
ULONG ParamTableBase; // SSPT(System Service Parameter Table)的基地址
} KSYSTEM_SERVICE_TABLE, *PKSYSTEM_SERVICE_TABLE;
typedef struct _KSERVICE_TABLE_DESCRIPTOR
{
KSYSTEM_SERVICE_TABLE ntoskrnl; // ntoskrnl.exe 的服务函数
KSYSTEM_SERVICE_TABLE win32k; // win32k.sys 的服务函数(GDI32.dll/User32.dll 的内核支持)
KSYSTEM_SERVICE_TABLE notUsed1;
KSYSTEM_SERVICE_TABLE notUsed2;
} KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR;
//导出由 ntoskrnl.exe 所导出的 SSDT
extern "C"
{
extern PKSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable;
}
void DriverUnload(PDRIVER_OBJECT lpd){
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
_asm{
cli
mov eax,cr0
and eax, not 10000h
mov cr0,eax
}
ULONG i;
for(i=0;i<KeServiceDescriptorTable->ntoskrnl.NumberOfService;i++){
KdPrint(("SSDT函数地址: %d",KeServiceDescriptorTable->ntoskrnl.ServiceTableBase[i]));
}
KdPrint(("修改内核保护成功!"));
_asm{
mov eax,cr0
or eax,10000h
mov cr0,eax
sti
}
KdPrint(("撤销内核修改!"));
DriverObject->DriverUnload=DriverUnload;
return STATUS_UNSUCCESSFUL;
}
去年用masm写过现在在用vc写一遍
- 获取SSDT服务表数据
- XP获取SSDT表
- SSDT HOOK中的获取函数服务号
- 使用WinDbg获取SSDT 系统服务描述表的函数服务号(索引)
- 获取SSDT表函数名
- windows 服务描述表 SSDT&Shadow SSDT Call List
- 驱动编程-ssdt hook--系统服务表
- SSDT获取原始服务地址的方法与原理
- 内核模式下获取SSDT服务索引代码
- Windows 7 RC - Shadow SSDT 服务名表
- Vista下的Shadow SSDT服务函数名表
- 系统服务调度表SSDT及SSSDT Shadow
- 枚举SSDT 系统服务表中的函数地址
- SSDT获取原始服务地址的方法与原理(灯灯灯灯,我肥来了..)
- 一段获取ssdt表及其中函数的简单代码
- x64下获取SSDT表(暴力搜索方式)
- SSDT索引号的获取
- Windbg 查看SSDT表
- leveldb之log写操作
- Windows Phone Gird布局
- 【POJ】3667-Hotel(线段树的区间合并)
- Robotium源码分析之运行原理
- 使用红杏公益代理,更新Android Studio,SDK以及Gradle等
- 获取SSDT服务表数据
- STL组件——算法
- Java多线程理解
- windows 8.1 IIS8 发布MVC5项目时,提示“该操作需要IIS集成管线模式”的可能的一种解决办法
- parallax(视差)效果源码分析
- robotium关键源码解释
- Android自定义控件系列四:自定义开关按钮(三)--- 自定义属性
- 使用SQLite3存储和读取数据
- 苹果