http://bugs.winehq.org/show_bug.cgi?id=12454
Anastasius Focht focht@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@gmx.net Summary|iriver plus 3 doesn't |iriver Plus 3 fails to |start, missing |start due to missing |?sh_read@filebuf@@2HB |msvcirt.dll |export in msvcirt |?sh_read@filebuf@@2HB | |export
--- Comment #12 from Anastasius Focht focht@gmx.net 2011-12-30 07:04:34 CST --- Hello,
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 L"iClassM.dll",reason=PROCESS_ATTACH,res=0x1) 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") ret=009d7d7e 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@XZ") ret=009d7d7e 0043:Ret KERNEL32.GetProcAddress() retval=68b7e6d4 ret=009d7d7e 0043:Call KERNEL32.GetProcAddress(68b70000,009ca52c "?sh_read@filebuf@@2HB") ret=009d7d7e 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 problems.
Though the app will probably later fall over missing "msvcirt.dll" functionality. "iClassM.dll" exports some utility classes for the app which make use of iostreams.
$ sha1sum iplus3_setup_full.zip 0bc01bb12c574af495c45ee872608ab8948c56bd iplus3_setup_full.zip
$ wine --version wine-1.3.35-273-geaa8801
Regards