[Bug 51378] New: Failures with `DetourCreateProcessWithDllEx` for Microsoft's Detours Library
WineHQ Bugzilla
wine-bugs at winehq.org
Thu Jul 1 11:17:02 CDT 2021
https://bugs.winehq.org/show_bug.cgi?id=51378
Bug ID: 51378
Summary: Failures with `DetourCreateProcessWithDllEx` for
Microsoft's Detours Library
Product: Wine
Version: 6.11
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs at winehq.org
Reporter: andrew.jones at vector.com
Distribution: ---
Created attachment 70234
--> https://bugs.winehq.org/attachment.cgi?id=70234
stderr from WINEDEBUG
I am trying to work with a third-party tool that use Microsoft's Detours
Library:
https://github.com/microsoft/Detours
but it seems that the API call `DetourCreateProcessWithDllEx` inside of Detours
does not work correctly when run under Wine.
The implementation for `DetourCreateProcessWithDllEx{A/W}` can be found here:
https://github.com/microsoft/Detours/blob/bc7688373bbbb185277788c04f68ae67b0aa4245/src/creatwth.cpp#L1599
https://github.com/microsoft/Detours/blob/bc7688373bbbb185277788c04f68ae67b0aa4245/src/creatwth.cpp#L1660
Helpfully, Detours includes with a sample application `withdll.exe` that
utilises the `DetourCreateProcessWithDllEx` API:
https://github.com/microsoft/Detours/blob/fe7216c037c898b1f65330eda85e6146b6e3cb85/samples/withdll/withdll.cpp
I built Detours from git (fe7216c037c898b1f65330eda85e6146b6e3cb85) on Windows
10 (19042.1052) using MSVC 19.29.30038.1; this gave me the resulting binaries
`withdll.exe` and `simple64.dll`. Running `withdll.exe` to inject
`simple64.dll` on Windows 10 gives:
```
C:\Users\avj\Downloads\Detours-master\bin.X64>withdll.exe /d:simple64.dll
withdll.exe
withdll.exe: Starting: `withdll.exe'
withdll.exe: with
`C:\Users\avj\Downloads\Detours-master\bin.X64\simple64.dll'
simple64.dll: Starting.
simple64.dll: Detoured SleepEx().
Usage:
withdll.exe [options] [command line]
Options:
/d:file.dll : Start the process with file.dll.
/v : Verbose, display memory at start.
/? : This help screen.
simple64.dll: Removed SleepEx() (result=0), slept 0 ticks.
```
However, running this under a fresh Wine 6.11 built (64-bit only;
WINEARCH=win64) on openSUSE (gcc 10.3.0) gives me this:
```
withdll.exe: Starting: `withdll.exe'
withdll.exe: with `Z:\tmp\wine\simple64.dll'
withdll.exe: DetourCreateProcessWithDllEx failed: 2
```
I have attached the stderr from running
`WINEDEBUG=+timestamp,+process,+tid,+seh,+module wine64 withdll.exe
/d:simple64.dll withdll.exe 2>log.txt` to this case.
I have also uploaded the two binary files (`withdll.exe` and `simple64.dll`) to
Google Drive:
https://drive.google.com/file/d/1DmFHYcm4-quslIAsHV1fwbzi6-JxRZse/view?usp=sharing
Note: the source code for these files are MIT licensed, so there should be no
issues in me sharing my binary builds (i.e., I do not consider these files
proprietary).
Is it obvious what's wrong here? Is this a Wine bug or some configuration issue
that I can resolve?
--
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