外挂、木马、病毒等可能需要读取其他进程的数据,windows提供了OpenProcess、ReadProcessMemory等函数。但越是大型的软件,防护做的越好,大概率会做驱动保护,比如hook SSDT表等,这些系统调用都会先被过滤一次,导致返回的数据不是想要的;为了确保能读到目标进程数据,最好 ...
介绍: SSDT InlineHook是在SSDT Hook 基础上来进一步Hook的,SSDTHook 是直接将SSDT表中的 Nt*函数替换成Fake函数,而SSDT Inline Hook是将原函数代码的前五个字节改变为 E9 _ _ _ _ ,后面跟的是Offset,也就是我们Fake函数的 ...
释放驱动HOOK了SSDT表中的NtOpenProcess,但是对参数过滤不严密,只过滤 PROCESS_TERMINATE, PROCESS_WRITE, XXXX(忘记了),,三种.然后比较的PID是放在全局变量中,可以通过发送 DeviceIoControl 改变这个值~ 所以我们还是可以以其 ...
分类:
系统相关 时间:
2020-02-27 13:09:15
阅读次数:
78
释放驱动HOOK了SSDT表中的NtOpenProcess,但是对参数过滤不严密,只过滤 PROCESS_TERMINATE, PROCESS_WRITE, XXXX(忘记了),,三种.然后比较的PID是放在全局变量中,可以通过发送 DeviceIoControl 改变这个值~ 所以我们还是可以以其 ...
分类:
系统相关 时间:
2020-02-23 22:16:16
阅读次数:
111
很久不玩PE格式了,这次由于要恢复SSDT表的缘故+一个忽然兴起的念头,导致我花了一个小午写了个运行在Ring0的简单PE加载器,并且有意外的收获。 恢复SSDT表手段很多,基本上都是直接从文件中依赖重定位表获取对应数据,重定位后得到相对当前内核加载位置的正确调用地址。大部分的实现代码比较粗糙,因为 ...
分类:
其他好文 时间:
2019-09-09 15:05:22
阅读次数:
130
SSDT概述通过08内核编程HOOK_KiFastCall.md可以知道,用户层的函数调用都会进入到0环, 0环将服务函数的地址实现保存在SSDT表中. KiFastCallEntry函数会使用调用号找到函数的参数个数表和函数地址表, 并将用户栈的参数拷贝到内核栈,最后调用了系统服务表中的函数.SS... ...
分类:
其他好文 时间:
2019-08-31 17:33:44
阅读次数:
80
SSDT表的查找:https://blog.csdn.net/zfdyq0/article/details/26515019纠正上面博客的一个错误:刚好是fffff800`03e827724c8d15c7202300后面四个字节(002320C7) kd>uKiSystemServiceStart nt!KiSystemServiceStart: fffff800`03e8275e48
分类:
其他好文 时间:
2018-10-27 19:55:29
阅读次数:
449
运行 regedit.exeHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ImagePath \??\G:\驱动教程\018_读出SSDT表当前函数地址\mini_ddk\sys\i386\DDKHelloWorld.sys"Display ...
分类:
其他好文 时间:
2016-05-13 07:29:01
阅读次数:
177
SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。
这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。Ring3下调用的所有函数最终都会先进入到ntdll里面的,比如ReadFile,就会进入ntdll的ZwReadFile
SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它...
分类:
其他好文 时间:
2015-06-25 14:11:18
阅读次数:
286
对付ring0inlinehook的基本思路是这样的,自己写一个替换的内核函数,以NtOpenProcess为例,就是MyNtOpenProcess。然后修改SSDT表,让系统服务进入自己的函数MyNtOpenProcess。而MyNtOpenProcess要做的事就是,实现NtOpenProces...
分类:
其他好文 时间:
2015-06-24 14:17:14
阅读次数:
87