Currently the function is_pe_raw checks where the first section starts. If it starts at the raw address, the PE is recognized as raw format.
However, this way of format detection is inaccurate.
Example - UPX packed sample (raw):
And the same sample loaded in the memory:
The area between the headers and the first section contains artefact of the first section.
In such cases, a PE in virtual format is mistakenly recognized as raw.
Currently the function
is_pe_raw
checks where the first section starts. If it starts at the raw address, the PE is recognized as raw format. However, this way of format detection is inaccurate.Example - UPX packed sample (raw):
And the same sample loaded in the memory:
The area between the headers and the first section contains artefact of the first section.
In such cases, a PE in virtual format is mistakenly recognized as raw.