fix(DenuvoAuth): always scan the main executable, not just modules ≥80MB#121
Open
xingcheng1423-cmyk wants to merge 2 commits into
Open
fix(DenuvoAuth): always scan the main executable, not just modules ≥80MB#121xingcheng1423-cmyk wants to merge 2 commits into
xingcheng1423-cmyk wants to merge 2 commits into
Conversation
…80MB ProtectionScan applied kMinPackedModuleBytes (80MB) to every module including the game .exe, so Denuvo titles whose main executable is under 80MB (e.g. Sniper Elite 4 / appid 312660, 71MB) were skipped entirely and Denuvo was never detected -> auth never engaged. Exempt the executable from the size floor; keep it for DLLs. See OpenSteam001#120.
…isses When ScanProtection does not recognize a Denuvo build (some titles slip both the OEP DODENUVO pattern and the legacy DENUVO-string check), still engage the auth path if an EncryptedAppTicket was injected for the app. Per the README, setAppTicket/setETicket are only used for ticket-gated (Denuvo) games, so an injected eticket is a reliable 'user intends Denuvo auth' signal. See OpenSteam001#120.
Author
|
Pushed a 2nd commit: a fallback in Scope notes:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the detection miss described in #120 (and the root cause of the
8850000Asymptom in #117).Problem
ProtectionScan::EnumerateModulesapplieskMinPackedModuleBytes(80 MB) to every module, including the main game executable. Denuvo packs the.exeitself, so a title whose main executable is smaller than 80 MB is skipped before any PE scan,denuvostaysfalse, and the whole authorization path never engages.Concrete case — Sniper Elite 4 (appid
312660),SniperElite4_DX11.exe= 70.97 MB:Change
Exempt the main executable from the size floor; keep the floor for DLLs (the original optimization to skip small runtime DLLs is preserved). One line + comment, in
EnumerateModules:After this change the executable is scanned (verified via trace logs:
enumerated 1 candidate module(s)→ the.exeis now a candidate).Notes / scope
.edataand the legacy.srdatasection has no literalDENUVOstring) — those are separate and left out of this PR.Happy to adjust the comment/threshold wording if you'd prefer a different style.