diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java index a7269cd967..dd1079f761 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/HeadlessAnalyzer.java @@ -1697,6 +1697,10 @@ public class HeadlessAnalyzer { folderPath += DomainFolder.SEPARATOR; } folderPath += startDir.getName(); + + // Handles windows directory paths like "d:", both real and extracted paths on non-windows + // filesystem or archive files + folderPath = folderPath.replaceAll(":/", "/"); for (GFile file : fs.getListing(startDir)) { String name = file.getName(); @@ -1713,7 +1717,9 @@ public class HeadlessAnalyzer { continue; } try { - checkValidFilename(fqFSRL.getName()); + if (!file.isDirectory()) { + checkValidFilename(fqFSRL.getName()); + } processWithImport(fqFSRL, folderPath, depth, false); } catch (InvalidInputException e) { diff --git a/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md b/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md index ecb4f92ef1..d51b0fa17f 100644 --- a/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md +++ b/Ghidra/RuntimeScripts/support/analyzeHeadlessREADME.md @@ -66,7 +66,7 @@ for common use cases. [-scriptlog <path to script log file>] [-log <path to log file>] [-overwrite] - [-overwrite] + [-mirror] [-recursive [<depth>]] [-readOnly] [-deleteProject]