更改KernelBase.dll后PC无法启动?

时间:2019-08-21 19:34:47

标签: windows assembly kernel kernel32

我更改了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无法正常启动?

怎么了,我该如何解决?

0 个答案:

没有答案