c:\windows\regedit.exe 复制失败

1 security windows-7 regedit

今晚我在win7(64位pro)上遇到了一个奇怪的现象。当我将 regedit.exe 复制到例如 c:\ 时,我无法再运行它。它只是不再开始。当我尝试用 olly db 调试它时,olly 说它不再是有效的 32 位 pe 文件。仔细观察会发现文件以某种方式被打乱/重新对齐。PE-Header 向后移动 8 个字节。rdata 和 pdata 部分突然出现。

黑客在这里发生了什么?

干杯,简

And*_*per 5

它不是有效的 32 位文件,因为C:\Windows\regedit.exe它是 64 位可执行文件。32 位版本是C:\Windows\SysWow64\regedit.exe.

我可以确认,如果从默认位置复制出来,两者都不会运行。

Win7 在幕后做了一些魔法。如果您从 32 位进程运行 regedit,那么您将从C:\Windows\SysWow64. 如果您从 64 位进程运行,那么您将在 C:\Windows 中获得该进程。因此,当您的 32 位调试器认为它正在调试时,C:\Windows\regedit.exe它实际上得到了C:\Windows\SysWow64\regedit.exe. 当您从中复制 regedit.exe 时,C:\Windows不会发生重定向,并且您的 32 位调试器具有 64 位 exe - 因此发生了明显的变化。