这个跟KeServiceDescriptorTable的结构有关
下面是KeServiceDescriptorTable的结构定义
KeServiceDescriptorTabletypedef struct _KSERVICE_TABLE_DESCRIPTOR {
PULONG_PTR Base;
PULONG Count;
ULONG Limit;
PUCHAR Number;
} KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR;
KeServiceDescriptorTable.ServiceTableBase就是其中的第一项Base,这里是定义的名字不一样没关系。
而Base指向的SSDT函数地址表,所以下面的语句就是一个宏用来取得函数地址表中对应序号的函数
KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_func+1) *(PULONG)((PUCHAR)_func+1这里要解释下,这个语句是取函数它对应的SSDT上的序号,这个语句之所以能去到,跟ZW 系列SSDT函数有关,ZW系列函数的第二个字节就是序号,所以用上面语句取出序号,然后用这个序号取出函数地址

#define SYSTEMSERVICE(_func) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_func+1) 这的更多相关文章

  1. SSDT表详解

    SSDT(system service dispatch table) 系统服务分派表 SSPT(system service parameter table) 系统服务参数表 #pragma pac ...

  2. hook NtTerminateProcess进行应用的保护

    这段时间在学习驱动,然后看到hook ssdt的代码,找了一个写的清晰的学习了一下:http://www.netfairy.net/?post=218 这里是hook NtOpenProcess,但是 ...

  3. SSDT表函数Hook原理

    其实 SSDT Hook 的原理是很简单的,我们可以知道在 SSDT 这个数组中呢,保存了系统服务的地址,比如对于 Ring0 下的 NtQuerySystemInformation 这个系统服务的地 ...

  4. Windows2003 内核级进程隐藏、侦测技术

    论文关键字: 内核 拦截 活动进程链表 系统服务派遣表 线程调度链 驱动程序简介    论文摘要:信息对抗是目前计算机发展的一个重要的方向,为了更好的防御,必须去深入的了解敌人进攻的招式.信息对抗促使 ...

  5. X86 下的SSDT HOOK

    目录 SSDTHOOK 1.SSDTHOOK 原理. 1.x32下的SSDT HOOK 2.SSDT HOOK代码 3.结果 4.总结 SSDTHOOK 1.SSDTHOOK 原理. x32下,直接获 ...

  6. 驱动插ring3线程执行代码

    近日有在写一个小东西 需要在内核态中运行一个WIN32程序 之前提到的插入APC可以满足部分要求 但是一到WIN7 x86平台下就崩溃了WIN7下只能插入第三方的进程 一插入系统进程就崩溃,但是这样满 ...

  7. SSDT Hook实现简单的进程隐藏和保护【转载】

    原文链接:http://www.blogfshare.com/ssdthook-hide-protect.html 原文作者:AloneMonkey SSDT Hook实现简单的进程隐藏和保护 Alo ...

  8. SSDT Hook结构

    目录 SSDT Hook效果图 SSDT简介 SSDT结构 SSDT HOOK原理 Hook前准备 如何获得SSDT中函数的地址呢 SSDT Hook流程 SSDT Hook实现进程保护 Ring3与 ...

  9. 进程隐藏与进程保护(SSDT Hook 实现)(二)

    文章目录:                   1. 引子 – Demo 实现效果: 2. 进程隐藏与进程保护概念: 3. SSDT Hook 框架搭建: 4. Ring0 实现进程隐藏: 5. Ri ...

随机推荐

  1. pxe装机试验 2019.8.21

    部署FTP服务 1.安装FTP服务,并将安装源复制到/var/ftp/centos7目录下: [root@pxe ~]# yum -y install vsftpd [root@pxe ~]# mkd ...

  2. (PASS)java中nextInt()函数

    一:获取随机数的函数: package test; import java.util.Random; /** * * @ClassName: NextIntDemo * @Description: n ...

  3. pycharm破解教程

    转载 查询 https://blog.csdn.net/u014044812/article/details/86679150

  4. 常用的Docker镜像及处理命令

    常用的镜像命令 docker run -d --name dockerui -p : -v /var/run/docker.sock:/var/run/docker.sock abh1nav/dock ...

  5. shell脚本中:单引号和双引号的区别

    单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin ...

  6. Spring容器对Bean组件的管理

    Bean对象创建 默认是随着容器创建 可以使用 lazy-init=true:在调用 getBean 延迟创建 也可以用 <beans default-lazy-init="true& ...

  7. Python 爬取拉钩网工作岗位

    如果拉钩网html页面做了调整,需要重新调整代码 代码如下 #/usr/bin/env python3 #coding:utf-8 import sys import json import requ ...

  8. 关于C++里set_intersection(取集合交集)、set_union(取集合并集)、set_difference(取集合差集)等函数的使用总结

    文章转载自https://blog.csdn.net/zangker/article/details/22984803 set里面有set_intersection(取集合交集).set_union( ...

  9. Java--下大雪模拟

    package firstpack; import java.awt.*; public class MyStar { public static void main(String[] args) { ...

  10. 由于某些原因无法博客搬家,现在换马甲了 http://blog.csdn.net/qq_32066409

    由于位置原因无法博客搬家,现在换马甲到csdn了地址如下http://blog.csdn.net/qq_32066409