[Bug 39209] Smart Diary Suite 4 crashes when updating options ('CLSID_AudioCompressorCategory', '{33D9A761-90C8-11d0-BD43-00A0C911CE86}' must be treated as special category)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Sep 5 06:51:56 CDT 2015
https://bugs.winehq.org/show_bug.cgi?id=39209
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |download
Status|UNCONFIRMED |NEW
URL| |http://bin.psunrise.com/Sma
| |rtDiarySuite4Medical-setup.
| |exe
CC| |focht at gmx.net
Summary|Smart Diary Suite crashes |Smart Diary Suite 4 crashes
|when updating options |when updating options
| |('CLSID_AudioCompressorCate
| |gory',
| |'{33D9A761-90C8-11d0-BD43-0
| |0A0C911CE86}' must be
| |treated as special
| |category)
Ever confirmed|0 |1
--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
confirming.
The app is protected by Themida v2 protection scheme which doesn't like relay
tracing and debuggers.
--- snip ---
-=[ ProtectionID v0.6.6.7 DECEMBER]=-
(c) 2003-2015 CDKiLLER & TippeX
Build 24/12/14-22:48:13
Ready...
Scanning -> C:\Program Files\Smart Diary Suite 4\SDS4.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 6843064 (0686AB8h)
Byte(s)
Compilation TimeStamp : 0x51F761DF -> Tue 30th Jul 2013 06:49:03 (GMT)
[TimeStamp] 0x51F761DF -> Tue 30th Jul 2013 06:49:03 (GMT) | PE Header | - |
Offset: 0x00000108 | VA: 0x00400108 | -
-> File Appears to be Digitally Signed @ Offset 0685800h, size : 012B8h / 04792
byte(s)
[File Heuristics] -> Flag #1 : 00000000000001001100000000100110 (0x0004C026)
[Entrypoint Section Entropy] : 7.99 (section #0) " " | Size : 0x3EDE00
(4120064) byte(s)
[DllCharacteristics] -> Flag : (0x8000) -> TSA
[SectionCount] 7 (0x7) | ImageSize 0xE19000 (14782464) byte(s)
[VersionInfo] Company Name : Programming Sunrise
[VersionInfo] Product Name : Smart Diary (R) Suite 4
[VersionInfo] Product Version : 4.8.0.0
[VersionInfo] File Description : Smart Diary (R) Suite 4
[VersionInfo] File Version : 4.8.0.0
[VersionInfo] Original FileName : SDS4.exe
[VersionInfo] Internal Name : SDS4.exe
[VersionInfo] Version Comments : http://www.sdiary.com
[VersionInfo] Legal Trademarks : Smart Diary (R) is a registered trademark;
Smart Diary (R) Suite by Programming Sunrise
[VersionInfo] Legal Copyrights : Copyright © 1997-2013 by Programming Sunrise
[!] Themida v2.0.1.0 - v2.1.8.0 (or newer) detected !
[i] Hide PE Scanner Option used
- Scan Took : 1.262 Second(s) [0000006CAh (1738) tick(s)] [499 of 573 scan(s)
done]
--- snip ---
Trace with selected channels:
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Smart Diary Suite 4
$ WINEDEBUG=+tid,+seh,+loaddll,+process,+ole,+variant,+devenum wine ./SDS4.exe
>>log2.txt 2>&1
...
0034:trace:ole:CoCreateInstance (rclsid={62be5d10-60eb-11d0-bd3b-00a0c911ce86},
pUnkOuter=(nil), dwClsContext=00000001,
riid={29840822-5b84-11d0-bd3b-00a0c911ce86}, ppv=0x846dcf4)
0034:trace:ole:CoGetTreatAsClass
({62be5d10-60eb-11d0-bd3b-00a0c911ce86},0x846dbd8)
0034:trace:ole:CoGetClassObject CLSID:
{62be5d10-60eb-11d0-bd3b-00a0c911ce86},IID:
{00000001-0000-0000-c000-000000000046}
0034:trace:ole:COMPOBJ_DllList_Add L"C:\\windows\\system32\\devenum.dll"
0034:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\avicap32.dll" at 0x7c4e0000: builtin
0034:trace:loaddll:load_builtin_dll Loaded
L"C:\\windows\\system32\\devenum.dll" at 0x7bae0000: builtin
0034:trace:devenum:DllMain 0x7bae0000 0x1 (nil)
0034:trace:ole:apartment_getclassobject added new loaded dll
L"C:\\windows\\system32\\devenum.dll"
0034:trace:ole:apartment_getclassobject calling DllGetClassObject 0x7bae7fb8
0034:trace:devenum:DllGetClassObject ({62be5d10-60eb-11d0-bd3b-00a0c911ce86},
{00000001-0000-0000-c000-000000000046}, 0x846dbe8)
0034:trace:devenum:DEVENUM_IClassFactory_QueryInterface
(0x7bafb184)->({00000001-0000-0000-c000-000000000046}, 0x846dbe8)
0034:trace:devenum:DEVENUM_IClassFactory_AddRef
0034:trace:devenum:DEVENUM_IClassFactory_CreateInstance (0x7bafb184)->((nil),
{29840822-5b84-11d0-bd3b-00a0c911ce86}, 0x846dcf4)
0034:trace:devenum:DEVENUM_IClassFactory_Release
0034:trace:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator
(0x7bafb160)->({33d9a761-90c8-11d0-bd43-00a0c911ce86}, 0x846dce8, 0)
0034:warn:devenum:open_category_key Could not open
L"CLSID\\{33D9A761-90C8-11D0-BD43-00A0C911CE86}\\Instance"
0034:fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category
{33d9a761-90c8-11d0-bd43-00a0c911ce86} not found
0034:trace:seh:raise_exception code=c0000005 flags=0 addr=0x85f2023 ip=085f2023
tid=0034
0034:trace:seh:raise_exception info[0]=00000000
0034:trace:seh:raise_exception info[1]=00000000
0034:trace:seh:raise_exception eax=00000001 ebx=00000004 ecx=0846dcf0
edx=00000000 esi=08c51404 edi=0847cb50
0034:trace:seh:raise_exception ebp=0846dd04 esp=0846dc78 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210202
...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code
(0x085f2023).
...
Backtrace:
=>0 0x085f2023 in adjmmseng (+0x62023) (0x0846dd04)
1 0x085f1ea0 in adjmmseng (+0x61e9f) (0x0846dd20)
2 0x085f22a1 in adjmmseng (+0x622a0) (0x0846dd44)
3 0x0847cb58 in asrecmms (+0xcb57) (0x0846dde8)
4 0x08497203 in asrecmms (+0x27202) (0x0846de80)
5 0x00805233 in sds4 (+0x405232) (0x0846df40)
6 0x0080552b in sds4 (+0x40552a) (0x0846df60)
0x085f2023: movl 0x0(%edx),%eax
Modules:
Module Address Debug info Name (182 modules)
PE 400000- 1219000 Export sds4
PE 50c0000- 50d1000 Deferred qwadjb
PE 50f0000- 50fc000 Deferred 1eaadjc
PE 7df0000- 7dfb000 Deferred rsaadjd
PE 8470000- 858f000 Export asrecmms
PE 8590000- 8b38000 Export adjmmseng
PE 9070000- 907b000 Deferred mjcriu
PE 10000000-1025c000 Deferred chartdir51
PE 10300000-10309000 Deferred peaadje
PE 10400000-1040f000 Deferred khaadjf
PE 10500000-1052b000 Deferred kfgresk
ELF 48e28000-48e31000 Deferred libffi.so.6
...
Threads:
process tid prio (all id:s are in hex)
...
0000005a (D) C:\Program Files\Smart Diary Suite 4\SDS4.exe
00000043 0
00000042 15
00000041 15
00000040 15
0000003f 15
0000003d 15
0000003c 2
0000003b 15
00000036 0
00000035 0
00000034 0 <==
...
--- snip ---
'33D9A761-90C8-11d0-BD43-00A0C911CE86' -> CLSID_AudioCompressorCategory
There is a plugin 'Multimedia Engine' ('AdjMmsEng.dll') which tries to query
the list of available audio compressors.
Wine returns S_FALSE (no category found) and the stupid app code seems to use
'SUCCEEDED(hr)' macro despite what MSDN says, assuming success.
It tries to access the IEnumMoniker instance which is obviously NULL.
MSDN
https://msdn.microsoft.com/de-de/library/windows/desktop/dd406744%28v=vs.85%29.aspx
--- quote ---
If the category does not exist or is empty, the return value is S_FALSE, and
the ppEnumMoniker parameter receives the value NULL. Therefore, test for the
return value S_OK instead of using the SUCCEEDED macro:
--- quote ---
Anyway, the real problem is how Wine handles 'CLSID_AudioCompressorCategory'.
It must be treated as special category.
Source:
https://source.winehq.org/git/wine.git/blob/df5f835e686337b5f33679f107f64be60c052931:/dlls/devenum/createdevenum.c#l111
--- snip ---
111 static BOOL IsSpecialCategory(const CLSID *clsid)
112 {
113 return IsEqualGUID(clsid, &CLSID_AudioRendererCategory) ||
114 IsEqualGUID(clsid, &CLSID_AudioInputDeviceCategory) ||
115 IsEqualGUID(clsid, &CLSID_VideoInputDeviceCategory) ||
116 IsEqualGUID(clsid, &CLSID_VideoCompressorCategory) ||
117 IsEqualGUID(clsid, &CLSID_MidiRendererCategory);
118 }
--- snip ---
https://source.winehq.org/git/wine.git/blob/df5f835e686337b5f33679f107f64be60c052931:/dlls/devenum/createdevenum.c#l509
After that it still crashes but that's another bug.
$ sha1sum SmartDiarySuite4Medical-setup.exe
406d1cab38e08c5bcbfbe1c38906948d1b8fba78 SmartDiarySuite4Medical-setup.exe
$ du -sh SmartDiarySuite4Medical-setup.exe
13M SmartDiarySuite4Medical-setup.exe
$ wine --version
wine-1.7.51
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