在我看来,它似乎总是会保持4GB的大小,因为它使用相同大小的数据类型(DWORD)?对于SizeOfImage
,DWORD始终会是32位吗?或者我对这个限制有误解吗?
答案
实际上,所有可移植可执行文件(32位和64位PE+)都有4GB的硬性限制。
在我看来,它似乎总是会保持4GB的大小,因为它使用相同大小的数据类型(DWORD)?对于SizeOfImage
,DWORD始终会是32位吗?或者我对这个限制有误解吗?
实际上,所有可移植可执行文件(32位和64位PE+)都有4GB的硬性限制。
2^(4*8)B - 1B = 4GiB - 1B
。我在Windows 10 64位上通过使用WinRAR创建自解压缩归档文件形式的.EXE文件来验证了这一点。一个大小为4GiB
的可执行文件无法启动,但是4GiB - 1B
可以正常工作。 - Robin Hartmann
[1]:https://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/pecoff_v83.docx
- Sahil Singh