From 6fe155540a3abbe65c250d9528d256775178aafd Mon Sep 17 00:00:00 2001 From: Graham Date: Tue, 26 Sep 2023 19:51:51 +0100 Subject: [PATCH] Convert namePointer from RVA to raw data pointer This previously worked by chance with the PE32 executables we saw, but it didn't work with the PE32+ executables we saw. Signed-off-by: Graham --- .../main/kotlin/org/openrs2/archive/client/ClientImporter.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/archive/src/main/kotlin/org/openrs2/archive/client/ClientImporter.kt b/archive/src/main/kotlin/org/openrs2/archive/client/ClientImporter.kt index 5d151e01..125d0c34 100644 --- a/archive/src/main/kotlin/org/openrs2/archive/client/ClientImporter.kt +++ b/archive/src/main/kotlin/org/openrs2/archive/client/ClientImporter.kt @@ -360,7 +360,8 @@ public class ClientImporter @Inject constructor( pe.sectionTable.rvaConverter.convertVirtualAddressToRawDataPointer(exportTable.namePointerRVA.toInt()) for (i in 0 until exportTable.numberOfNamePointers.toInt()) { - val namePointer = buf.readerIndex() + buf.getIntLE(buf.readerIndex() + namePointerTable + 4 * i) + val namePointerRva = buf.readerIndex() + buf.getIntLE(buf.readerIndex() + namePointerTable + 4 * i) + val namePointer = pe.sectionTable.rvaConverter.convertVirtualAddressToRawDataPointer(namePointerRva) val end = buf.forEachByte(namePointer, buf.writerIndex() - namePointer, ByteProcessor.FIND_NUL) require(end != -1) {