1       Ssdt表的基本结构

KeServiceDescriptorTable 首地址:8055D700

0: kd> dd KeServiceDescriptorTable

8055d700  80505460 00000000 0000011c 805058d4

8055d710  00000000 00000000 00000000 00000000

8055d720  00000000 00000000 00000000 00000000

8055d730  00000000 00000000 00000000 00000000

8055d740  00000002 00002710 bf80c349 00000000

8055d750  f7aeaa80 863d0340 863650f0 806f70c0

8055d760  025d954c 00000000 c136d144 00000001

8055d770  04a0f484 01cdcd68 00000000 00000000

KeServiceDescriptorTable的起始地址为:80505460

第n个函数地址为:80505460 + 4 * N

第1个函数地址为:80505460 + 4 * 1

2       Ssdt hook的基本原理

HookOpenProcess测试从Windbg

  1. 找出KeServiceDescriptorTable起始地址

0: kd> dd KeServiceDescriptorTable

8055d700  80505460 00000000 0000011c 805058d4

8055d710  00000000 00000000 00000000 00000000

8055d720  00000000 00000000 00000000 00000000

8055d730  00000000 00000000 00000000 00000000

8055d740  00000002 00002710 bf80c349 00000000

8055d750  f7aeaa80 863d0340 863650f0 806f70c0

8055d760  025d954c 00000000 1ffd4a44 00000004

8055d770  63676d84 01cdcd6a 00000000 00000000

  1. 找出OpenProcess的地址

首先找出他的序号为 0x7a

则地址为: 80505460 + 4 * 0x7a =  80505648

修改OpenProcess的地址 为00001234(乱改的)

0: kd> ed 80505648 00001234

查看修改后的地址

0: kd> dd 80505648

80505648  00001234 805ee730 805ee394 805ab3d0

80505658  80615828 805c4baa 805cc696 805ee74e

80505668  805ee504 80617770 80646176 805ca4bc

80505678  805f8b10 805f473a 805f4926 805b93e8

80505688  8060f7e6 80577ed6 80617110 80617110

80505698  80540bc6 806113d8 80612038 8057ae64

805056a8  805bf61c 8057b1b2 8060f8ae 8057802a

805056b8  806168ac 8057ba1e 805d6c28 805a63c8

查看工具检测的结果

出处:http://www.cnblogs.com/zhangdongsheng/
作者:张东升 QQ:290387340

ssdt 表结构及hook的一般理解相关推荐

  1. 32位的SSDT表结构浅析

    以win7 x86为例(x64就不是我等菜鸟玩的了) 预备资料: 本地系统服务的地址在内核结构中称为系统服务调度表(System Service Dispatch Table, SSDT)中列出.该表 ...

  2. HBase系列(一):HBase表结构及数据模型的理解

    专栏:大数据核心原理与实践 HBase适用场景 首先在搞HBase之前我们要对其建立感性认识,其适用场景如下: 并发.简单.随机查询. (注:HBase不太擅长复杂join查询,但可以通过二级索引即全 ...

  3. 驱动开发:内核读取SSDT表基址

    在前面的章节<X86驱动:挂接SSDT内核钩子>我们通过代码的方式直接读取 KeServiceDescriptorTable 这个被导出的表结构从而可以直接读取到SSDT表的基址,而在Wi ...

  4. X64驱动:读取SSDT表基址

    前面的驱动编程相关内容都是在32位环境下进行的,驱动程序与应用程序不同,32位的驱动只能运行在32位系统中,64位驱动只能在64位系统中运行,在WIN32环境下,我们可以各种Hook挂钩各种系统函数, ...

  5. Activiti——数据表结构

    备注: 本文转自:http://blog.csdn.net/hj7jay/article/details/51302829 转载目的在于个人学习使用,如有涉及著作权相关问题,请联系本人,本人将第一时间 ...

  6. zabbix数据库表结构简单解析

    zabbix数据库表结构-持续更新 时间 2014-06-11 21:59:08  furion's blog 原文  http://www.furion.info/623.html 主题 MySQL ...

  7. 【Zabbix】 Zabbix表结构说明【转载】

    本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...

  8. 驰骋工作流引擎设计系列04 流程引擎表结构的设计

    第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第1节. 流程引擎表结构的设计 流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表.理 ...

  9. hadoop元数据mysql中表字段_Hive 元数据表结构详解

    元数据是基础,这篇文章值得一读. 本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala.SparkSQL.Hive等组件访问元数据库的理解. 1.存储Hive版本的元数据表(VERSIO ...

最新文章

  1. 基于Springboot实现宠物医院综合管理系统
  2. 中国AI创业公司霸榜NeurIPS-AutoDL竞赛,冠军代码已开源
  3. 基于pygame的射击小游戏制作(一)让飞船动起来
  4. simpy报错RuntimeError: <Event() object at 0xxxxxx> has already been triggered
  5. [转]webkit webApp 开发技术要点总结
  6. 组态软件android版,昆仑通态组态软件
  7. 微软补丁日安全公告|11月份
  8. 2020年对口升学计算机应用模拟题,2020年江西省对口计算机试卷
  9. Android富文本编辑器
  10. 2021暑期实习:网易互娱游戏测试最新面经!
  11. LaTeX新手入门以及TeXlive和TeXstudio的安装使用
  12. fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory
  13. 利用转写软件进行高效记录
  14. 计算机没有检查到您的u盾,Win10检测不到U盾怎么办?
  15. ubuntu中查找文件后高亮_vim的高亮查找操作
  16. Ubuntu登陆不进去的一个原因
  17. Verdi的简单使用命令笔记
  18. FZU:I. Fire Game
  19. react-fetch详谈
  20. 力扣 338. 比特位计数

热门文章

  1. springboot 切换日志实现
  2. elasticsearch客户端介绍
  3. spring的依赖注入
  4. Response_案例1_重定向_特点
  5. SpringBoot高级-消息-@RabbitListener@EnableRabbit
  6. 动态添加行 为元素解绑事件 delegate的解绑事件 off的解绑事件
  7. docker命令整理
  8. JUnit 5 常用注解与方法
  9. CentOS 7 yum方式快速安装MongoDB
  10. STC12单片机串口U盘测试程序源码