From 999004245a345dd53c5e0cc2d2014be69595c455 Mon Sep 17 00:00:00 2001 From: ghizard <50744617+ghizard@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:45:36 +0000 Subject: [PATCH] GP-4700 - Improve PDB and MDMang developer scripts --- .../MDMangDeveloperGenericizeMangledNamesScript.java | 1 + .../PdbDeveloperDumpMangledSymbolNamesScript.java | 12 +++++++----- .../PdbDeveloperDumpMangledTypeNamesScript.java | 12 +++++++----- .../developer_scripts/PdbDeveloperDumpScript.java | 12 +++++++----- .../developer_scripts/PdbDeveloperDumpSetScript.java | 2 +- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/Ghidra/Features/MicrosoftDmang/developer_scripts/MDMangDeveloperGenericizeMangledNamesScript.java b/Ghidra/Features/MicrosoftDmang/developer_scripts/MDMangDeveloperGenericizeMangledNamesScript.java index a283beb0c1..4258dbbb97 100644 --- a/Ghidra/Features/MicrosoftDmang/developer_scripts/MDMangDeveloperGenericizeMangledNamesScript.java +++ b/Ghidra/Features/MicrosoftDmang/developer_scripts/MDMangDeveloperGenericizeMangledNamesScript.java @@ -89,6 +89,7 @@ public class MDMangDeveloperGenericizeMangledNamesScript extends GhidraScript { values.setValidator((valueMap, status) -> { return validateInputFile(valueMap, status) && validateOutputFile(valueMap, status); }); + setReusePreviousChoices(false); // false for second pass... want our default output values = askValues(TITLE, null, values); inputFile = values.getFile(INPUT_PROMPT); // might have changed inputFileName = inputFile.getAbsolutePath(); // might have changed diff --git a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledSymbolNamesScript.java b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledSymbolNamesScript.java index 18da61d449..18d52583b7 100644 --- a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledSymbolNamesScript.java +++ b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledSymbolNamesScript.java @@ -25,7 +25,8 @@ import ghidra.app.util.bin.format.pdb2.pdbreader.*; import ghidra.app.util.bin.format.pdb2.pdbreader.symbol.*; import ghidra.app.util.pdb.pdbapplicator.SymbolGroup; import ghidra.features.base.values.GhidraValuesMap; -import ghidra.util.*; +import ghidra.util.MessageType; +import ghidra.util.StatusListener; import ghidra.util.exception.CancelledException; public class PdbDeveloperDumpMangledSymbolNamesScript extends GhidraScript { @@ -88,6 +89,7 @@ public class PdbDeveloperDumpMangledSymbolNamesScript extends GhidraScript { values.setValidator((valueMap, status) -> { return validatePdb(valueMap, status) && validateOutput(valueMap, status); }); + setReusePreviousChoices(false); // false for second pass... want our default output values = askValues(TITLE, null, values); pdbFile = values.getFile(PDB_PROMPT); // might have changed pdbFileName = pdbFile.getAbsolutePath(); // might have changed @@ -95,14 +97,14 @@ public class PdbDeveloperDumpMangledSymbolNamesScript extends GhidraScript { if (dumpFile.exists()) { if (!askYesNo("Confirm Overwrite", "Overwrite file: " + dumpFile.getName())) { - Msg.info(this, "Operation canceled"); + println("Operation canceled"); return; } } String message = "Processing PDB Dump of: " + pdbFileName; monitor.setMessage(message); - Msg.info(this, message); + println(message); try (AbstractPdb pdb = PdbParser.parse(pdbFile, new PdbReaderOptions(), monitor)) { pdb.deserialize(); FileWriter fileWriter = new FileWriter(dumpFile); @@ -111,12 +113,12 @@ public class PdbDeveloperDumpMangledSymbolNamesScript extends GhidraScript { bufferedWriter.close(); } catch (IOException ioe) { - Msg.info(this, ioe.getMessage()); + println(ioe.getMessage()); popup(ioe.getMessage()); } message = "Results located in: " + dumpFile.getAbsoluteFile(); monitor.setMessage(message); - Msg.info(this, message); + println(message); } private void dumpMangledSymbolNames(AbstractPdb pdb, Writer myWriter) diff --git a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledTypeNamesScript.java b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledTypeNamesScript.java index 13516242ac..46661f1c01 100644 --- a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledTypeNamesScript.java +++ b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpMangledTypeNamesScript.java @@ -25,7 +25,8 @@ import ghidra.app.util.bin.format.pdb2.pdbreader.*; import ghidra.app.util.bin.format.pdb2.pdbreader.type.AbstractComplexMsType; import ghidra.app.util.bin.format.pdb2.pdbreader.type.AbstractMsType; import ghidra.features.base.values.GhidraValuesMap; -import ghidra.util.*; +import ghidra.util.MessageType; +import ghidra.util.StatusListener; import ghidra.util.exception.CancelledException; public class PdbDeveloperDumpMangledTypeNamesScript extends GhidraScript { @@ -88,6 +89,7 @@ public class PdbDeveloperDumpMangledTypeNamesScript extends GhidraScript { values.setValidator((valueMap, status) -> { return validatePdb(valueMap, status) && validateOutput(valueMap, status); }); + setReusePreviousChoices(false); // false for second pass... want our default output values = askValues(TITLE, null, values); pdbFile = values.getFile(PDB_PROMPT); // might have changed pdbFileName = pdbFile.getAbsolutePath(); // might have changed @@ -95,13 +97,13 @@ public class PdbDeveloperDumpMangledTypeNamesScript extends GhidraScript { if (dumpFile.exists()) { if (!askYesNo("Confirm Overwrite", "Overwrite file: " + dumpFile.getName())) { - Msg.info(this, "Operation canceled"); + println("Operation canceled"); return; } } String message = "Processing PDB Dump of: " + pdbFileName; - Msg.info(this, message); + println(message); try (AbstractPdb pdb = PdbParser.parse(pdbFile, new PdbReaderOptions(), monitor)) { pdb.deserialize(); FileWriter fileWriter = new FileWriter(dumpFile); @@ -110,11 +112,11 @@ public class PdbDeveloperDumpMangledTypeNamesScript extends GhidraScript { bufferedWriter.close(); } catch (IOException ioe) { - Msg.info(this, ioe.getMessage()); + println(ioe.getMessage()); popup(ioe.getMessage()); } message = "Results located in: " + dumpFile.getAbsoluteFile(); - Msg.info(this, message); + println(message); } private void dumpMangledTypeNames(AbstractPdb pdb, Writer myWriter) diff --git a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpScript.java b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpScript.java index 7f5235ea0d..90f87e3001 100644 --- a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpScript.java +++ b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpScript.java @@ -23,7 +23,8 @@ import docking.widgets.values.GValuesMap; import ghidra.app.script.GhidraScript; import ghidra.app.util.bin.format.pdb2.pdbreader.*; import ghidra.features.base.values.GhidraValuesMap; -import ghidra.util.*; +import ghidra.util.MessageType; +import ghidra.util.StatusListener; public class PdbDeveloperDumpScript extends GhidraScript { @@ -85,6 +86,7 @@ public class PdbDeveloperDumpScript extends GhidraScript { values.setValidator((valueMap, status) -> { return validatePdb(valueMap, status) && validateOutput(valueMap, status); }); + setReusePreviousChoices(false); // false for second pass... want our default output values = askValues(TITLE, null, values); pdbFile = values.getFile(PDB_PROMPT); // might have changed pdbFileName = pdbFile.getAbsolutePath(); // might have changed @@ -92,14 +94,14 @@ public class PdbDeveloperDumpScript extends GhidraScript { if (dumpFile.exists()) { if (!askYesNo("Confirm Overwrite", "Overwrite file: " + dumpFile.getName())) { - Msg.info(this, "Operation canceled"); + println("Operation canceled"); return; } } String message = "Processing PDB Dump of: " + pdbFileName; monitor.setMessage(message); - Msg.info(this, message); + println(message); try (AbstractPdb pdb = PdbParser.parse(pdbFile, new PdbReaderOptions(), monitor)) { pdb.deserialize(); FileWriter fileWriter = new FileWriter(dumpFile); @@ -110,12 +112,12 @@ public class PdbDeveloperDumpScript extends GhidraScript { bufferedWriter.close(); } catch (IOException ioe) { - Msg.info(this, ioe.getMessage()); + println(ioe.getMessage()); popup(ioe.getMessage()); } message = "Results located in: " + dumpFile.getAbsoluteFile(); monitor.setMessage(message); - Msg.info(this, message); + println(message); } private void outputHeaderMessage(BufferedWriter bufferedWriter, String name) throws Exception { diff --git a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpSetScript.java b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpSetScript.java index cff8dfad11..3f89f974ba 100644 --- a/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpSetScript.java +++ b/Ghidra/Features/PDB/developer_scripts/PdbDeveloperDumpSetScript.java @@ -31,7 +31,7 @@ import ghidra.util.exception.CancelledException; public class PdbDeveloperDumpSetScript extends GhidraScript { - private record IOEntry(String input, String output) {}; + private record IOEntry(String input, String output) {} @Override protected void run() throws Exception {