Intent
Currently there is no way to "verify" if a client DLL was injected via our launcher or a 3rd party injector.
Adding some form of verification will provide the following benefits:
- Adds a layer of "guarantee" that the DLL was sourced from the launcher itself.
- Prevents "unwanted" behaviors within the client when injected via a 3rd party injector.
- Provides more control over injection from the launcher's & client's side.
Implementation
A simple handshake implementation can be seen in Stonecutter.
Here:
- The injector uses
SetThreadDescription to assign a thread description.
- Once the DLL is injected, it uses
GetThreadDescription to obtain the thread description.
- The DLL compares the thread description against an expected thread description.
- The descriptions match then the DLL proceeds to initialize or else fails.
Intent
Currently there is no way to "verify" if a client DLL was injected via our launcher or a 3rd party injector.
Adding some form of verification will provide the following benefits:
Implementation
A simple handshake implementation can be seen in Stonecutter.
Here:
SetThreadDescriptionto assign a thread description.GetThreadDescriptionto obtain the thread description.