[Bug 27560] Runaway 3 "A Twist of Fate" fails to recognize media on Wine 64Bits (WoW64-aware SecuROM 7.x tries to disable registry redirection/missing advapi32.dll RegDisableReflectionKey)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Feb 3 15:11:28 CST 2012


http://bugs.winehq.org/show_bug.cgi?id=27560

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
          Component|-unknown                    |advapi32
            Summary|Runaway 3 : Retail fails to |Runaway 3 "A Twist of Fate"
                   |recognize media on Wine     |fails to recognize media on
                   |64Bits                      |Wine 64Bits (WoW64-aware
                   |                            |SecuROM 7.x tries to
                   |                            |disable registry
                   |                            |redirection/missing
                   |                            |advapi32.dll
                   |                            |RegDisableReflectionKey)
     Ever Confirmed|0                           |1

--- Comment #1 from Anastasius Focht <focht at gmx.net> 2012-02-03 15:11:28 CST ---
Hello,

bought that game for a few bucks ... and confirming ;-)

My SecuROM version is slightly different but fortunately exhibits same
behaviour.

--- snip ---
-=[ ProtectionID v0.6.4.0 JULY]=-
(c) 2003-2010 CDKiLLER & TippeX
Build 07/08/10-17:57:05
Ready...
Scanning -> Z:\home\focht\.wine\drive_c\Program Files\CRIMSON COW\RUNAWAY - A
TWIST OF FATE\RATOF.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 11079680 (0A91000h)
Byte(s)
[File Heuristics] -> Flag : 00000000000000000000000000000001 (0x00000001)
[!] SecuROM Detected - Version 07.40.0009
[!] Possible CD/DVD-Key or Serial Check -> Invalid serial
[CompilerDetect] -> Visual C++ 8.0 (Visual Studio 2005)
- Scan Took : 0.217 Second(s)
--- snip ---

It seems SecuROM 7.x is WoW64-aware and tries to turn off registry redirection
for a certain key.

32-bit WINEPREFIX:

--- snip ---
...
0026:Call KERNEL32.GetModuleHandleA(0206d3ec "kernel32.dll") ret=018cf2f5
0026:Ret  KERNEL32.GetModuleHandleA() retval=7b810000 ret=018cf2f5
0026:Call KERNEL32.GetProcAddress(7b810000,0206d3c4 "GetSystemWow64DirectoryA")
ret=018cf3a1
0026:Ret  KERNEL32.GetProcAddress() retval=7b822cf0 ret=018cf3a1
0026:Call KERNEL32.GetSystemWow64DirectoryA(028bb9a4,00000827) ret=018cf5ef
0026:Ret  KERNEL32.GetSystemWow64DirectoryA() retval=00000000 ret=018cf5ef
0026:Call KERNEL32.GetLastError() ret=018cf6e0
0026:Ret  KERNEL32.GetLastError() retval=00000078 ret=018cf6e0
0026:Call advapi32.RegOpenKeyExA(80000002,0206d8e7
"System\\MountedDevices",00000000,00020019,028bc64c) ret=01915c7b
0026:Ret  advapi32.RegOpenKeyExA() retval=00000000 ret=01915c7b
0026:Call KERNEL32.VirtualAlloc(00000000,00032000,00101000,00000004)
ret=018b6fdc
0026:Ret  KERNEL32.VirtualAlloc() retval=7fe80000 ret=018b6fdc
0026:Call
advapi32.RegEnumValueA(00000068,00000000,028bc23c,028bc238,00000000,028bc63c,7fe80004,028bc644)
ret=018b7256
0026:Ret  advapi32.RegEnumValueA() retval=00000000 ret=018b7256
...
--- snip ---

64-bit WINEPREFIX:

--- snip ---
...
0026:Call KERNEL32.GetModuleHandleA(0206d3ec "kernel32.dll") ret=018cf2f5
0026:Ret  KERNEL32.GetModuleHandleA() retval=7b810000 ret=018cf2f5
0026:Call KERNEL32.GetProcAddress(7b810000,0206d3c4 "GetSystemWow64DirectoryA")
ret=018cf3a1
0026:Ret  KERNEL32.GetProcAddress() retval=7b822cf0 ret=018cf3a1
0026:Call KERNEL32.GetSystemWow64DirectoryA(028bb9a4,00000827) ret=018cf5ef
0026:Ret  KERNEL32.GetSystemWow64DirectoryA() retval=00000013 ret=018cf5ef
0026:Call KERNEL32.GetModuleHandleA(0206d475 "advapi32.dll") ret=01915976
0026:Ret  KERNEL32.GetModuleHandleA() retval=7eb00000 ret=01915976
0026:Call KERNEL32.GetProcAddress(7eb00000,0206d482 "RegDisableReflectionKey")
ret=01915b2e
0026:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=01915b2e
0026:Call advapi32.RegOpenKeyExA(80000002,0206d8e7
"System\\MountedDevices",00000000,00020019,028bc64c) ret=01915c7b
0026:Ret  advapi32.RegOpenKeyExA() retval=00000000 ret=01915c7b
0026:trace:seh:raise_exception code=80000004 flags=0 addr=(nil) ip=00000000
tid=0026
0026:trace:seh:raise_exception  eax=00000000 ebx=021dd000 ecx=00000000
edx=00000000 esi=00000000 edi=01f62b8c
0026:trace:seh:raise_exception  ebp=028bc1fc esp=028bc1cc cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210212
0026:trace:seh:call_stack_handlers calling handler at 0x1b09d20 code=80000004
flags=0
0026:Call KERNEL32.VirtualQuery(01f0d340,028bbc84,0000001c) ret=01b1017f
0026:Ret  KERNEL32.VirtualQuery() retval=0000001c ret=01b1017f
0026:Call KERNEL32.InterlockedExchange(01faa8c8,00000001) ret=01b101fd
0026:Ret  KERNEL32.InterlockedExchange() retval=00000000 ret=01b101fd
0026:Call KERNEL32.InterlockedExchange(01faa8c8,00000000) ret=01b10262
0026:Ret  KERNEL32.InterlockedExchange() retval=00000001 ret=01b10262
0026:Call KERNEL32.GetLastError() ret=01b0a9bd
0026:Ret  KERNEL32.GetLastError() retval=0000007f ret=01b0a9bd
0026:Call KERNEL32.UnhandledExceptionFilter(028bbcc0) ret=01b0cdca
wine: Unhandled exception 0x80000004 at address (nil) (thread 0026), starting
debugger...
--- snip --- 

Adding advapi32.dll RegDisableReflectionKey() stub returning ERROR_SUCCESS is
enough to make SecuROM 7 work with 64-bit WINEPREFIX.

--- snip ---
...
0044:Call KERNEL32.GetProcAddress(7b810000,0206d3c4 "GetSystemWow64DirectoryA")
ret=018cf3a1
0044:Ret  KERNEL32.GetProcAddress() retval=7b822cf0 ret=018cf3a1
0044:Call KERNEL32.GetSystemWow64DirectoryA(028bb9a4,00000827) ret=018cf5ef
0044:Ret  KERNEL32.GetSystemWow64DirectoryA() retval=00000013 ret=018cf5ef
0044:Call KERNEL32.GetModuleHandleA(0206d475 "advapi32.dll") ret=01915976
0044:Ret  KERNEL32.GetModuleHandleA() retval=7eb10000 ret=01915976
0044:Call KERNEL32.GetProcAddress(7eb10000,0206d482 "RegDisableReflectionKey")
ret=01915b2e
0044:Ret  KERNEL32.GetProcAddress() retval=7eb1f770 ret=01915b2e
0044:Call advapi32.RegOpenKeyExA(80000002,0206d8e7
"System\\MountedDevices",00000000,00020019,028bc64c) ret=01915c7b
0044:Ret  advapi32.RegOpenKeyExA() retval=00000000 ret=01915c7b
0044:Call advapi32.RegDisableReflectionKey(028bc64c) ret=01916602
0044:fixme:reg:RegDisableReflectionKey stub!
0044:Ret  advapi32.RegDisableReflectionKey() retval=00000000 ret=01916602
0044:Call KERNEL32.VirtualAlloc(00000000,00032000,00101000,00000004)
ret=018b6fdc
0044:Ret  KERNEL32.VirtualAlloc() retval=7fe80000 ret=018b6fdc
0044:Call
advapi32.RegEnumValueA(00000068,00000000,028bc23c,028bc238,00000000,028bc63c,7fe80004,028bc644)
ret=018b7256
0044:Ret  advapi32.RegEnumValueA() retval=00000000 ret=018b7256 
...
--- snip --- 

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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