http://bugs.winehq.org/show_bug.cgi?id=8298
------- Additional Comments From focht@gmx.net 2007-06-05 18:09 ------- Hello,
--- quote --- Are you sure that the DEMO of a game which comes as a TORRENT download uses a StarForce protection? I thought that StarForce protection was for checking for original CD and this demo does not use any CD... Is it really StarForce or is XtreamLok something else? --- quote ---
The demo is a whopping 3.5 gig download, setup unpacked 4,2 gig, installed 6,3 gig makes a temporary total of 14 gig ... what kind of stuff did those people smoke? Their website is flash only which is simply unfriendly as hell.
Ok, back to topic. The game is secured with softwrap 7.x (aka Xtreamlok) software protection. The protector employs several advanced anti debugging/detection measures. It fails in first place due to insufficiency of wine crypt32 module (not all APIs are available/functional). You can't get this information by relay/trace because softwrap uses its own imports resolver/fixup code which doesnt leave any trace. It uses crypt32 APi it to verify and transfer digital signatures online.
You can work around this by using native crypt32.dll and its msasn1.dll dependency. Putting both into installation directory will be fine. Set dll override to use native version first.
The next showstopper is because softwrap tries to open volume "c:" directly using "\.<driveletter>:" form. This obviously wont work because neither symlink nor fake harddisk volume exist (e.g. <winedir>/dosdevices/c:: -> blah)
--- snip trace --- 0015:Call kernel32.CreateFileA(0034ec00 "\\.\c:",00000000,00000002,00000000,00000003,00000000,00000000) ret=10008a81 trace:file:CreateFileW L"\\.\c:" QUERY_ACCESS FILE_SHARE_WRITE creation 3 attributes 0x0 trace:file:RtlDosPathNameToNtPathName_U (L"\\.\c:",0x34e9c0,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"\\.\c:" 520 0x34e714 (nil)) trace:ntdll:NtCreateFile handle=0x34e9c8 access=00000000 name=L"\??\c:" objattr=00000040 root=(nil) sec=(nil) io=0x34e9b8 alloc_size=(nil) attr=00000000 sharing=00000002 disp=1 options=00000050 ea=(nil).0x00000000 warn:file:CreateFileW Unable to create file L"\\.\c:" (status c0000034) trace:file:CreateFileW returning 0xffffffff 0015:Ret kernel32.CreateFileA() retval=ffffffff ret=10008a81 --- snip trace ---
Regards