[Bug 46114] Internet Explorer 3 refuses to install (detects IE 4)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Nov 8 02:12:45 CST 2018


https://bugs.winehq.org/show_bug.cgi?id=46114

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
                 CC|                            |focht at gmx.net
          Component|-unknown                    |shell32
             Status|UNCONFIRMED                 |RESOLVED
           Keywords|                            |download

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming. The installer targets Win9x-based systems and the check is simply
broken/non-applicable on modern Windows NT based OS.

--- snip ---
...
0056:Starting process L"C:\\users\\focht\\Temp\\IXP000.TMP\\infinst2.exe"
(entryproc=0x405e3e)
...
0056:Call KERNEL32.LoadLibraryA(0040b904 "SHELL32.DLL") ret=00402893
...
0056:Ret  KERNEL32.LoadLibraryA() retval=7da90000 ret=00402893
0056:Call KERNEL32.GetProcAddress(7da90000,0040b910 "DllGetVersion")
ret=004028a5
0056:Ret  KERNEL32.GetProcAddress() retval=7da9ae10 ret=004028a5
0056:Call KERNEL32.FreeLibrary(7da90000) ret=004028b9
...
0056:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=004028b9
0056:Call user32.LoadStringA(00000000,00000092,0040d158,00000800) ret=00403b09
0056:Ret  user32.LoadStringA() retval=0000005e ret=00403b09
0056:Call KERNEL32.lstrcatA(0040d158 "Internet Explorer 3.0 cannot be installed
on a system that has Internet Explorer 4.0 installed",0040cf48 "") ret=00403b1d
0056:Ret  KERNEL32.lstrcatA() retval=0040d158 ret=00403b1d
0056:Call user32.MessageBoxA(00000000,0040d158 "Internet Explorer 3.0 cannot be
installed on a system that has Internet Explorer 4.0 installed",0040d050
"",00000000) ret=00403b31 
--- snip ---

The brain damage:

--- snip ---
00402887    PUSH ESI
00402888    PUSH OFFSET 0040B904              ; FileName = "SHELL32.DLL"
0040288D    CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]
00402893    MOV ESI,EAX
00402895    TEST ESI,ESI
00402897    JZ SHORT 004028B9
00402899    PUSH OFFSET 0040B910              ; Procname = "DllGetVersion"
0040289E    PUSH ESI                          ; hModule
0040289F    CALL DWORD PTR DS:[<&KERNEL32.GetProcAddress>]
004028A5    PUSH ESI                          ; hModule
004028A6    CMP EAX,1
004028A9    SBB EAX,EAX
004028AB    ADD EAX,2
004028AE    MOV DWORD PTR DS:[40B6C8],EAX
004028B3    CALL DWORD PTR DS:[<&KERNEL32.FreeLibrary>]
004028B9    MOV EAX,DWORD PTR DS:[40B6C8]
004028BE    POP ESI
004028BF    RETN
--- snip ---

Again, this can't work on native Windows NT based systems.

You can work around in Wine by setting an app specific dll override for the
sub-installer to prevent loading of 'shell32.dll' at all. It will then
successfully install the old IE 3.x crap.
It needs to be app specific override to ensure that Wine builtin/main app
processes can still load 'shell32.dll' (otherwise they would break earlier).

--- snip ---
[HKEY_CURRENT_USER\Software\Wine\AppDefaults\infinst2.exe\DllOverrides]
"shell32"=""
--- snip ---

$ sha1sum msie302w95.exe 
a55c3834860347342c0b91e0f572124b440eb195  msie302w95.exe

$ du -sh msie302w95.exe 
11M    msie302w95.exe

$ wine --version
wine-3.19-194-gd3c9d7558b

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list