patterns/pe: Fix error when ordinalTableRVA is zero (#315)

ordinalTableRVA is not always has value. it might be zero.
Whien this happened, it will failed.

Signed-off-by: Chunhao Hung <chunhao.hung@insyde.com>
Co-authored-by: Chunhao Hung <chunhao.hung@insyde.com>
This commit is contained in:
otakuxtom
2024-11-17 21:00:43 +08:00
committed by GitHub
parent 79e25fdb73
commit 255116a587

View File

@@ -393,7 +393,9 @@ struct ExportsTable {
ExportDirectoryTable directoryTable;
ExportAddress exportAddressTable[directoryTable.addressesAmount] @ directoryTable.addressTableRVA - relativeVirtualDifference();
ExportNamePointer exportNamePointerTable[directoryTable.namePointersAmount] @ directoryTable.namePointerTableRVA - relativeVirtualDifference();
u16 exportOrdinalTable[directoryTable.namePointersAmount] @ directoryTable.ordinalTableRVA - relativeVirtualDifference();
if (directoryTable.ordinalTableRVA > relativeVirtualDifference()) {
u16 exportOrdinalTable[directoryTable.namePointersAmount] @ directoryTable.ordinalTableRVA - relativeVirtualDifference();
}
char imageName[] @ directoryTable.imageNameRVA - relativeVirtualDifference() [[format("formatNullTerminatedString")]];
$ = addressof(this)+coffHeader.optionalHeader.directories[0].size;
};