From a0d396d07f0435cc6175a96efc56d83ddbac4737 Mon Sep 17 00:00:00 2001 From: Eugene Livis Date: Thu, 17 Dec 2015 16:39:11 -0500 Subject: [PATCH] Autopsy support for VMDK --- .../src/org/sleuthkit/autopsy/casemodule/AddImageTask.java | 2 -- .../src/org/sleuthkit/autopsy/casemodule/Bundle.properties | 1 + .../org/sleuthkit/autopsy/casemodule/GeneralFilter.java | 4 ++++ .../org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java | 3 +++ Core/src/org/sleuthkit/autopsy/core/Installer.java | 7 +++++++ build-windows.xml | 2 ++ build.xml | 1 + 7 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java index 8ce6634303..1466879ea7 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java @@ -30,11 +30,9 @@ import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.Image; -import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.SleuthkitJNI; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskDataException; -import org.sleuthkit.datamodel.TskException; /* * A background task that adds the given image to database using the Sleuthkit diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index ea26aa612d..1fda9d37b6 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -164,6 +164,7 @@ CasePropertiesForm.updateCaseName.confMsg.title=Create directory CueBannerPanel.title.text=Open Recent Case GeneralFilter.rawImageDesc.text=Raw Images (*.img, *.dd, *.001, *.aa, *.raw, *.bin) GeneralFilter.encaseImageDesc.text=Encase Images (*.e01) +GeneralFilter.virtualMachineImageDesc.text=Virtual Machines (*.vmdk) ImageDSProcessor.dsType.text=Image File ImageDSProcessor.allDesc.text=All Supported Types ImageFilePanel.moduleErr=Module Error diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java b/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java index 55a7c051f7..235cfd7442 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/GeneralFilter.java @@ -37,6 +37,10 @@ public class GeneralFilter extends FileFilter { public static final List ENCASE_IMAGE_EXTS = Arrays.asList(new String[]{".e01"}); //NON-NLS public static final String ENCASE_IMAGE_DESC = NbBundle.getMessage(GeneralFilter.class, "GeneralFilter.encaseImageDesc.text"); + + public static final List VIRTUAL_MACHINE_EXTS = Arrays.asList(new String[]{".vmdk"}); //NON-NLS + public static final String VIRTUAL_MACHINE_DESC = NbBundle.getMessage(GeneralFilter.class, + "GeneralFilter.virtualMachineImageDesc.text"); private List extensions; private String desc; diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java index be46ed5408..91484b522d 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java @@ -66,12 +66,14 @@ public class ImageDSProcessor implements DataSourceProcessor { static final GeneralFilter rawFilter = new GeneralFilter(GeneralFilter.RAW_IMAGE_EXTS, GeneralFilter.RAW_IMAGE_DESC); static final GeneralFilter encaseFilter = new GeneralFilter(GeneralFilter.ENCASE_IMAGE_EXTS, GeneralFilter.ENCASE_IMAGE_DESC); + static final GeneralFilter virtualMachineFilter = new GeneralFilter(GeneralFilter.VIRTUAL_MACHINE_EXTS, GeneralFilter.VIRTUAL_MACHINE_DESC); static final List allExt = new ArrayList<>(); static { allExt.addAll(GeneralFilter.RAW_IMAGE_EXTS); allExt.addAll(GeneralFilter.ENCASE_IMAGE_EXTS); + allExt.addAll(GeneralFilter.VIRTUAL_MACHINE_EXTS); } static final String allDesc = NbBundle.getMessage(ImageDSProcessor.class, "ImageDSProcessor.allDesc.text"); static final GeneralFilter allFilter = new GeneralFilter(allExt, allDesc); @@ -82,6 +84,7 @@ public class ImageDSProcessor implements DataSourceProcessor { filtersList.add(allFilter); filtersList.add(rawFilter); filtersList.add(encaseFilter); + filtersList.add(virtualMachineFilter); } /* diff --git a/Core/src/org/sleuthkit/autopsy/core/Installer.java b/Core/src/org/sleuthkit/autopsy/core/Installer.java index a99c95385f..c8fbf72861 100644 --- a/Core/src/org/sleuthkit/autopsy/core/Installer.java +++ b/Core/src/org/sleuthkit/autopsy/core/Installer.java @@ -85,6 +85,13 @@ public class Installer extends ModuleInstall { } catch (UnsatisfiedLinkError e) { logger.log(Level.SEVERE, "Error loading EWF library, ", e); //NON-NLS } + + try { + System.loadLibrary("libvmdk"); //NON-NLS + logger.log(Level.INFO, "VMDK library loaded"); //NON-NLS + } catch (UnsatisfiedLinkError e) { + logger.log(Level.SEVERE, "Error loading VMDK library, ", e); //NON-NLS + } /* PostgreSQL */ try { diff --git a/build-windows.xml b/build-windows.xml index e8cbf72f2a..71c6783935 100644 --- a/build-windows.xml +++ b/build-windows.xml @@ -44,6 +44,7 @@ + @@ -70,6 +71,7 @@ + diff --git a/build.xml b/build.xml index a3c66ff69c..68d0cc0320 100755 --- a/build.xml +++ b/build.xml @@ -113,6 +113,7 @@ +