最近在玩 VT 框架的一个源码在里面SyscallHook hook 各种Nt的底层API,都可以正常唯独HOOK NtQuerySystemInformation 这个函数时候就算内部什么代码都不处理,只进行 可以正常HOOK上,并且 打印出10几条DbgPrint(" HookNtQuerySystemInformation \n");信息到 debugview.exe但是就蓝屏了,例如:
有2个疑惑:1.不是说VT环境下,做HOOK 都不会PG吗,这是PG导致的吗?2.HOOK SSDT其他函数都正常不会蓝屏,为啥单独HOOK NtQuerySystemInformation 却不一会就蓝屏了?
请前辈们指点下问题是什么导致的!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
R0g 函数被频繁调用,DbgPrint太多给关键进程卡死了,再说这个错误码也不是PG
首先非常感谢大佬前辈回复指点疑惑,
我也查了这个这个错误代码是 系统进程被意外终止了 ,
我只是觉得在 底层 DbgPrint 调用过多也会导致系统进程崩溃而蓝的,有点不可思议。毕竟写的代码上没有错误BUG,那换句话说,如果我在这个API不打印,就不会崩溃系统进程?
院士 按楼上大佬说的试试呗,把打印输出注释掉。
我的研究 注释掉了 DbgPrint 这句打印,还是会 蓝,百思不得骑姐啊
R0g 挂调试器上去,蓝的时候追下堆栈,找到问题原因
找到原因了,是跳板的字节的问题,HOOK 的函数入口高于13个字节,就会异常,刚好 NtQuerySystemInformation 是14个字节
luskyc vt hook是有硬伤的,只是不触发pg,并不是无敌的存在
我的研究 请赐教,你指的硬伤是什么
我的研究 找到原因了,是跳板的字节的问题,HOOK 的函数入口高于13个字节,就会异常,刚好 NtQuerySystemInformation 是14个字节