From afb6acfeb105a0f64e3161423c6c9e4621ed9a07 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Tue, 12 Jan 2016 16:45:17 -0500 Subject: [PATCH 1/2] Start of ingest module to test user types --- .../modules/UserArtifacts/Bundle.properties | 2 + .../UserArtifactIngestModule.java | 43 ++++++++++++++++++ .../UserArtifactIngestModuleFactory.java | 44 +++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100755 Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties create mode 100755 Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java create mode 100755 Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties new file mode 100755 index 0000000000..03426c2a46 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties @@ -0,0 +1,2 @@ +UserArtifactIngestModuleFactory.moduleName=Custom Artifact Adder +AndroidModuleFactory.moduleDescription=Adds custom artifact types \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java new file mode 100755 index 0000000000..7147d56149 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java @@ -0,0 +1,43 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.sleuthkit.autopsy.modules.UserArtifacts; + +import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; +import org.sleuthkit.autopsy.ingest.DataSourceIngestModuleProgress; +import org.sleuthkit.autopsy.ingest.IngestJobContext; +import org.sleuthkit.datamodel.BlackboardArtifact; +import org.sleuthkit.datamodel.Content; +import org.sleuthkit.datamodel.TskCoreException; + +/** + * + * @author oliver + */ +public class UserArtifactIngestModule implements DataSourceIngestModule { + + private IngestJobContext context = null; + private BlackboardArtifact.Type type1, type2; + + @Override + public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress progressBar) { + try { + dataSource.newArtifact(type1.getTypeID()); + dataSource.newArtifact(type2.getTypeID()); + return ProcessResult.OK; + } + catch (TskCoreException ex) { + return ProcessResult.ERROR; + } + } + + @Override + public void startUp(IngestJobContext context) throws IngestModuleException { + this.context = context; + type1 = new BlackboardArtifact.Type(40, "TSK_TEST1", "Test 1"); + type2 = new BlackboardArtifact.Type(41, "TSK_TEST2", "Test 2"); + } + +} diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java new file mode 100755 index 0000000000..638b3ae040 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java @@ -0,0 +1,44 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.sleuthkit.autopsy.modules.UserArtifacts; + +import org.openide.util.NbBundle; +import org.python.apache.xmlcommons.Version; +import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; +import org.sleuthkit.autopsy.ingest.IngestModuleFactoryAdapter; +import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; + +/** + * + * @author oliver + */ +public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter { + + static String getModuleName() { + return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "UserArtifactIngestModuleFactory.moduleName"); + } + + @Override + public String getModuleDisplayName() { + return getModuleName(); + } + + @Override + public String getModuleDescription() { + return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "AndroidModuleFactory.moduleDescription"); + } + + @Override + public String getModuleVersionNumber() { + return Version.getVersion(); + } + @Override + public DataSourceIngestModule createDataSourceIngestModule(IngestModuleIngestJobSettings ingestOptions) { + return new UserArtifactIngestModule(); + } + + +} From e5540228c2b4c6fca436da4854107ee699caff16 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Wed, 13 Jan 2016 10:44:37 -0500 Subject: [PATCH 2/2] Added ingest module in order to see if adding custom artifacts was working --- .../modules/UserArtifacts/Bundle.properties | 2 +- .../UserArtifactIngestModule.java | 22 ++++++++++++++----- .../UserArtifactIngestModuleFactory.java | 16 +++++++++----- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties index 03426c2a46..fb927c8e40 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/Bundle.properties @@ -1,2 +1,2 @@ UserArtifactIngestModuleFactory.moduleName=Custom Artifact Adder -AndroidModuleFactory.moduleDescription=Adds custom artifact types \ No newline at end of file +UserArtifactIngestModuleFactory.moduleDescription=Adds custom artifact types \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java index 7147d56149..66b9416954 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModule.java @@ -5,6 +5,8 @@ */ package org.sleuthkit.autopsy.modules.UserArtifacts; +import com.sun.media.jfxmedia.logging.Logger; +import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; import org.sleuthkit.autopsy.ingest.DataSourceIngestModuleProgress; import org.sleuthkit.autopsy.ingest.IngestJobContext; @@ -20,12 +22,16 @@ public class UserArtifactIngestModule implements DataSourceIngestModule { private IngestJobContext context = null; private BlackboardArtifact.Type type1, type2; + int type1ID, type2ID; @Override public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress progressBar) { + progressBar.switchToDeterminate(2); try { - dataSource.newArtifact(type1.getTypeID()); - dataSource.newArtifact(type2.getTypeID()); + dataSource.newArtifact(type1ID); + progressBar.progress(1); + dataSource.newArtifact(type2ID); + progressBar.progress(1); return ProcessResult.OK; } catch (TskCoreException ex) { @@ -36,8 +42,14 @@ public class UserArtifactIngestModule implements DataSourceIngestModule { @Override public void startUp(IngestJobContext context) throws IngestModuleException { this.context = context; - type1 = new BlackboardArtifact.Type(40, "TSK_TEST1", "Test 1"); - type2 = new BlackboardArtifact.Type(41, "TSK_TEST2", "Test 2"); + type1 = new BlackboardArtifact.Type(39, "TSK_TEST1", "Test 1"); + type2 = new BlackboardArtifact.Type(40, "TSK_TEST2", "Test 2"); + try { + type1ID = Case.getCurrentCase().getSleuthkitCase().addArtifactType(type1.getTypeName(), type1.getDisplayName()); + type2ID = Case.getCurrentCase().getSleuthkitCase().addArtifactType(type2.getTypeName(), type2.getDisplayName()); + } + catch (TskCoreException ex) { + Logger.logMsg(Logger.ERROR, "Startup failed"); + } } - } diff --git a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java index 638b3ae040..eeb500a522 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java +++ b/Core/src/org/sleuthkit/autopsy/modules/UserArtifacts/UserArtifactIngestModuleFactory.java @@ -6,8 +6,10 @@ package org.sleuthkit.autopsy.modules.UserArtifacts; import org.openide.util.NbBundle; +import org.openide.util.lookup.ServiceProvider; import org.python.apache.xmlcommons.Version; import org.sleuthkit.autopsy.ingest.DataSourceIngestModule; +import org.sleuthkit.autopsy.ingest.IngestModuleFactory; import org.sleuthkit.autopsy.ingest.IngestModuleFactoryAdapter; import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; @@ -15,8 +17,9 @@ import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; * * @author oliver */ +@ServiceProvider(service = IngestModuleFactory.class) public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter { - + static String getModuleName() { return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "UserArtifactIngestModuleFactory.moduleName"); } @@ -28,17 +31,20 @@ public class UserArtifactIngestModuleFactory extends IngestModuleFactoryAdapter @Override public String getModuleDescription() { - return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "AndroidModuleFactory.moduleDescription"); + return NbBundle.getMessage(UserArtifactIngestModuleFactory.class, "UserArtifactIngestModuleFactory.moduleDescription"); } - + @Override public String getModuleVersionNumber() { return Version.getVersion(); } + @Override public DataSourceIngestModule createDataSourceIngestModule(IngestModuleIngestJobSettings ingestOptions) { return new UserArtifactIngestModule(); } - - + @Override + public boolean isDataSourceIngestModuleFactory() { + return true; + } }