[Bug 34042] QuickBooks 2008-2010 Help application crashes (Wine's 'shdocvw.dll' is preferred over native, causing failure to load app provided .NET interop assembly with same name)

WineHQ Bugzilla wine-bugs at winehq.org
Fri Mar 27 07:19:01 CDT 2020


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|http://dlm.download.intuit. |https://web.archive.org/sav
                   |com/SBD/QuickBooks/2008/R1/ |e/http://dlm2.download.intu
                   |QuickBooksSimpleStartDirect |it.com/akdlm/SBD/QuickBooks
                   |2008.exe                    |/2009/R13/QuickBooksSimpleS
                   |                            |tart2009.exe
             Status|NEW                         |RESOLVED
            Summary|QuickBooks SS 2008 Help     |QuickBooks 2008-2010 Help
                   |application crashes         |application crashes (Wine's
                   |                            |'shdocvw.dll' is preferred
                   |                            |over native, causing
                   |                            |failure to load app
                   |                            |provided .NET interop
                   |                            |assembly with same name)
           Keywords|                            |dotnet
                 CC|                            |focht at gmx.net
         Resolution|---                         |DUPLICATE

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

confirming, a crash in the help application is still present. Also happens with
other QuickBooks versions, such as 2009 and 2010.

It's likely a different issue than the originally reported one but I don't want
to waste time in this case to debug old crap. QuickBooks is such a train wreck
with Wine, especially on Wow64.

The download link
http://dlm.download.intuit.com/SBD/QuickBooks/2008/R1/QuickBooksSimpleStartDirect2008.exe
is dead and no snapshot seems exist.

I found QuickBooks 2019 and created a snapshot via Internet Archive:

http://dlm2.download.intuit.com/akdlm/SBD/QuickBooks/2009/R13/QuickBooksSimpleStart2009.exe

->

https://web.archive.org/save/http://dlm2.download.intuit.com/akdlm/SBD/QuickBooks/2009/R13/QuickBooksSimpleStart2009.exe

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Intuit/QuickBooks 2009

$ WINEDEBUG=+seh,+relay,+loaddll,+process,+ieframe,+shdocvw wine ./QBW32.exe
>>log.txt 2>&1
...
003b:Call KERNEL32.CreateProcessW(00000000,0032e650 L"C:\\Program Files
(x86)\\Common Files\\Intuit\\QuickBooks\\QBUpdate\\QBMsgMgr.exe
-Embedding",00000000,00000000,00000000,00000008,00000000,00000000,0032e540,0032e52c)
ret=006df631 
...
003b:trace:process:RtlCreateUserProcess L"\\??\\C:\\Program Files (x86)\\Common
Files\\Intuit\\QuickBooks\\QBUpdate\\QBMsgMgr.exe" pid 004a tid 004b handles
0x198/0x19c
003b:Ret  ntdll.RtlCreateUserProcess() retval=00000000 ret=7b0301b3
...
003b:trace:process:CreateProcessInternalW started process pid 004a tid 004b
...
003b:Ret  KERNEL32.CreateProcessW() retval=00000001 ret=006df631
...
0075:Call KERNEL32.LoadLibraryExW(03e80598 L"C:\\Program Files
(x86)\\Intuit\\QuickBooks 2009\\SHDocVw.dll",00000000,00000009) ret=79e862c8
...
0075:trace:loaddll:load_native_dll Loaded L"C:\\Program Files
(x86)\\Intuit\\QuickBooks 2009\\SHDocVw.dll" at 0x7670000: PE builtin
0075:Ret  ntdll.LdrLoadDll() retval=00000000 ret=7b016828
...
0075:Ret  KERNEL32.LoadLibraryExW() retval=07670000 ret=79e862c8 
...
0075:Call
ntdll.NtQueryInformationProcess(ffffffff,0000000c,067bd0d0,00000004,00000000)
ret=7b030fd7
0075:trace:process:NtQueryInformationProcess
(0xffffffff,0x0000000c,0x67bd0d0,0x00000004,(nil))
0075:Ret  ntdll.NtQueryInformationProcess() retval=00000000 ret=7b030fd7
0075:Call ntdll.NtSetInformationProcess(ffffffff,0000000c,067bd0e0,00000004)
ret=7b030fea
0075:Ret  ntdll.NtSetInformationProcess() retval=00000000 ret=7b030fea
0075:Ret  KERNEL32.SetErrorMode() retval=00008001 ret=79e8cc9a
0075:Call KERNEL32.InterlockedCompareExchange(03e89f10,ffffffff,00000000)
ret=79e866b1
0075:Ret  KERNEL32.InterlockedCompareExchange() retval=00000000 ret=79e866b1
0075:Call KERNEL32.CloseHandle(0000033c) ret=79eb7af6
0075:Call ntdll.NtClose(0000033c) ret=7b02f6d9
0075:Ret  ntdll.NtClose() retval=00000000 ret=7b02f6d9
0075:Ret  KERNEL32.CloseHandle() retval=00000001 ret=79eb7af6
0075:Call KERNEL32.InterlockedExchange(03e89f10,00000000) ret=79e7f339
0075:Ret  KERNEL32.InterlockedExchange() retval=ffffffff ret=79e7f339
0075:trace:seh:raise_exception code=c0000005 flags=0 addr=0x79ec122b
ip=79ec122b tid=0075
0075:trace:seh:raise_exception  info[0]=00000000
0075:trace:seh:raise_exception  info[1]=00000010
0075:trace:seh:raise_exception  eax=00000000 ebx=00000008 ecx=00000000
edx=0000000e esi=03e803b0 edi=03e804e8
0075:trace:seh:raise_exception  ebp=067bd1f0 esp=067bd1cc cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010246
0075:trace:seh:call_stack_handlers calling handler at 0x7a2f2d8c code=c0000005
flags=0
0075:trace:seh:call_stack_handlers handler at 0x7a2f2d8c returned 1
0075:trace:seh:call_stack_handlers calling handler at 0x7a2f375c code=c0000005
flags=0
0075:trace:seh:call_stack_handlers handler at 0x7a2f375c returned 1
0075:trace:seh:call_stack_handlers calling handler at 0x7a2f3ca8 code=c0000005
flags=0
0075:trace:seh:call_stack_handlers handler at 0x7a2f3ca8 returned 1
0075:trace:seh:call_stack_handlers calling handler at 0x79f93fe6 code=c0000005
flags=0 
--- snip ---

'SHDocVw.dll' is a .NET interop assembly.

--- snip ---
-=[ ProtectionID v0.6.9.0 DECEMBER]=-
(c) 2003-2017 CDKiLLER & TippeX
Build 24/12/17-21:05:42
Ready...
Scanning -> C:\Program Files (x86)\Intuit\QuickBooks 2009\SHDocVw.dll
File Type : 32-Bit Dll (Subsystem : Win CUI / 3), Size : 137064 (021768h)
Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x4475E41A -> Thu 25th May 2006 17:06:34 (GMT)
[TimeStamp] 0x4475E41A -> Thu 25th May 2006 17:06:34 (GMT) | PE Header | - |
Offset: 0x00000088 | VA: 0x00400088 | -
-> File Appears to be Digitally Signed @ Offset 020000h, size : 01768h / 05992
byte(s)
[File Heuristics] -> Flag #1 : 00000000000001001100000000110100 (0x0004C034)
[Entrypoint Section Entropy] : 5.71 (section #0) ".text   " | Size : 0x1C674
(116340) byte(s)
[DllCharacteristics] -> Flag : (0x0400) -> NOSEH
[SectionCount] 3 (0x3) | ImageSize 0x24000 (147456) byte(s)
[VersionInfo] Product Name : Assembly imported from type library SHDocVw
[VersionInfo] Product Version : 1.1.0.0
[VersionInfo] File Version : 1.1.0.0
[VersionInfo] Original FileName : SHDocVw.dll
[VersionInfo] Internal Name : SHDocVw
[ModuleReport] [IAT] Modules -> mscoree.dll
[.] .net @ FileOffset 0x8408 | MetaData->Version 1.1 (struct version) ->
v1.1.4322 (net version required)
[.] Flags : 0x0 | Streams : 0x4 (4) unusual (its usually 5) -> #~ | #Strings |
#GUID | #Blob
[COR20] MajorRuntimeVersion 0x2 (2) | MinorRuntimeVersion 0x2 (2) -> 0x2.2
(2.2)
[COR20] Flags 0x1
[COR20 Flags] [x] IL_ONLY [ ] 32BITREQUIRED [ ] IL_LIBRARY
[COR20 Flags] [ ] STRONGNAME [ ] NATIVE_EP [ ] TRACKDEBUGDATA
[COR20 Flags] [ ] 32BITPREFERRED | 0x0 UNKNOWN
[COR20 Flags] Assembly is NOT strong name signed
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.235 Second(s) [0000000EBh (235) tick(s)] [246 of 580 scan(s)
done]
--- snip ---

When the .NET CLR loads the webbrowser interop assemblies, Wine sneaks in its
own - builtin version (due to default load order) - which confuses the .NET
CLR. The .NET CLR peeks at PE header structures, namely COM+ header -> .NET CLR
metadata and subsequently crashes because the wrong dll was loaded.

-> bug 20777 ("Multiple applications and games fail to load SHDocVw.dll interop
dll (Unigine Heaven benchmark v2.0, Toad for SQL Server 5.7)")

As workaround you can make an app-specific 'QBHelp.exe' override for 'shdocvw'
to prevent the crash. But that won't help much here as it runs in a couple of
general ieframe/mshtml insufficiencies later.

$ sha1sum QuickBooksSimpleStart2009.exe 
du0f057fad4d1d082851acdb813def98dc5f7a76e2  QuickBooksSimpleStart2009.exe

$ du -sh QuickBooksSimpleStart2009.exe 
335M    QuickBooksSimpleStart2009.exe

$ wine --version
wine-5.4-412-g8baf4a2a55

Regards

*** This bug has been marked as a duplicate of bug 20777 ***

-- 
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