https://bugs.winehq.org/show_bug.cgi?id=29323
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED URL|ftp://ftp.lotus.com/pub/lot |ftp://ftp.lotus.com/pub/lot |usweb/product/smartsuite/de |usweb/product/smartsuite/de |mo/suitedemo.EXE |mo/suitedemo.EXE Component|-unknown |ntdll Resolution|--- |WONTFIX Summary|wordpro.exe failed to load: |Lotus SmartSuite Millennium |Bad EXE format |'fastsite.exe' fails to | |load: 'Bad EXE format' (PE | |IMAGE_OPTIONAL_HEADER.SizeO | |fImage value too small to | |fit last section)
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello folks,
since you verified all executables flagged by Wine loader as 'Bad EXE format' failing the same way on NT-based Windows versions it seems Wine's loader behaves as designed/specified.
--- snip --- 0026:trace:module:load_native_dll Trying native dll L"C:\Lotus\fastsite\fastsite.exe" 0026:trace:module:map_image mapped PE file at 0x400000-0x4fa000 0026:trace:module:map_image mapping section .text at 0x401000 off 400 size b6800 virt b6682 flags e0000020 0026:trace:module:map_image clearing 0x4b7800 - 0x4b8000 0026:trace:module:map_image mapping section .rdata at 0x4b8000 off b6c00 size 33000 virt 32e49 flags 40000040 0026:trace:module:map_image mapping section .data at 0x4eb000 off e9c00 size 8400 virt 9068 flags c0000040 0026:trace:module:map_image clearing 0x4f3400 - 0x4f4000 0026:trace:module:map_image mapping section .idata at 0x4f5000 off f2000 size 3a00 virt 3898 flags c0000040 0026:trace:module:map_image clearing 0x4f8a00 - 0x4f9000 0026:warn:module:map_image Section .rsrc too large (f9000+5000/fa000) 0026:warn:module:load_dll Failed to load module L"C:\Lotus\fastsite\fastsite.exe"; status=c000007b wine: Bad EXE format for C:\Lotus\fastsite\fastsite.exe. --- snip ---
All 'bad' executables have their PE IMAGE_OPTIONAL_HEADER.SizeOfImage value too small to fit last section. Looking at the compiler/linker signatures it seems the executables were created with Microsoft Visual C++ 5.0 ~1999. Such broken executables can't possibly work with modern NT based OS loaders.
You can 'repair' all broken executables by using PE tools like 'LordPE' which automatically adjusts the PE IMAGE_OPTIONAL_HEADER.SizeOfImage value to have the last section fit too.
Regards