Fix #327 by taking the longer of sizeOfRawData or virtualSize.

This fixes all issues of #327.
This commit is contained in:
0x6d696368 2019-04-26 02:50:47 +02:00
parent 49c2010b63
commit 69f8247194
2 changed files with 6 additions and 2 deletions

View File

@ -313,7 +313,11 @@ public class FileHeader implements StructConverter {
int sizeOfRawData = sectionHeaders[i].getSizeOfRawData();
sizeOfRawData = PortableExecutable.computeAlignment(sizeOfRawData, optHeader.getFileAlignment());
sectionHeaders[i].setSizeOfRawData(sizeOfRawData);
int virtualSize = sectionHeaders[i].getVirtualSize();
virtualSize = PortableExecutable.computeAlignment(virtualSize, optHeader.getSectionAlignment());
sectionHeaders[i].setVirtualSize(virtualSize);
tmpIndex += SectionHeader.IMAGE_SIZEOF_SECTION_HEADER;
}
}

View File

@ -184,7 +184,7 @@ public class PortableExecutable {
}
public static int computeAlignment(int value, int alignment) {
if ((value % alignment) == 0) {
if ( alignment == 0 || (value % alignment) == 0) {
return value;
}
int a = ((value + alignment) / alignment) * alignment;