[Bug 48356] OOTP Baseball 20 crashes with Wine-Mono while initializing license management

WineHQ Bugzilla wine-bugs at winehq.org
Sun Dec 29 18:12:28 CST 2019


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Wine crashes when           |OOTP Baseball 20 crashes
                   |attempting to launch OOTP20 |with Wine-Mono while
                   |(Out of the Park Baseball   |initializing license
                   |20)                         |management
                 CC|                            |focht at gmx.net

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

I've created a snapshot of the installer here:

https://web.archive.org/web/20191229201823/http://cdnfiles.ootpdevelopments.com/ootp/ootp20/ootp20setup_fastspring.exe

Just in case the original download is taken offline.

It seems .NET Framework 4.0 is enough ('winetricks -q dotnet40'). I don't know
why you used .NET Framework 4.8.

The main executable is an unmanaged C++ application which only hosts the .NET
CLR for the purpose of license management. There is a managed dll
'QlmLicenseLib.dll'.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Out of the Park Developments/OOTP
Baseball 20

$ file *.{dll,exe}

Assimp32.dll:            PE32 executable (DLL) (GUI) Intel 80386, for MS
Windows
GameuxInstallHelper.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS
Windows
libmySQL.dll:            PE32 executable (DLL) (GUI) Intel 80386, for MS
Windows
lua5.1.dll:              PE32 executable (DLL) (GUI) Intel 80386, for MS
Windows
QlmLicenseLib.dll:       PE32 executable (DLL) (console) Intel 80386 Mono/.Net
assembly, for MS Windows
GDFInstall.exe:          PE32 executable (GUI) Intel 80386, for MS Windows
ootp20.exe:              PE32 executable (GUI) Intel 80386, for MS Windows
uninstall.exe:           PE32 executable (GUI) Intel 80386, for MS Windows, UPX
compressed
--- snip ---

Pretty much textbook:

https://stackoverflow.com/questions/8406400/best-way-to-call-managed-net-code-from-unmanaged-code

http://sbytestream.pythonanywhere.com/blog/clr-hosting

'QlmLicenseLib.QlmLicense' -> 'QlmLicenseLib.dll'

Requested runtime: 'v4.0.30319'

--- snip ---
$ WINE_MONO_TRACE=all WINEDEBUG=+seh,+relay,+loaddll,+mscoree wine ./ootp20.exe
>>log.txt 2>&1
...
--- snip ---
...
004d:trace:loaddll:load_native_dll Loaded L"C:\\Program Files (x86)\\Out of the
Park Developments\\OOTP Baseball 20\\QlmLicenseLib.dll" at 0x12880000: native
004d:trace:mscoree:_CorDllMain (12880000, 1, 00000000) 
...
[0000004D: 0.07360 13] ENTER: (wrapper runtime-invoke)
object:runtime_invoke_void (object,intptr,intptr,intptr)(00000000, 00000000,
00328A64, 0FF664B8, )
[0000004D: 0.07362 14] ENTER: QlmLicenseLib.QlmLicense:.cctor ()()
...
[0000004D: 0.10118 14] LEAVE: QlmLicenseLib.QlmLicense:.cctor ()
...
[0000004D: 0.10189 14] ENTER: QlmLicenseLib.QlmLicense:.ctor
()(this:0F002618[QlmLicenseLib.QlmLicense mscorlib.dll], )
...
[0000004D: 0.10204 16] ENTER: QlmLicenseLib.QlmWebServiceUtils:.cctor ()()
...
[0000004D: 6.33042 17] ENTER: IsLicenseNet.LicenceManager:.cctor ()()
[0000004D: 6.33043 18] ENTER: .:
(System.Type)([TYPE:IsLicenseNet.LicenceManager], )
...
[0000004D: 6.42136 28] LEAVE: QlmLicenseLib.QlmLicense:Initialize
(bool,bool,bool,bool)
[0000004D: 6.42137 27] LEAVE: QlmLicenseLib.QlmLicense:.ctor ()
[0000004D: 6.42137 26] LEAVE: (wrapper runtime-invoke)
object:runtime_invoke_void__this__
(object,intptr,intptr,intptr)[OBJECT:00000000]
[0000004D: 6.42138 25] LEAVE: (wrapper managed-to-native)
System.Reflection.RuntimeConstructorInfo:InternalInvoke
(System.Reflection.RuntimeConstructorInfo,object,object[],System.Exception&)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42139 24] LEAVE:
System.Reflection.RuntimeConstructorInfo:InternalInvoke
(object,object[],bool)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42140 23] LEAVE: System.RuntimeType:CreateInstanceMono
(bool,bool)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42141 22] LEAVE: System.RuntimeType:CreateInstanceSlow
(bool,bool,bool,bool)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42142 21] LEAVE: System.RuntimeType:CreateInstanceDefaultCtor
(bool,bool,bool,bool,System.Threading.StackCrawlMark&)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42142 20] LEAVE: System.Activator:CreateInstance
(System.Type,bool,bool)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42143 19] LEAVE: System.RuntimeType:CreateInstanceImpl
(System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo,object[],System.Threading.StackCrawlMark&)[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42144 18] LEAVE: System.Activator:CreateInstance
(System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo,object[])[QlmLicenseLib.QlmLicense:0F002618]
[0000004D: 6.42145 18] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_ves_icall_object_new_specific (intptr)(02A93A28, )
[0000004D: 6.42146 18] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_ves_icall_object_new_specific
(intptr)[System.Runtime.Remoting.ObjectHandle:0F084B38]
[0000004D: 6.42155 18] ENTER: (wrapper remoting-invoke-with-check)
System.Runtime.Remoting.ObjectHandle:.ctor
(object)(this:0F084B38[System.Runtime.Remoting.ObjectHandle mscorlib.dll],
[QlmLicenseLib.QlmLicense:0F002618], )
[0000004D: 6.42162 19] ENTER: System.Runtime.Remoting.ObjectHandle:.ctor
(object)(this:0F084B38[System.Runtime.Remoting.ObjectHandle mscorlib.dll],
[QlmLicenseLib.QlmLicense:0F002618], )
[0000004D: 6.42164 20] ENTER: System.MarshalByRefObject:.ctor
()(this:0F084B38[System.Runtime.Remoting.ObjectHandle mscorlib.dll], )
[0000004D: 6.42164 20] LEAVE: System.MarshalByRefObject:.ctor ()
[0000004D: 6.42165 19] LEAVE: System.Runtime.Remoting.ObjectHandle:.ctor
(object)
[0000004D: 6.42166 18] LEAVE: (wrapper remoting-invoke-with-check)
System.Runtime.Remoting.ObjectHandle:.ctor (object)
[0000004D: 6.42167 17] LEAVE: System.Activator:CreateInstance
(string,string,bool,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo,object[],System.Security.Policy.Evidence,System.Threading.StackCrawlMark&)[System.Runtime.Remoting.ObjectHandle:0F084B38]
[0000004D: 6.42167 16] LEAVE: System.Activator:CreateInstance
(string,string)[System.Runtime.Remoting.ObjectHandle:0F084B38]
[0000004D: 6.42168 15] LEAVE: System.AppDomain:CreateInstance
(string,string)[System.Runtime.Remoting.ObjectHandle:0F084B38]
[0000004D: 6.42177 15] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_cominterop_restore_domain (intptr)(00000000, )
[0000004D: 6.42178 15] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_cominterop_restore_domain (intptr)
[0000004D: 6.42178 14] LEAVE: (wrapper cominterop)
System._AppDomain:CreateInstance
(intptr,string,string,System.Runtime.Remoting.ObjectHandle&)result=0
[0000004D: 6.42187 14] ENTER: (wrapper managed-to-native)
object:__icall_wrapper_cominterop_type_from_handle (intptr)(02AC2DB8, )
[0000004D: 6.42188 14] LEAVE: (wrapper managed-to-native)
object:__icall_wrapper_cominterop_type_from_handle
(intptr)[System.RuntimeType:0FE0F360]
[0000004D: 6.42209 14] ENTER:
System.Runtime.InteropServices.Marshal:GetComInterfaceForObjectInternal
(object,System.Type)([System.Runtime.Remoting.ObjectHandle:0F084B38],
[TYPE:System.Runtime.Remoting.ObjectHandle&], )
[0000004D: 6.42219 15] ENTER: string:memset (byte*,int,int)(00329770, 0, 68, )
[0000004D: 6.42221 15] LEAVE: string:memset (byte*,int,int)
[0000004D: 6.42221 15] ENTER: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:IsComObject
(object)([System.Runtime.Remoting.ObjectHandle:0F084B38], )
[0000004D: 6.42222 15] LEAVE: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:IsComObject (object)result=331176704
[0000004D: 6.42232 15] ENTER: string:memset (byte*,int,int)(00329770, 0, 68, )
[0000004D: 6.42233 15] LEAVE: string:memset (byte*,int,int)
[0000004D: 6.42234 15] ENTER: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:GetCCW
(object,System.Type)([System.Runtime.Remoting.ObjectHandle:0F084B38],
[TYPE:System.Runtime.Remoting.ObjectHandle&], )
[0000004D: 6.42266 15] LEAVE: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:GetCCW
(object,System.Type)result=13BC6380
[0000004D: 6.42268 14] LEAVE:
System.Runtime.InteropServices.Marshal:GetComInterfaceForObjectInternal
(object,System.Type)result=13BC6380
[0000004D: 6.42269 14] ENTER: System.Runtime.InteropServices.Marshal:AddRef
(intptr)(13BC6380, )
[0000004D: 6.42269 15] ENTER: intptr:op_Equality (intptr,intptr)(13BC6380,
00000000, )
[0000004D: 6.42270 15] LEAVE: intptr:op_Equality
(intptr,intptr)result=331113216
[0000004D: 6.42271 15] ENTER: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:AddRefInternal (intptr)(13BC6380, )
[0000004D: 6.42271 15] LEAVE: (wrapper managed-to-native)
System.Runtime.InteropServices.Marshal:AddRefInternal (intptr)result=1
[0000004D: 6.42272 14] LEAVE: System.Runtime.InteropServices.Marshal:AddRef
(intptr)result=1
[0000004D: 6.42273 13] LEAVE: (wrapper native-to-managed)
System._AppDomain:CreateInstance (intptr,intptr,intptr,intptr)result=0
004d:trace:seh:raise_exception code=c0000005 flags=0 addr=0x2a6e53e ip=02a6e53e
tid=004d
004d:trace:seh:raise_exception  info[0]=00000001
004d:trace:seh:raise_exception  info[1]=243546d0
004d:trace:seh:raise_exception  eax=243546d0 ebx=0032d500 ecx=00329948
edx=00000003 esi=13bc6380 edi=0c9e61f8
004d:trace:seh:raise_exception  ebp=00329930 esp=0031f244 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010202
004d:trace:seh:call_vectored_handlers calling handler at 0x10706370
code=c0000005 flags=0
--- snip ---

Looks like some garbage vtable when calling from native into managed. At least
the native method stubs for transition into managed license lib code don't look
like executable code.

$ sha1sum ootp20setup_fastspring.exe 
89887e515169e60de6d0d9cee4b3628d2ad8b57a  ootp20setup_fastspring.exe

$ du -sh ootp20setup_fastspring.exe 
1.5G    ootp20setup_fastspring.exe

$ wine --version
wine-5.0-rc3

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