mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 07:56:16 +00:00
1916 add ewfexport executable and necessary dlls to thirdparty folder
This commit is contained in:
parent
0f64a5a8a6
commit
bf5f1656d6
@ -30,7 +30,10 @@
|
|||||||
<copy todir="${basedir}/release/photorec_exec" >
|
<copy todir="${basedir}/release/photorec_exec" >
|
||||||
<fileset dir="${thirdparty.dir}/photorec_exec"/>
|
<fileset dir="${thirdparty.dir}/photorec_exec"/>
|
||||||
</copy>
|
</copy>
|
||||||
|
<!--Copy ewfexport to release-->
|
||||||
|
<copy todir="${basedir}/release/ewfexport_exec" >
|
||||||
|
<fileset dir="${thirdparty.dir}/ewfexport_exec"/>
|
||||||
|
</copy>
|
||||||
<!--Copy other jars-->
|
<!--Copy other jars-->
|
||||||
<copy file="${thirdparty.dir}/rejistry/Rejistry-1.0-SNAPSHOT.jar" todir="${ext.dir}" />
|
<copy file="${thirdparty.dir}/rejistry/Rejistry-1.0-SNAPSHOT.jar" todir="${ext.dir}" />
|
||||||
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding.jar" todir="${ext.dir}" />
|
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding.jar" todir="${ext.dir}" />
|
||||||
|
@ -28,6 +28,8 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
|
import org.openide.modules.InstalledFileLocator;
|
||||||
|
import org.openide.util.Exceptions;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.util.lookup.ServiceProvider;
|
import org.openide.util.lookup.ServiceProvider;
|
||||||
import org.openide.util.lookup.ServiceProviders;
|
import org.openide.util.lookup.ServiceProviders;
|
||||||
@ -35,7 +37,9 @@ import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorCallback
|
|||||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessorProgressMonitor;
|
||||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
|
||||||
import org.sleuthkit.autopsy.coreutils.ExecUtil;
|
import org.sleuthkit.autopsy.coreutils.ExecUtil;
|
||||||
|
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||||
import org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor;
|
import org.sleuthkit.autopsy.datasourceprocessors.AutoIngestDataSourceProcessor;
|
||||||
|
import org.sleuthkit.autopsy.ingest.IngestModule;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A local/logical files and/or directories data source processor that
|
* A local/logical files and/or directories data source processor that
|
||||||
@ -53,6 +57,10 @@ public class LocalFilesDSProcessor implements DataSourceProcessor, AutoIngestDat
|
|||||||
private static final String DATA_SOURCE_TYPE = NbBundle.getMessage(LocalFilesDSProcessor.class, "LocalFilesDSProcessor.dsType");
|
private static final String DATA_SOURCE_TYPE = NbBundle.getMessage(LocalFilesDSProcessor.class, "LocalFilesDSProcessor.dsType");
|
||||||
private final LogicalFilesDspPanel configPanel;
|
private final LogicalFilesDspPanel configPanel;
|
||||||
private static final String L01_EXTRACTION_DIR = "ModuleOutput\\L01";
|
private static final String L01_EXTRACTION_DIR = "ModuleOutput\\L01";
|
||||||
|
private static final String EWFEXPORT_DIR = "ewfexport_exec"; // NON-NLS
|
||||||
|
private static final String EWFEXPORT_32_BIT_DIR = "32-bit"; // NON-NLS
|
||||||
|
private static final String EWFEXPORT_64_BIT_DIR = "64-bit"; // NON-NLS
|
||||||
|
private static final String EWFEXPORT_WINDOWS_EXE = "ewfexport.exe"; // NON-NLS
|
||||||
/*
|
/*
|
||||||
* TODO: Remove the setDataSourceOptionsCalled flag and the settings fields
|
* TODO: Remove the setDataSourceOptionsCalled flag and the settings fields
|
||||||
* when the deprecated method setDataSourceOptions is removed.
|
* when the deprecated method setDataSourceOptions is removed.
|
||||||
@ -145,13 +153,19 @@ public class LocalFilesDSProcessor implements DataSourceProcessor, AutoIngestDat
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> extractL01Contents(List<String> l01FilePaths) {
|
private List<String> extractL01Contents(List<String> l01FilePaths) {
|
||||||
//WJS-TODO -- add ewfexport and any196 other necessary files to software package
|
|
||||||
final String EWFEXPORT_EXE = "C:\\project_libs\\libewf_64bit\\msvscpp\\x64\\Release\\ewfexport.exe";
|
|
||||||
List<String> extractedPaths = new ArrayList<>();
|
List<String> extractedPaths = new ArrayList<>();
|
||||||
|
Path ewfexportPath;
|
||||||
|
try {
|
||||||
|
//WJS-TODO -- add ewfexport and any other necessary files to software package
|
||||||
|
ewfexportPath = locateEwfexportExecutable();
|
||||||
|
} catch (IngestModule.IngestModuleException ex) {
|
||||||
|
System.out.println("EXECPTION CAN'T FIND EXE " + ex);
|
||||||
|
return extractedPaths;
|
||||||
|
}
|
||||||
|
|
||||||
for (String l01Path : l01FilePaths) {
|
for (String l01Path : l01FilePaths) {
|
||||||
List<String> command = new ArrayList<>();
|
List<String> command = new ArrayList<>();
|
||||||
command.add(EWFEXPORT_EXE);
|
command.add(ewfexportPath.toAbsolutePath().toString());
|
||||||
command.add("-f");
|
command.add("-f");
|
||||||
command.add("files");
|
command.add("files");
|
||||||
command.add("-t");
|
command.add("-t");
|
||||||
@ -168,7 +182,7 @@ public class LocalFilesDSProcessor implements DataSourceProcessor, AutoIngestDat
|
|||||||
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
||||||
processBuilder.directory(l01Dir);
|
processBuilder.directory(l01Dir);
|
||||||
try {
|
try {
|
||||||
//WJS-TODO redirect stdout and stderr in a method similar to bulk extractor
|
//WJS-TODO redirect stdout and stderr in a method similar to bulk extractor
|
||||||
// // redirect BE stdout and stderr to txt files
|
// // redirect BE stdout and stderr to txt files
|
||||||
// Path logFileName = Paths.get(outputDirPath.getParent().toString(), outputDirPath.getFileName().toString() + "_out.txt");
|
// Path logFileName = Paths.get(outputDirPath.getParent().toString(), outputDirPath.getFileName().toString() + "_out.txt");
|
||||||
// File logFile = new File(logFileName.toString());
|
// File logFile = new File(logFileName.toString());
|
||||||
@ -179,10 +193,9 @@ public class LocalFilesDSProcessor implements DataSourceProcessor, AutoIngestDat
|
|||||||
// Scan the file with Bulk Extractor.
|
// Scan the file with Bulk Extractor.
|
||||||
//terminator?
|
//terminator?
|
||||||
ExecUtil.execute(processBuilder);
|
ExecUtil.execute(processBuilder);
|
||||||
if (l01Dir.toPath().resolve(dirPath).toFile().exists()){
|
if (l01Dir.toPath().resolve(dirPath).toFile().exists()) {
|
||||||
extractedPaths.add(l01Dir.toPath().resolve(dirPath).toString());
|
extractedPaths.add(l01Dir.toPath().resolve(dirPath).toString());
|
||||||
}
|
} else { //if we failed to extract anything add it as a regular file
|
||||||
else { //if we failed to extract anything add it as a regular file
|
|
||||||
//WJS-TODO notify user of that the file was added as a regular file
|
//WJS-TODO notify user of that the file was added as a regular file
|
||||||
extractedPaths.add(l01Path);
|
extractedPaths.add(l01Path);
|
||||||
}
|
}
|
||||||
@ -196,6 +209,40 @@ public class LocalFilesDSProcessor implements DataSourceProcessor, AutoIngestDat
|
|||||||
return extractedPaths;
|
return extractedPaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Path locateEwfexportExecutable() throws IngestModule.IngestModuleException {
|
||||||
|
// Must be running under a Windows operating system.
|
||||||
|
if (!PlatformUtil.isWindowsOS()) {
|
||||||
|
throw new IngestModule.IngestModuleException("L01 files only supported on windows currently");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the expected path to either the 32-bit or 64-bit version of the
|
||||||
|
// ewfexport executable.
|
||||||
|
final File ewfRoot = InstalledFileLocator.getDefault().locate(EWFEXPORT_DIR, LocalFilesDSProcessor.class.getPackage().getName(), false);
|
||||||
|
|
||||||
|
Path executablePath;
|
||||||
|
if (PlatformUtil.is64BitOS()) {
|
||||||
|
executablePath = Paths.get(
|
||||||
|
ewfRoot.getAbsolutePath(),
|
||||||
|
EWFEXPORT_64_BIT_DIR,
|
||||||
|
EWFEXPORT_WINDOWS_EXE);
|
||||||
|
} else {
|
||||||
|
//WJS-TODO what to do for 32 bit mode?
|
||||||
|
throw new IngestModule.IngestModuleException("L01 files only supported on 64 bit windows currently");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure the executable exists at the expected location and that it
|
||||||
|
// can be run.
|
||||||
|
File ewfexport = executablePath.toFile();
|
||||||
|
if (null == ewfexport || !ewfexport.exists()) {
|
||||||
|
throw new IngestModule.IngestModuleException("EWF export executable does not exist");
|
||||||
|
}
|
||||||
|
if (!ewfexport.canExecute()) {
|
||||||
|
throw new IngestModule.IngestModuleException("EWF export executable can not be executed");
|
||||||
|
}
|
||||||
|
|
||||||
|
return executablePath;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a data source to the case database using a background task in a
|
* Adds a data source to the case database using a background task in a
|
||||||
* separate thread and the given settings instead of those provided by the
|
* separate thread and the given settings instead of those provided by the
|
||||||
|
BIN
thirdparty/ewfexport_exec/32-bit/ewfexport.exe
vendored
Normal file
BIN
thirdparty/ewfexport_exec/32-bit/ewfexport.exe
vendored
Normal file
Binary file not shown.
BIN
thirdparty/ewfexport_exec/32-bit/libewf.dll
vendored
Normal file
BIN
thirdparty/ewfexport_exec/32-bit/libewf.dll
vendored
Normal file
Binary file not shown.
BIN
thirdparty/ewfexport_exec/32-bit/zlib.dll
vendored
Normal file
BIN
thirdparty/ewfexport_exec/32-bit/zlib.dll
vendored
Normal file
Binary file not shown.
BIN
thirdparty/ewfexport_exec/64-bit/ewfexport.exe
vendored
Normal file
BIN
thirdparty/ewfexport_exec/64-bit/ewfexport.exe
vendored
Normal file
Binary file not shown.
BIN
thirdparty/ewfexport_exec/64-bit/libewf.dll
vendored
Normal file
BIN
thirdparty/ewfexport_exec/64-bit/libewf.dll
vendored
Normal file
Binary file not shown.
BIN
thirdparty/ewfexport_exec/64-bit/zlib.dll
vendored
Normal file
BIN
thirdparty/ewfexport_exec/64-bit/zlib.dll
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user