Refactor platform module, add pipe module, denuvo auth,inject and localize README#109
Conversation
There was a problem hiding this comment.
💡 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, |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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 👍 / 👎.
…d after successful load
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
OSTPlatformas the low-level OS abstraction layer.OSTP_LOG_*platform logging and route it into the main logger in Debug builds.Denuvo Authorization
attempts to address the README TODOs:
GetSteamIDwithout affecting save-file binding.related issue:
Injection
opensteamtool.tomlvia[inject] enabled,library_x64, andlibrary_x86library_x64andlibrary_x86may be absolute paths, or relative paths resolved from the Steam root directory.Config / Lua Hot Reload
opensteamtool.toml.setManifestidoverrides participate in Lua hot reload.README Localization
README.mdand add Spanish translation asREADME_ES.md.