PE: read reserved DOS header fields #405
Merged
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.
This PR fixes
DosHeader::parse
by readingreserved
andreserved2
fields from the input instead of assuming that they are always zeros (PE64/32).In the PECOFF, the DOS header fields except
e_lfanew
(thepe_pointer
alias in the goblin) are entiely not read by the LDR (Windows loader). So assuming that the two fields in question does not really matter.However, these fields are sometimes (and rarely) used by the PE packers for marking/watermaking purpose. In the real world example, Riot Games uses the
e_ss = 0x4952
ande_sp = 0x544F
fields forMZ ... RIOT
marker.