使用WinDbg获取SSDT 系统服务描述表的函数服务号(索引)
今天研究了一下午SSDT的东东,最尴尬的是起初我不知道如何获取到SSDT的函数服务号,而这个玩意儿在不同版本的windows是不一样的,后面经过研究还是找到了正确的方法.这里简单的分享一下.
· 先用个图温习一下Win32API的调用流程吧
这里以函数QuerySystemInformation为例子
· 使用WinDbg获取SSDT函数表对应的索引
要知道Ntdll.dll中的Win32 API只是一个外壳而已,当从Ring3进入Ring0的时候会将所需要的SSDT索引放入到寄存器EAX中去,所以我们只需要获取到EAX的内容就可以知道函数对应的服务号了.
好的,我们开始吧,首先打开你的WinDbug,我们以函数QuerySystemInformation为例,我们输入:
Kd>u nt!ZwQuerySystemInformation
输出:
看到了吧,mov eax 105h,也就是说我们的服务号是105h.
来验证一下,看看是不是函数NtQuerySystemInformation。
我们先获取到SSDT的地址:
可以看到SSDT的地址是 83EC0D9C
然后通过服务号计算一下SSDT表中这个服务的位置。
Address = SSDT+4*服务号
我们得到结果为:0x83EC0D9C + 4*0x105 = 0x83EC11B0
然后使用命令:
Kd>dd 83EC11B0
我们得到函数的地址是 84073CD4
在使用u命令:
kd>u 84073CD4
看到了吧,我们成功的找到了函数NtQuerySystemInformation的地址.也就是说我们的服务号是正确的.
使用WinDbg获取SSDT 系统服务描述表的函数服务号(索引)相关推荐
- 系统服务描述表指针查找
反汇编KiSystemCall64 kd> uf KiSystemCall64 Flow analysis was incomplete, some code may be missing nt ...
- Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表
目录 示例 代码 交叉汇总表 建立交叉汇总表的步骤 建立交叉汇总表的优化 示例 如图所示,该表为某公司的销售数据表.现希望建立一个汇总表,按月份和商品名汇总收入,并将月份作为列标题而商品名作为行标题. ...
- ssdt函数索引号_【NT】一行代码获取SSDT服务索引号
注:本文是以32位的windows7为实例. 今天在研究SSDT的过程中看到了一个大神写的教程,其中还附了一些代码,代码主要讲解的是SSDT hook过程,我在他的代码中没有看到任何有关服务函数的索引 ...
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net...
Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net 1. -catalog与schema的设计区别1 ...
- SQL Server中的“描述表”等效什么?
本文翻译自:What is the equivalent of 'describe table' in SQL Server? I have a SQL Server database and I w ...
- sql server获取库名,表名
1.获取表的基本字段属性 --获取SqlServer中表结构 SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolum ...
- mysql 亿级表count_码云社 | 砺锋科技-MySQL的count(*)的优化,获取千万级数据表的总行数 - 用代码改变世界...
专注于Java领域优质技术号,欢迎关注 作者:李长念 一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去.找了很多优化方案,最后另辟蹊径 ...
- HTMD | 从PDB文件获取3D特征描述符
KDEEP是使用深度学习(CNN)进行亲和力预测的预测器. 关于这篇文章,我发现了一个新的名为HTMD(高通分子动力学)的python库. 我真的不擅长从头算或MD计算等计算领域. 因此,我无法评估该 ...
- ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串
Name zmq_strerror - 获取ZMQ错误描述字符串 Synopsis const char *zmq_strerror (int errnum); Description zmq_str ...
最新文章
- python dataframe 计算上下两行的差值_用Python进行数据清洗!
- c语言 删除小写字母,c++ - 使用C字符串和指针。 删除除小写字母和空格以外的所有字符 - 堆栈内存溢出...
- java异常怎么输出到页面_怎么把抛出的异常信息输出到SWING 界面上
- solr系列之solr-5.5.5 window单机版默认Jetty安装
- 使用Silverlight3中的DataPager实现服务器端分页
- Javascript高级程序设计第二版第十一章--DOM2,DOM3--笔记
- Java讲课笔记07:计数循环与嵌套循环
- 切换计算机用户指,切换用户提示计算机锁定
- 【Java】使用URL类访问互联网资源
- 赛门铁克symantec 卸载需要密码解决方法
- 高斯光束matlab 仿真,高斯光束的matlab仿真.docx
- 概率论 方差公式_2021考研数学概率论与数理统计常考内容
- Javaweb安全——Java类加载机制
- 对计算机专业的认识和未来规划,对计算机专业的认识及学业规划
- 最新版腾讯防水墙(二代)识别
- 开源框架Banner实现图片轮播
- LeetCode 316/1081[Python]. 去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。
- matlab计算翼型升力系数,naca0012翼型升力系数
- 手机便签怎么导出到另一个手机 便签内容一键传输方法
- Android 仿钉钉、微信 群聊组合头像
热门文章
- PCB铜箔厚度、线宽与允许通多电流大小的关系
- ARM启动代码中_main 与用户主程序main()的区别
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
- 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
- 纠错--跟我学Java第44页
- onclick事件中加href
- Exchange Server 2000/2003 中设定超过2G的邮箱图解
- 防范SQL注入的几种方法 4
- ASP.NET MVC 4 (三) 过滤器
- Java新手看招 常用开发工具介绍