rosshjb Asked: 2019-09-13 08:52:17 +0800 CST2019-09-13 08:52:17 +0800 CST 2019-09-13 08:52:17 +0800 CST 为什么不同的十六进制编辑器为文件显示不同的二进制文件? 772 当我打开一个二进制文件(在本例中为C:\\Windows\\System32\\notepad.exe)时,对于同一个文件,不同的十六进制编辑器彼此显示不同的结果。我在节标题的起点上对其进行了测试,因此请注意2E 74 65 78 74 00 00 00(".text...")的起始地址。 HxD : — 从 开始00000200。 UltraEdit : — 开始于00000200. PEview : — 开始于000001E8. 弗瑞德: — 开始于000001E8。 windows file-format 1 个回答 Voted Best Answer Kamil Maciorowski 2019-09-13T09:05:00+08:002019-09-13T09:05:00+08:00 这些是不同的文件。 从什么时候开始 System32 不是 System32?[强调我的]: 在 32 位 Windows 中,只有一个System32文件夹包含许多本机二进制文件(或硬链接),并且无法在 32 位 Windows 上执行 64 位代码。 但是,对于 64 位 Windows,我们有“Windows On Windows 64”(WOW64),它允许 32 位进程通过包装器运行,在这种情况下需要考虑一些事项: 32 位进程只能加载 32 位 DLL,64 位进程只能加载 64 位 DLL。 […] 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 位。
这些是不同的文件。
从什么时候开始 System32 不是 System32?[强调我的]:
我的猜测是一些十六进制编辑器是 32 位的并被重定向到
SysWOW64
,有些是 64 位并看到“真实”System32
。不同的编辑感知不同System32
,因此不同notepad.exe
。如果您复制
notepad.exe
到不受影响的文件夹并分析副本,则所有编辑器将显示相同的内容。你会看到哪个文件?这取决于复制工具是 32 位还是 64 位。