mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Merge pull request #5439 from markmckinnon/5679-Allow-Plaso-to-more-silently-fail-for-non-images
5679-Allow-Plaso-to-more-silently-fail-for-non-images
This commit is contained in:
commit
5f58ac294b
@ -103,8 +103,7 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
|
|
||||||
@NbBundle.Messages({
|
@NbBundle.Messages({
|
||||||
"PlasoIngestModule.executable.not.found=Plaso Executable Not Found.",
|
"PlasoIngestModule.executable.not.found=Plaso Executable Not Found.",
|
||||||
"PlasoIngestModule.requires.windows=Plaso module requires windows.",
|
"PlasoIngestModule.requires.windows=Plaso module requires windows."})
|
||||||
"PlasoIngestModule.dataSource.not.an.image=Datasource is not an Image."})
|
|
||||||
@Override
|
@Override
|
||||||
public void startUp(IngestJobContext context) throws IngestModuleException {
|
public void startUp(IngestJobContext context) throws IngestModuleException {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
@ -121,11 +120,6 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
throw new IngestModuleException(Bundle.PlasoIngestModule_executable_not_found(), exception);
|
throw new IngestModuleException(Bundle.PlasoIngestModule_executable_not_found(), exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
Content dataSource = context.getDataSource();
|
|
||||||
if (!(dataSource instanceof Image)) {
|
|
||||||
throw new IngestModuleException(Bundle.PlasoIngestModule_dataSource_not_an_image());
|
|
||||||
}
|
|
||||||
image = (Image) dataSource;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NbBundle.Messages({
|
@NbBundle.Messages({
|
||||||
@ -138,11 +132,20 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
"PlasoIngestModule.psort.cancelled=psort run was canceled",
|
"PlasoIngestModule.psort.cancelled=psort run was canceled",
|
||||||
"PlasoIngestModule.bad.imageFile=Cannot find image file name and path",
|
"PlasoIngestModule.bad.imageFile=Cannot find image file name and path",
|
||||||
"PlasoIngestModule.completed=Plaso Processing Completed",
|
"PlasoIngestModule.completed=Plaso Processing Completed",
|
||||||
"PlasoIngestModule.has.run=Plaso Plugin has been run.",
|
"PlasoIngestModule.has.run=Plaso",
|
||||||
"PlasoIngestModule.psort.fail=Plaso returned an error when sorting events. Results are not complete."})
|
"PlasoIngestModule.psort.fail=Plaso returned an error when sorting events. Results are not complete.",
|
||||||
|
"PlasoIngestModule.dataSource.not.an.image=Skipping non-disk image datasource"})
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress statusHelper) {
|
public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress statusHelper) {
|
||||||
assert dataSource.equals(image);
|
|
||||||
|
if (!(dataSource instanceof Image)) {
|
||||||
|
IngestMessage message = IngestMessage.createMessage(IngestMessage.MessageType.DATA,
|
||||||
|
Bundle.PlasoIngestModule_has_run(),
|
||||||
|
Bundle.PlasoIngestModule_dataSource_not_an_image());
|
||||||
|
IngestServices.getInstance().postMessage(message);
|
||||||
|
return ProcessResult.OK;
|
||||||
|
} else {
|
||||||
|
image = (Image) dataSource;
|
||||||
|
|
||||||
statusHelper.switchToDeterminate(100);
|
statusHelper.switchToDeterminate(100);
|
||||||
currentCase = Case.getCurrentCase();
|
currentCase = Case.getCurrentCase();
|
||||||
@ -213,6 +216,7 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
IngestServices.getInstance().postMessage(message);
|
IngestServices.getInstance().postMessage(message);
|
||||||
return ProcessResult.OK;
|
return ProcessResult.OK;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ProcessBuilder buildLog2TimeLineCommand(Path moduleOutputPath, Image image) {
|
private ProcessBuilder buildLog2TimeLineCommand(Path moduleOutputPath, Image image) {
|
||||||
//make a csv list of disabled parsers.
|
//make a csv list of disabled parsers.
|
||||||
@ -240,8 +244,10 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
|
|
||||||
static private ProcessBuilder buildProcessWithRunAsInvoker(String... commandLine) {
|
static private ProcessBuilder buildProcessWithRunAsInvoker(String... commandLine) {
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder(commandLine);
|
ProcessBuilder processBuilder = new ProcessBuilder(commandLine);
|
||||||
/* Add an environment variable to force log2timeline/psort to run with
|
/*
|
||||||
* the same permissions Autopsy uses. */
|
* Add an environment variable to force log2timeline/psort to run with
|
||||||
|
* the same permissions Autopsy uses.
|
||||||
|
*/
|
||||||
processBuilder.environment().put("__COMPAT_LAYER", "RunAsInvoker"); //NON-NLS
|
processBuilder.environment().put("__COMPAT_LAYER", "RunAsInvoker"); //NON-NLS
|
||||||
return processBuilder;
|
return processBuilder;
|
||||||
}
|
}
|
||||||
@ -277,8 +283,7 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
"PlasoIngestModule.create.artifacts.cancelled=Cancelled Plaso Artifact Creation ",
|
"PlasoIngestModule.create.artifacts.cancelled=Cancelled Plaso Artifact Creation ",
|
||||||
"# {0} - file that events are from",
|
"# {0} - file that events are from",
|
||||||
"PlasoIngestModule.artifact.progress=Adding events to case: {0}",
|
"PlasoIngestModule.artifact.progress=Adding events to case: {0}",
|
||||||
"PlasoIngestModule.info.empty.database=Plaso database was empty.",
|
"PlasoIngestModule.info.empty.database=Plaso database was empty.",})
|
||||||
})
|
|
||||||
private void createPlasoArtifacts(String plasoDb, DataSourceIngestModuleProgress statusHelper) {
|
private void createPlasoArtifacts(String plasoDb, DataSourceIngestModuleProgress statusHelper) {
|
||||||
Blackboard blackboard = currentCase.getSleuthkitCase().getBlackboard();
|
Blackboard blackboard = currentCase.getSleuthkitCase().getBlackboard();
|
||||||
|
|
||||||
@ -343,9 +348,11 @@ public class PlasoIngestModule implements DataSourceIngestModule {
|
|||||||
BlackboardArtifact bbart = resolvedFile.newArtifact(TSK_TL_EVENT);
|
BlackboardArtifact bbart = resolvedFile.newArtifact(TSK_TL_EVENT);
|
||||||
bbart.addAttributes(bbattributes);
|
bbart.addAttributes(bbattributes);
|
||||||
try {
|
try {
|
||||||
/* Post the artifact which will index the artifact for
|
/*
|
||||||
|
* Post the artifact which will index the artifact for
|
||||||
* keyword search, and fire an event to notify UI of
|
* keyword search, and fire an event to notify UI of
|
||||||
* this new artifact */
|
* this new artifact
|
||||||
|
*/
|
||||||
blackboard.postArtifact(bbart, MODULE_NAME);
|
blackboard.postArtifact(bbart, MODULE_NAME);
|
||||||
} catch (BlackboardException ex) {
|
} catch (BlackboardException ex) {
|
||||||
logger.log(Level.SEVERE, "Error Posting Artifact.", ex);//NON-NLS
|
logger.log(Level.SEVERE, "Error Posting Artifact.", ex);//NON-NLS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user