[Bug 44803] Age of Empires II Forgotten Empires crashes " Unhandled privileged instruction"

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Apr 1 15:01:16 CDT 2019


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net

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

I can't reproduce this. Multi-player games work fine with:

* Wine 3.4 (initially reported for)
* Wine 3.7
* Wine 4.5 (most recent)

In your attached log it looks like that 'ws2_32.dll.WS_Bind' entry point has
been corrupted. I've checked with my setup and don't see a reason why such
thing could happen. That API entry doesn't get hooked by the game.

Are you sure the WINEPREFIX hasn't been reused with other software
installations, or even worse infected with malware?
Most malware (trojans) love to hook 'ws2_32.dll' .. for reasons ;-)

I run a special build which makes hooking of API entry points easier in case of
no explicit hotpatch prolog. Various app/game hook engines struggle with Wine's
default '-fPIC' entry code or (distro) Gcc settings such as '-fcf-protection'
(ENDBR32).

Started multi-player game (Internet) and attached debugger:

--- snip ---
$ winedbg
Wine-dbg>info process
 pid      threads  executable (all id:s are in hex)
 00000027 4        'explorer.exe'
 0000000e 5        'services.exe'
 00000020 4        \_ 'winedevice.exe'
 0000001b 3        \_ 'plugplay.exe'
 00000011 4        \_ 'winedevice.exe'
 00000008 15       'age2_x2.exe'
 00000043 5        \_ 'dplaysvr.exe'

Wine-dbg>attach 0x8

Wine-dbg>info thread
process  tid      prio (all id:s are in hex)
00000008 (D) C:\Program Files\Microsoft Games\Age of Empires
II\age2_x1\age2_x2.exe
    0000004c   15
    0000004b    0
    00000049    0
    00000042    1
    00000041    1
    00000040    0
    0000003f    0
    0000003e   15
    0000003d    1
    00000035    0
    00000034    0
    00000032   15
    00000031    0
    00000030    0
    00000009    0 <==

Wine-dbg>info share
Module    Address            Debug info    Name (173 modules)
PE      3b0000-  3bb000    Deferred        dpnhpast
PE      400000-  7e6000    Export          age2_x2
PE      f40000-  ffa000    Deferred        language_x1_p1
PE     9cb0000- 9d2a000    Deferred        language
PE    10000000-10053000    Deferred        language_x1
PE    5df00000-5df16000    Deferred        dpwsockx
PE    5e080000-5e0bb000    Deferred        dplayx
ELF    7994a000-79a27000    Deferred        crypt32<elf>
  \-PE    79960000-79a27000    \               crypt32
ELF    79a27000-79ae2000    Deferred        msvcrt<elf>
  \-PE    79a50000-79ae2000    \               msvcrt
ELF    79ae2000-79c00000    Deferred        quartz<elf>
  \-PE    79b10000-79c00000    \               quartz
ELF    79db8000-7a800000    Deferred        i965_dri.so
ELF    7a800000-7a949000    Deferred        opengl32<elf>
  \-PE    7a840000-7a949000    \               opengl32
...

Wine-dbg>disas WS_Bind

0x7deb9080 WS_bind
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: leal    0x4(%esp),%ecx
0x7deb9084 WS_bind+0x4
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: andl    $-16,%esp
0x7deb9087 WS_bind+0x7
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: pushl    0xfffffffc(%ecx)
0x7deb908a WS_bind+0xa
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: pushl    %ebp
0x7deb908b WS_bind+0xb
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: movl    %esp,%ebp
0x7deb908d WS_bind+0xd
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: pushl    %ebx
0x7deb908e WS_bind+0xe
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: pushl    %ecx
0x7deb908f WS_bind+0xf
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: subl    $0xd0,%esp
0x7deb9095 WS_bind+0x15
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3299] in
ws2_32: movl    %ecx,%ebx
0x7deb9097 WS_bind+0x17
[/home/focht/projects/wine/mainline-src-3.7/dlls/ws2_32/socket.c:3300] in
ws2_32: subl    $4,%esp
...
--- snip ---

The entry point is untouched and valid code.
And yes, it gets called multiple times.

$ wine --version
wine-4.5

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