今天研究了一下午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 系统服务描述表的函数服务号(索引)相关推荐

  1. 系统服务描述表指针查找

    反汇编KiSystemCall64 kd> uf KiSystemCall64 Flow analysis was incomplete, some code may be missing nt ...

  2. Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表

    目录 示例 代码 交叉汇总表 建立交叉汇总表的步骤 建立交叉汇总表的优化 示例 如图所示,该表为某公司的销售数据表.现希望建立一个汇总表,按月份和商品名汇总收入,并将月份作为列标题而商品名作为行标题. ...

  3. ssdt函数索引号_【NT】一行代码获取SSDT服务索引号

    注:本文是以32位的windows7为实例. 今天在研究SSDT的过程中看到了一个大神写的教程,其中还附了一些代码,代码主要讲解的是SSDT hook过程,我在他的代码中没有看到任何有关服务函数的索引 ...

  4. Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net...

    Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net 1. -catalog与schema的设计区别1 ...

  5. SQL Server中的“描述表”等效什么?

    本文翻译自:What is the equivalent of 'describe table' in SQL Server? I have a SQL Server database and I w ...

  6. sql server获取库名,表名

    1.获取表的基本字段属性 --获取SqlServer中表结构  SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolum ...

  7. mysql 亿级表count_码云社 | 砺锋科技-MySQL的count(*)的优化,获取千万级数据表的总行数 - 用代码改变世界...

    专注于Java领域优质技术号,欢迎关注 作者:李长念 一.前言 这个问题是今天朋友提出来的,关于查询一个1200w的数据表的总行数,用count(*)的速度一直提不上去.找了很多优化方案,最后另辟蹊径 ...

  8. HTMD | 从PDB文件获取3D特征描述符

    KDEEP是使用深度学习(CNN)进行亲和力预测的预测器. 关于这篇文章,我发现了一个新的名为HTMD(高通分子动力学)的python库. 我真的不擅长从头算或MD计算等计算领域. 因此,我无法评估该 ...

  9. ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串

    Name zmq_strerror - 获取ZMQ错误描述字符串 Synopsis const char *zmq_strerror (int errnum); Description zmq_str ...

最新文章

  1. python dataframe 计算上下两行的差值_用Python进行数据清洗!
  2. c语言 删除小写字母,c++ - 使用C字符串和指针。 删除除小写字母和空格以外的所有字符 - 堆栈内存溢出...
  3. java异常怎么输出到页面_怎么把抛出的异常信息输出到SWING 界面上
  4. solr系列之solr-5.5.5 window单机版默认Jetty安装
  5. 使用Silverlight3中的DataPager实现服务器端分页
  6. Javascript高级程序设计第二版第十一章--DOM2,DOM3--笔记
  7. Java讲课笔记07:计数循环与嵌套循环
  8. 切换计算机用户指,切换用户提示计算机锁定
  9. 【Java】使用URL类访问互联网资源
  10. 赛门铁克symantec 卸载需要密码解决方法
  11. 高斯光束matlab 仿真,高斯光束的matlab仿真.docx
  12. 概率论 方差公式_2021考研数学概率论与数理统计常考内容
  13. Javaweb安全——Java类加载机制
  14. 对计算机专业的认识和未来规划,对计算机专业的认识及学业规划
  15. 最新版腾讯防水墙(二代)识别
  16. 开源框架Banner实现图片轮播
  17. LeetCode 316/1081[Python]. 去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。
  18. matlab计算翼型升力系数,naca0012翼型升力系数
  19. 手机便签怎么导出到另一个手机 便签内容一键传输方法
  20. Android 仿钉钉、微信 群聊组合头像

热门文章

  1. PCB铜箔厚度、线宽与允许通多电流大小的关系
  2. ARM启动代码中_main 与用户主程序main()的区别
  3. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
  4. 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
  5. 纠错--跟我学Java第44页
  6. onclick事件中加href
  7. Exchange Server 2000/2003 中设定超过2G的邮箱图解
  8. 防范SQL注入的几种方法 4
  9. ASP.NET MVC 4 (三) 过滤器
  10. Java新手看招 常用开发工具介绍