Skip to content

[FEATURE] Implement a DLL injection handshake mechanism. #31

@Aetopia

Description

@Aetopia

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions