From 6f37dc40075e6598a2d42cbf04e13f7cf6bbbb82 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Mon, 30 Oct 2023 10:54:16 -0400 Subject: [PATCH] GP-0 Added missing x86 old language v2-v3 translators and corrected old language file parse bug --- .../main/java/ghidra/program/util/OldLanguage.java | 4 +++- Ghidra/Processors/x86/certification.manifest | 6 ++++++ .../x86/data/languages/old/x86RealV2.trans | 7 +++++++ Ghidra/Processors/x86/data/languages/old/x86V2.trans | 12 ++++++++++++ .../data/languages/old/x86_64bit_compat32_v2.trans | 8 ++++++++ .../x86/data/languages/old/x86_64bit_v2.trans | 10 ++++++++++ .../x86/data/languages/old/x86_ProtV2.trans | 7 +++++++ .../Processors/x86/data/languages/old/x86smmV2.trans | 7 +++++++ 8 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 Ghidra/Processors/x86/data/languages/old/x86RealV2.trans create mode 100644 Ghidra/Processors/x86/data/languages/old/x86V2.trans create mode 100644 Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans create mode 100644 Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans create mode 100644 Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans create mode 100644 Ghidra/Processors/x86/data/languages/old/x86smmV2.trans diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/OldLanguage.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/OldLanguage.java index 7ec22fac22..7c3fee1822 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/OldLanguage.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/OldLanguage.java @@ -251,7 +251,9 @@ class OldLanguage implements Language { langDescription = parseDescription(element, version); } else if ("compiler".equals(elementName)) { - associatedCompilerSpecs.add(parseCompilerSpecDescription(element)); + if (!descriptionOnly) { + associatedCompilerSpecs.add(parseCompilerSpecDescription(element)); + } } else if ("spaces".equals(elementName)) { if (spacesFound) { diff --git a/Ghidra/Processors/x86/certification.manifest b/Ghidra/Processors/x86/certification.manifest index 8d87ef77df..639c65acd5 100644 --- a/Ghidra/Processors/x86/certification.manifest +++ b/Ghidra/Processors/x86/certification.manifest @@ -18,17 +18,23 @@ data/languages/mpx.sinc||GHIDRA||||END| data/languages/old/x86RealV1.lang||GHIDRA||||END| data/languages/old/x86RealV1.trans||GHIDRA||||END| data/languages/old/x86RealV2.lang||GHIDRA||||END| +data/languages/old/x86RealV2.trans||GHIDRA||||END| data/languages/old/x86V1.lang||GHIDRA||||END| data/languages/old/x86V1.trans||GHIDRA||||END| data/languages/old/x86V2.lang||GHIDRA||||END| +data/languages/old/x86V2.trans||GHIDRA||||END| data/languages/old/x86_64bit_compat32_v2.lang||GHIDRA||||END| +data/languages/old/x86_64bit_compat32_v2.trans||GHIDRA||||END| data/languages/old/x86_64bit_v1.lang||GHIDRA||||END| data/languages/old/x86_64bit_v1.trans||GHIDRA||||END| data/languages/old/x86_64bit_v2.lang||GHIDRA||||END| +data/languages/old/x86_64bit_v2.trans||GHIDRA||||END| data/languages/old/x86_ProtV2.lang||GHIDRA||||END| +data/languages/old/x86_ProtV2.trans||GHIDRA||||END| data/languages/old/x86smmV1.lang||GHIDRA||||END| data/languages/old/x86smmV1.trans||GHIDRA||||END| data/languages/old/x86smmV2.lang||GHIDRA||||END| +data/languages/old/x86smmV2.trans||GHIDRA||||END| data/languages/pclmulqdq.sinc||GHIDRA||||END| data/languages/rdrand.sinc||GHIDRA||||END| data/languages/sgx.sinc||GHIDRA||||END| diff --git a/Ghidra/Processors/x86/data/languages/old/x86RealV2.trans b/Ghidra/Processors/x86/data/languages/old/x86RealV2.trans new file mode 100644 index 0000000000..00c304fe43 --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86RealV2.trans @@ -0,0 +1,7 @@ + + + x86:LE:16:Real Mode + x86:LE:16:Real Mode + + + diff --git a/Ghidra/Processors/x86/data/languages/old/x86V2.trans b/Ghidra/Processors/x86/data/languages/old/x86V2.trans new file mode 100644 index 0000000000..8c4dc3d313 --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86V2.trans @@ -0,0 +1,12 @@ + + + x86:LE:32:default + x86:LE:32:default + + + + + + + + diff --git a/Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans b/Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans new file mode 100644 index 0000000000..3885da4b6c --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans @@ -0,0 +1,8 @@ + + + x86:LE:64:compat32 + x86:LE:64:compat32 + + + + diff --git a/Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans b/Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans new file mode 100644 index 0000000000..279f8281ab --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans @@ -0,0 +1,10 @@ + + + x86:LE:64:default + x86:LE:64:default + + + + + + diff --git a/Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans b/Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans new file mode 100644 index 0000000000..23470ec919 --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans @@ -0,0 +1,7 @@ + + + x86:LE:16:Protected Mode + x86:LE:16:Protected Mode + + + diff --git a/Ghidra/Processors/x86/data/languages/old/x86smmV2.trans b/Ghidra/Processors/x86/data/languages/old/x86smmV2.trans new file mode 100644 index 0000000000..d00ffab7f8 --- /dev/null +++ b/Ghidra/Processors/x86/data/languages/old/x86smmV2.trans @@ -0,0 +1,7 @@ + + + x86:LE:32:System Management Mode + x86:LE:32:System Management Mode + + +