win10 64位SSDT函数索引动态查找

在win10 64位下SSDT是不导出的。同时如果你要hook某个函数时你要知道他的索引,以前都是调试或者网上找然后硬编码进去。这里动态找。
原理是上层调用的所有函数都经过ntdll 然后进入0环,进入0时ntdll模块里面很定有索引啊,因此去ntdll找到对应函数的代码,就能找到对应的索引。
第1步先把ntdll 读入内存。

查看内存

开始动态查找 进入GetFunctionAddress

先找到ssdt

进入GetExportSsdtIndex

进入GetExportOffset找到函数对应在ntdll中的偏移。(函数代码起始地址)
找到函数名

找到函数偏移

查看反汇编

通过汇编特征算出index

就可以找到索引了

算出地址

后面可以写个遍历ssdt !!!!!
源码:
https://github.com/haidragon/DriverInjectDll

原文地址:https://blog.51cto.com/haidragon/2367466

时间: 2024-10-01 07:50:52

win10 64位SSDT函数索引动态查找的相关文章

WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件实现视觉检测

近段时间开始接触halcon,但是在VS2015里面使用,无论是配置还是生产EXE文件,都不如意. 加上网上的教程很多,经过多次测试,其实有很多地方无需修改,如果修改的太多也失去了直接添加封装的意义. 我的环境为 WIN10 64位 halcon12 用64位到处C++ 文件,VS2015免费共享版. (如果要生成32位的话,需要halcon12 用32位程序  导出C++,并且需要把VC切换为X86平台, 库目录改为 C:\Program Files\MVTec\HALCON-12.0\lib

win10 64位 汇编环境

masm6或者masm5 下载. dosbox 下载安装 为何要用这个呢,因为 机子是64位的,dosbox 模拟32位的用来执行生成的exe文件 masm 安装好后,有个bin文件:个人建议将其设置环境变量.那么命令 ml masm link 这三个命令就随时可用了,免得到处复制 编写asm文件,使用ml命令一步到位生成exe 或者masm命令生成obj再用link命令生成exe  注意这三个命令是在win1064位自带的cmd上运行的 生成的exe文件怎么执行呢?显然在win10 64位下,

用U盘制作并安装WIN10 64位原版系统的详细教程(该方法应该适用于任何一版的原版操作系统)

昨天搞了一台办公电脑,因为是开发机,要装的是windows server 2008(因为服务器用这个系统,所以开发的时候尽量保持与服务器环境一致.) 大概1年前在淘宝天猫店买了个三星的移动光驱,光盘也有. 但是一年没用,尼玛现在拿出来总是读不到,光驱灯都不闪. 感觉应该是光驱问题.日了dog....这tb真的是一堆假货.... 然后就开始用U盘来安装, 第一次尝试的方法是,用大白菜里面提供的那个安装自定义ISO文件那个,成功进入 windows is loading files 然后进入到安装界

win10 64位 python3.6 django1.11 MysqlDB No module named 'MySQLdb' 安装MysqlDB报错 Microsoft Visual C++ 14.0 is required

在python3.6中操作数据库,再按python2.7安装MySQLdb进行数据库连接已经不可用了,我使用的是另外一个方法:PyMySQL,安装好之后还是不能直接连接MySQL的,启动项目后报No module named 'MySQLdb' 解决方案: 在项目的__init__()文件中添加如下代码: import pymysql pymysql.install_as_MySQLdb() 这时再次启动项目正常 win10 64位 python3.6 django1.11 MysqlDB No

WINDOWS 64位SSDT定位思路

在32位Windows中我们有很多定位SSDT的方法,最直接的就是利用导出符号来找到SSDT.再有就是通过在nt!KeAddSystemServiceTable函数中进行反汇编搜索.可是在64位WINDOWS中这两种方法都行不通.在64位Windows中不在导出SSDT了,同时nt!KeAddSystemServiceTable中也不再出SSDT了(此处说明有误,应该为不出现直接的SSDT地址了,个人水平有限感觉计算太麻烦.).这样要HOOK SSDT表就出现了第一个问题如何找到它?我想了三种思

WIN10 64位 JDK的安装

因为电脑系统换掉,重装系统,重新配置了一下环境,安装JDK,现记录一下过程,以便下次查询使用. 官网下载JDK,地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 这里我安装的是jdk-8u91-windows-x64 注意这里的是64位WIN10的操作系统  32位的WIN操作系统请下jdk-8u91-windows-i586  至于MAC的 请下对应版本   安装JDK 这里我是建议

win10 64位安装wdm wdf

由于EzDriverInstaller只能到win10 32位 64位用不了这个用的是官方工具 devcon.exe 这个只要安装了wdk 开发环境就有在c盘还需要个库(这个是安装wdf需要的)WdfCoInstallerxxxxxxx.dll 也在c盘 (这里是WdfCoInstaller01011.dll)wdm这里用的张帆的源码(为想测试怎么编译别人的驱动)这里有win10 32位下编译教程: http://×××w.bubuko.com/infodetail-1914313.html 除

在win10 64位下搭建汇编环境

好像是因为64位WIN10并不自带debug,所以需要自己搭建汇编环境 首先是下载DosBox和MASM,下载地址: 下载解压后: 将DOSBOX安装到C盘以外的位置,防止对系统造成影响 安装好DOSBOX后再将C盘挂载映射到MASK文件中工具所在目录,这里我将MASK文件中的文件复制粘贴在E:\huibianhuanjing\DosBox: 所以需要在DOSBOX中进行挂载映射:c是指dosbox的c盘,e:\huibianhuanjing\DosBox是本机上工作目录dos的位置 输入挂载命

(win10 64位)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

在64位的系统上,默认不支持Microsoft.Jet.OLEDB.4.0的驱动程序,系统默认会提示未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"的错误.(网上看到的,先这么认为,有时间再查查是不是这个原因) 将平台改成X86就可以了.