[Bug 12454] iriver Plus 3 fails to start due to missing msvcirt.dll ?sh_read at filebuf@@2HB export

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Dec 30 07:04:34 CST 2011


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
                URL|http://www.iriver.com/plus/ |http://www.iriver.com.au/ir
                   |                            |iver/uploads/software/iplus
                   |                            |3_setup_full.zip
                 CC|                            |focht at gmx.net
            Summary|iriver plus 3 doesn't       |iriver Plus 3 fails to
                   |start, missing              |start due to missing
                   |?sh_read at filebuf@@2HB       |msvcirt.dll
                   |export in msvcirt           |?sh_read at filebuf@@2HB
                   |                            |export

--- Comment #12 from Anastasius Focht <focht at gmx.net> 2011-12-30 07:04:34 CST ---

confirming, still present.
Needs 'winetricks mfc42' prerequisite.

The "iClassM.dll" which imports from "msvcirt.dll" is compressed with UPX as
almost any other PE binary in app install folder.

UPX imports resolver sequence, after unpacking sections:

--- snip ---
0043:Call PE DLL (proc=0x9d7c10,module=0x820000
0043:Call KERNEL32.LoadLibraryA(009d8ab4 "KERNEL32.DLL") ret=009d7d60
0043:Ret  KERNEL32.LoadLibraryA() retval=7b810000 ret=009d7d60
0043:Call KERNEL32.GetProcAddress(7b810000,009c9009 "lstrcpyW") ret=009d7d7e
0043:Ret  KERNEL32.GetProcAddress() retval=7b825710 ret=009d7d7e
0043:Call KERNEL32.GetProcAddress(7b810000,009c9013 "lstrlenW") ret=009d7d7e 
0043:Call KERNEL32.GetProcAddress(7b810000,009c9647 "ReadFile") ret=009d7d7e
0043:Ret  KERNEL32.GetProcAddress() retval=7b824240 ret=009d7d7e
0043:Call KERNEL32.LoadLibraryA(009d8ac1 "ADVAPI32.dll") ret=009d7d60
0043:Ret  KERNEL32.LoadLibraryA() retval=68380000 ret=009d7d60
0043:Call KERNEL32.GetProcAddress(68380000,009c965a "RegDeleteKeyW")
0043:Ret  KERNEL32.GetProcAddress() retval=68384620 ret=009d7d7e 
0043:Call KERNEL32.LoadLibraryA(009d8afc "MSVCIRT.dll") ret=009d7d60
0043:Ret  KERNEL32.LoadLibraryA() retval=68b70000 ret=009d7d60
0043:Call KERNEL32.GetProcAddress(68b70000,009ca517 "??0ifstream@@QAE at XZ")
0043:Ret  KERNEL32.GetProcAddress() retval=68b7e6d4 ret=009d7d7e
0043:Call KERNEL32.GetProcAddress(68b70000,009ca52c "?sh_read at filebuf@@2HB")
0043:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=009d7d7e 
--- snip ---

The unpacker is not happy about NULL proc address, hence it bails.

If you manually unpack the dll with UPX tool "-d" (either win32 or linux
version), the app starts successfully, shows gui and runs into other Wine

Though the app will probably later fall over missing "msvcirt.dll"
"iClassM.dll" exports some utility classes for the app which make use of

$ sha1sum iplus3_setup_full.zip 
0bc01bb12c574af495c45ee872608ab8948c56bd  iplus3_setup_full.zip

$ wine --version


Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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