feat(reactor): Add support for Brotli compressed resources - #44
Merged
meck-gd merged 1 commit intoOct 5, 2026
Conversation
|
Thanks! |
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.
Adds Brotli support for encrypted .NET Reactor resources.
The resolver previously treated the decrypted payload as either a raw PE, QuickLZ data, or deflate data. My sample’s resource initializer uses
BrotliStream(..., Decompress), so none of those paths produced the embedded managed resource.The resolver now yields raw, QuickLZ, deflate, and Brotli candidates, then accepts the first one dnlib can load as a managed module. Decoder failures are now treated as failed candidates, allowing the remaining formats to be tested. This also removes the old 64 byte/raw header heuristic. The final candidate is now validated by dnlib rather than by header check alone.
.NET Framework 4.8 does not provide
System.IO.Compression.BrotliStream, so the change adds a conditionalBrotliSharpLibdependency for .NET Framework builds.