diff --git a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ALeappAnalyzerIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ALeappAnalyzerIngestModule.java index 705468ae15f4092c565090b966b542d6bd0374a3..1492670adad56c21028fe4913602f095fd60eb42 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ALeappAnalyzerIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ALeappAnalyzerIngestModule.java @@ -155,7 +155,7 @@ public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress statusHelper.switchToDeterminate(aLeappFilesToProcess.size()); processALeappFs(dataSource, currentCase, statusHelper, tempOutputPath.toString()); } else { - aLeappFilesToProcess = findaLeappFilesToProcess(dataSource); + aLeappFilesToProcess = LeappFileProcessor.findLeappFilesToProcess(dataSource); statusHelper.switchToDeterminate(aLeappFilesToProcess.size()); Integer filesProcessedCount = 0; @@ -268,40 +268,7 @@ private void processALeappFs(Content dataSource, Case currentCase, DataSourceIng } - /** - * Find the files that will be processed by the aLeapp program - * - * @param dataSource - * - * @return List of abstract files to process. - */ - private List<AbstractFile> findaLeappFilesToProcess(Content dataSource) { - - List<AbstractFile> aLeappFiles = new ArrayList<>(); - - FileManager fileManager = getCurrentCase().getServices().getFileManager(); - - // findFiles use the SQL wildcard % in the file name - try { - aLeappFiles = fileManager.findFiles(dataSource, "%", "/"); //NON-NLS - } catch (TskCoreException ex) { - logger.log(Level.WARNING, "No files found to process"); //NON-NLS - return aLeappFiles; - } - - List<AbstractFile> aLeappFilesToProcess = new ArrayList<>(); - for (AbstractFile aLeappFile : aLeappFiles) { - if (((aLeappFile.getLocalAbsPath() != null) - && (!aLeappFile.getNameExtension().isEmpty() && (!aLeappFile.isVirtual()))) - && ((aLeappFile.getName().toLowerCase().contains(".zip") || (aLeappFile.getName().toLowerCase().contains(".tar"))) - || aLeappFile.getName().toLowerCase().contains(".tgz"))) { - aLeappFilesToProcess.add(aLeappFile); - } - } - - return aLeappFilesToProcess; - } /** * Build the aLeapp command to run diff --git a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ILeappAnalyzerIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ILeappAnalyzerIngestModule.java index 19cf3449423bffca245d63a4520dc6c2785cb5c0..d124801046a9f008cb596ba97ab89e0a0e38a59a 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ILeappAnalyzerIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/ILeappAnalyzerIngestModule.java @@ -155,7 +155,7 @@ public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress statusHelper.switchToDeterminate(iLeappFilesToProcess.size()); processILeappFs(dataSource, currentCase, statusHelper, tempOutputPath.toString()); } else { - iLeappFilesToProcess = findiLeappFilesToProcess(dataSource); + iLeappFilesToProcess = LeappFileProcessor.findLeappFilesToProcess(dataSource); statusHelper.switchToDeterminate(iLeappFilesToProcess.size()); Integer filesProcessedCount = 0; @@ -268,41 +268,6 @@ private void processILeappFs(Content dataSource, Case currentCase, DataSourceIng } - /** - * Find the files that will be processed by the iLeapp program - * - * @param dataSource - * - * @return List of abstract files to process. - */ - private List<AbstractFile> findiLeappFilesToProcess(Content dataSource) { - - List<AbstractFile> iLeappFiles = new ArrayList<>(); - - FileManager fileManager = getCurrentCase().getServices().getFileManager(); - - // findFiles use the SQL wildcard % in the file name - try { - iLeappFiles = fileManager.findFiles(dataSource, "%", "/"); //NON-NLS - } catch (TskCoreException ex) { - logger.log(Level.WARNING, "No files found to process"); //NON-NLS - return iLeappFiles; - } - - List<AbstractFile> iLeappFilesToProcess = new ArrayList<>(); - for (AbstractFile iLeappFile : iLeappFiles) { - if (((iLeappFile.getLocalAbsPath() != null) - && (!iLeappFile.getNameExtension().isEmpty() && (!iLeappFile.isVirtual()))) - && ((iLeappFile.getName().toLowerCase().contains(".zip") || (iLeappFile.getName().toLowerCase().contains(".tar"))) - || iLeappFile.getName().toLowerCase().contains(".tgz"))) { - iLeappFilesToProcess.add(iLeappFile); - - } - } - - return iLeappFilesToProcess; - } - /** * Build the command to run xLeapp * @param moduleOutputPath output path for xLeapp diff --git a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/LeappFileProcessor.java b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/LeappFileProcessor.java index f4e24aca39da464b32d98d49d6fa6c7323b70316..3e992f0c0580a180765fa64fa8681702ed6a82a3 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/LeappFileProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/modules/leappanalyzers/LeappFileProcessor.java @@ -35,8 +35,10 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import static java.util.Locale.US; import java.util.Map; +import java.util.Set; import java.util.logging.Level; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -48,7 +50,9 @@ import org.apache.commons.io.FilenameUtils; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; +import static org.sleuthkit.autopsy.casemodule.Case.getCurrentCase; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; +import org.sleuthkit.autopsy.casemodule.services.FileManager; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.ingest.IngestModule.IngestModuleException; @@ -698,4 +702,40 @@ private void configExtractor() throws IOException { xmlFile, true); } + + private static final Set<String> ALLOWED_EXTENSIONS = new HashSet<>(Arrays.asList("zip", "tar", "tgz")); + + /** + * Find the files that will be processed by the iLeapp program + * + * @param dataSource + * + * @return List of abstract files to process. + */ + static List<AbstractFile> findLeappFilesToProcess(Content dataSource) { + + List<AbstractFile> leappFiles = new ArrayList<>(); + + FileManager fileManager = getCurrentCase().getServices().getFileManager(); + + // findFiles use the SQL wildcard % in the file name + try { + leappFiles = fileManager.findFiles(dataSource, "%", "/"); //NON-NLS + } catch (TskCoreException ex) { + logger.log(Level.WARNING, "No files found to process"); //NON-NLS + return leappFiles; + } + + List<AbstractFile> leappFilesToProcess = new ArrayList<>(); + for (AbstractFile leappFile : leappFiles) { + if (((leappFile.getLocalAbsPath() != null) + && !leappFile.isVirtual()) + && leappFile.getNameExtension() != null + && ALLOWED_EXTENSIONS.contains(leappFile.getNameExtension().toLowerCase())) { + leappFilesToProcess.add(leappFile); + } + } + + return leappFilesToProcess; + } }