答案1
这些是不同的文件。
从什么时候 System32 不是 System32?[强调我的]:
在 32 位 Windows 中,只有一个
System32
文件夹包含许多本机二进制文件(或硬链接),并且无法在 32 位 Windows 上执行 64 位代码。但是,对于 64 位 Windows,我们有“Windows On Windows 64”(WOW64),它允许 32 位进程通过包装器运行,并且在这种情况下需要考虑一些事项:
只有 32 位 DLL 才能加载到 32 位进程中,只有 64 位 DLL 才能加载到 64 位进程中。
[…]32 位进程需要能够在 64 位 Windows 上无缝运行,因此由于 (1),我们需要一些二进制文件同时具有 32 位和 64 位版本。
[…]为了促进 (2) 但不破坏本机 (x64) 进程的行为,32 位进程会在不知情的情况下重定向某些 I/O。
[…][…]
对于在 x64 Windows 上运行的 32 位进程:
-%systemroot%\System32
重定向至%systemroot%\SysWOW64
[…]
我猜有些十六进制编辑器是 32 位的,会重定向到SysWOW64
,有些是 64 位的,会查看“真实的” System32
。不同的编辑器会感知不同的System32
,因此 也不同notepad.exe
。
如果您复制notepad.exe
到不受影响的文件夹并分析副本,则所有编辑器都将显示相同的内容。您将看到哪个文件?这取决于复制工具是 32 位还是 64 位。