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. 转: java学习路线图
  2. html里面onclick属性是什么,html中onclick事件属性定义与用法
  3. 第七个猴子java_黑猴子的家:Java SE 练习题第七章
  4. 线程的基本协作和生产者消费者
  5. 静态资源存储 vs 对象资源存储
  6. 服务器找不到硬盘如何解决方案,Linux云服务器磁盘不见了?解决方案在这里
  7. SpringMVC_跟踪请求
  8. 欢迎界面java_Linux命令行欢迎界面美化
  9. matlab_一组数据元素随机排列
  10. spark开发环境配置
  11. @PostConstruct 注解没有初始化
  12. [C#]写自己的类库
  13. HTML文档解析器 NekoHTML
  14. python爬取58同城的兼职信息
  15. pygame学习笔记——检测鼠标碰到、点击图片
  16. 教育资源平台空间装扮html代码,一看就会—— 河南省基础教育资源公共服务平台“人人通空间”...
  17. 女程序员开淘宝店兼职---详细注册成为淘宝商家步骤
  18. 高性能数据库引擎 CoolHash 产品宣言 Fourinone4.0版新特性(转)
  19. 机器学习算法之集成方法
  20. 客户成功—以客户为中心,为客户创造价值

热门文章

  1. SpringBoot高级-消息-AmqpAdmin管理组件的使用
  2. html2canvas截图页面中某块区域的图不全_截图操作千千万,唯舒适最重要!你更Pick谁?...
  3. Java Agent
  4. redis(11)--AOF持久化
  5. android分钟倒计时,Android 三十分钟倒计时
  6. 解决MySQL报错ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)
  7. Delphi的System.Str - 将数字格式化为字符串
  8. Linux watch 监控系统状态
  9. [CF475E]Strongly Connected City 2
  10. 面向连接的套接字通信工作流程