ssdt 表结构及hook的一般理解

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

查看工具检测的结果

时间: 2024-08-28 13:08:28

ssdt 表结构及hook的一般理解的相关文章

Activiti数据库表结构(表详细版)

Activiti数据表结构 1  Activiti数据库表结构 1.1      数据库表名说明     Activiti工作流总共包含23张数据表,所有的表名默认以"ACT_"开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : "GE"代表"General"(通用),用在各种情况下: u  ACT_HI_* : "HI"代表"History

MySQL数据库性能优化之表结构优化

很多人都将<数据库设计范式>作为数据库表结构设计"圣经",认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求.殊不知,在N年前被奉为"圣经"的数据库设计3范式早就已经不完全适用了.这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用. 这是 MySQL数据库性能优化专题 系列的第二篇文章:MySQL 数据库性能优化之表结构优化 系列的第一篇文章:MySQL 数据库性能优化之缓存参数优化

架构师-如何创建一个不容被修改的数据库表结构?

问题描述 如何创建一个不容被修改的数据库表结构? 我想学习创建数据库表结构,但是不知道如何下手,求大神解答 刚才的问题有歧义,我修改了下. 然后声明下: 我会用数据库建模工具 我就是不太明白如何创建一个好的数据库结构,一个不容易被修改的结构,一个高效的结构 -------------------分割线----------------------- 如果让你们创建表结构你们如何创建呢?求思路~ 解决方案 不存在什么不容易被修改的表结构.首先你的程序决定了修改还是不修改. 如果你不信任你的程序,你可

获取Lua表结构(table)数据实例_Lua

只是获取一个全局变量什么的太没意思了,今天我们来玩个高难度的--获取Lua表结构的数据. (旁白:O O!我是不是该说点什么?) 上一章传送门:http://www.jb51.net/article/55093.htm 1. 什么是table table是Lua里最强大的数据类型,我们可以当成是数组,但是它又和数组有点不一样,建议大家看看Lua的语法教程,因为我对table也没有熟悉到可以给大家解释的程度. (旁白:那你还写什么教程...) 2. 获取table变量 现在,我们给helloLua

ERP的物料表结构是怎么设计的

问题描述 我所在公司是开发企业库存管理软件的.我们的客户属于各个不同的行业,物料结构有很大差异.举例来说,一家纺织行业的公司的物料表有花号字段,另一家生产器材的公司的物料表有形式字段,其他行业还有不同的字段.以上是举例,实际的差异要更大.每次有新项目,都要重新确定字段.为了减少项目的工作量,我们打算编写一个基础版本,但在设计物料表结构时遇到了困难,开发人员不指定怎么设计物料表.目前想到四种可能性:1,将最常规的字段写在基础版本里,不管行业怎么变,物料名称,物料条码这些字段都是要有的.这个方式仅做

MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)_Mysql

殊不知,在N年前被奉为"圣经"的数据库设计3范式早就已经不完全适用了.这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用.     由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了.反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接

[20171113]修改表结构删除列相关问题3.txt

[20171113]修改表结构删除列相关问题3.txt --//维护表结构删除字段一般都是先 ALTER TABLE <table_name> SET UNUSED (<column_name>); --//然后等空闲时候删除列. ALTER TABLE <table_name> DROP UNUSED COLUMNS CHECKPOINT <n>; --//参考文档: https://docs.oracle.com/cd/E11882_01/server.

mysql在线修改表结构大数据表的风险与解决办法归纳

整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在.所以我很想看看业界是怎么做的,我想寻找有没有更高级的方案,呵呵,让我觉得每次开发一个新功能,我在线加字段都比较纠结.后来只知道,不清楚在什么时候,无意中看到一个资料介绍online-schema-change这个工具,于是

mysql 复制表数据,表结构的3种方法

 什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份.如果用mysqldump比较麻烦,备份.MYD,.MYI这样的文件呢,操作起来也还是麻烦. 一,复制表结构 方法1: mysql> create table a like users; //复制表结构 Query OK, 0 rows affected (0.50 sec)   mysql> show tables; +------+ | Tables_i