在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