我更改了KernelBase.dll的IsDebuggerPresent()函数
来自
00007FFF0631DE90 | mov rax,qword ptr gs:[60] |
00007FFF0631DE99 | movzx eax,byte ptr ds:[rax+2] |
00007FFF0631DE9D | ret |
00007FFF0631DE9E | int3 |
00007FFF0631DE9F | int3 |
00007FFF0631DEA0 | int3 |
到
00007FFF0631DE90 | mov rax,qword ptr gs:[60] |
00007FFF0631DE99 | mov eax,0 |
00007FFF0631DE9E | ret |
00007FFF0631DE9F | int3 |
00007FFF0631DEA0 | int3 |
该函数始终返回零,这意味着不存在用户模式调试器。(afaik)
现在,当我覆盖System32文件夹中的原始KernelBase.dll并重新启动PC时,启动时会出现蓝屏,然后我必须“恢复到PC正常启动的程度”。
所以我的问题是:
为什么经过这么小的更改后Windows无法正常启动?
怎么了,我该如何解决?