From 7e2549476e33d981e1050677d016f73d95eb2681 Mon Sep 17 00:00:00 2001 From: Gravelbones Date: Mon, 20 Feb 2023 19:44:06 +0100 Subject: [PATCH 1/3] OMF format: Fix record name for 32 bit types --- .../src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java index 2604fc88c1..98cac64e9a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java @@ -246,6 +246,6 @@ public abstract class OmfRecord { @Override public String toString() { return String.format("name: %s, type: 0x%x, offset: 0x%x, length: 0x%x", - getRecordName(recordType), recordType, recordOffset, recordLength); + getRecordName(recordType & 0xfe), recordType, recordOffset, recordLength); } } From 04134e06c36c6265af9bd33535a828d811bc46db Mon Sep 17 00:00:00 2001 From: Gravelbones Date: Mon, 20 Feb 2023 19:50:47 +0100 Subject: [PATCH 2/3] OMF Format: Fix COMMENT_CLASS_LIBMOD handling --- .../app/util/bin/format/omf/OmfCommentRecord.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java index 2f56174264..4cd8fb065e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java @@ -36,12 +36,17 @@ public class OmfCommentRecord extends OmfRecord { readRecordHeader(reader); commentType = reader.readNextByte(); commentClass = reader.readNextByte(); - byte[] bytes = reader.readNextByteArray( - getRecordLength() - 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); - if (commentClass == COMMENT_CLASS_TRANSLATOR || commentClass == COMMENT_CLASS_LIBMOD || - commentClass == COMMENT_CLASS_DEFAULT_LIBRARY) { + switch(commentClass) { + case COMMENT_CLASS_TRANSLATOR: + case COMMENT_CLASS_DEFAULT_LIBRARY: + byte[] bytes = reader.readNextByteArray( + getRecordLength() - 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); value = new String(bytes, StandardCharsets.US_ASCII); // assuming ASCII + break; + case COMMENT_CLASS_LIBMOD: + value = readString(reader); + break; } readCheckSumByte(reader); } From 07aa5607f5274baee220b6dc6e81d52b1cbd5384 Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Tue, 21 Feb 2023 07:35:31 -0500 Subject: [PATCH 3/3] GP-3118: Code cleanup --- .../util/bin/format/omf/OmfCommentRecord.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java index 4cd8fb065e..1f840b8fec 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java @@ -37,16 +37,16 @@ public class OmfCommentRecord extends OmfRecord { commentType = reader.readNextByte(); commentClass = reader.readNextByte(); - switch(commentClass) { - case COMMENT_CLASS_TRANSLATOR: - case COMMENT_CLASS_DEFAULT_LIBRARY: - byte[] bytes = reader.readNextByteArray( - getRecordLength() - 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); - value = new String(bytes, StandardCharsets.US_ASCII); // assuming ASCII - break; - case COMMENT_CLASS_LIBMOD: - value = readString(reader); - break; + switch (commentClass) { + case COMMENT_CLASS_TRANSLATOR: + case COMMENT_CLASS_DEFAULT_LIBRARY: + byte[] bytes = reader.readNextByteArray(getRecordLength() - + 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); + value = new String(bytes, StandardCharsets.US_ASCII); // assuming ASCII + break; + case COMMENT_CLASS_LIBMOD: + value = readString(reader); + break; } readCheckSumByte(reader); }