Skip to content

Refactor platform module, add pipe module, denuvo auth,inject and localize README#109

Merged
OpenSteam001 merged 4 commits into
mainfrom
refactor/platform-pipe-denuvo
Jun 13, 2026
Merged

Refactor platform module, add pipe module, denuvo auth,inject and localize README#109
OpenSteam001 merged 4 commits into
mainfrom
refactor/platform-pipe-denuvo

Conversation

@OpenSteam001

@OpenSteam001 OpenSteam001 commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Summary

This PR refactors the platform boundary, introduces a PipeManager for Steam IPC handling, and uses that structure to improve Denuvo authorization timing and SteamID handling. It also adds a configurable injection mechanism, which can be enabled by setting the injection options in the config file.

It also adds Spanish README localization. Thanks to @RikkoPoto (#105 )

OSTPlatform

  • Introduce OSTPlatform as the low-level OS abstraction layer.
  • Keep the current backend Windows-only, while making the project structure ready for future Linux platform implementations.
  • Add OSTP_LOG_* platform logging and route it into the main logger in Debug builds.

Denuvo Authorization

attempts to address the README TODOs:

  • Auto Denuvo authorization sharing for legitimate accounts.
  • Finding a safer point to switch GetSteamID without affecting save-file binding.

related issue:

Injection

Config / Lua Hot Reload

README Localization

  • Add a centered language selector to README.md and add Spanish translation as README_ES.md.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3db3f43d7e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

);

bool GetEncryptedAppTicket(
in uint32 cbMaxTicket,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor cbMaxTicket when returning encrypted tickets

This adds a caller-provided maximum ticket size, but HandlerPost_IClientUser_GetEncryptedAppTicket still never parses this request field and always grows pWrite by the full cached ticket size before setting pcbTicket. When a client supplies a smaller cbMaxTicket, the hook can return/write more ticket bytes than the caller requested instead of rejecting it, unlike the ownership-ticket handler which checks its max buffer before writing.

Useful? React with 👍 / 👎.

if (!settings.enabled) return;
if (!ctx.gameProcess) return;

const auto architecture = OSTPlatform::RemoteProcess::GetArchitecture(ctx.process.pid);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Retry injection after failed attempts

With injection enabled, ClaimInjection(ctx.process) records the process before InjectLibrary reports whether the DLL was actually loaded. If the first handshake hits a transient failure such as the target still starting, module enumeration not being ready, or the configured DLL path being temporarily unavailable, every later handshake for the same process is skipped because the process key is already in g_injected. Mark the process as injected only after InjectStatus::Ok, or remove the claim on failure so a later pipe can retry.

Useful? React with 👍 / 👎.

@OpenSteam001 OpenSteam001 merged commit fb08dce into main Jun 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants