mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 07:56:16 +00:00
Implement Jython report module support
This commit is contained in:
parent
40c944690e
commit
8c6e381877
40
Core/src/org/sleuthkit/autopsy/examples/reportmodule.py
Executable file
40
Core/src/org/sleuthkit/autopsy/examples/reportmodule.py
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
from java.lang import System
|
||||||
|
from org.sleuthkit.autopsy.casemodule import Case
|
||||||
|
from org.sleuthkit.datamodel import SleuthkitCase
|
||||||
|
from org.sleuthkit.autopsy.report import GeneralReportModuleAdapter
|
||||||
|
|
||||||
|
class SampleGeneralReportModule(GeneralReportModuleAdapter):
|
||||||
|
|
||||||
|
def getName(self):
|
||||||
|
return "Sample Report Module"
|
||||||
|
|
||||||
|
def getDescription(self):
|
||||||
|
return "A sample Jython report module"
|
||||||
|
|
||||||
|
def getFilePath(self):
|
||||||
|
return "sampleReport.txt"
|
||||||
|
|
||||||
|
def generateReport(self, reportPath, progressBar):
|
||||||
|
# There are two tasks to do.
|
||||||
|
progressBar.setIndeterminate(False)
|
||||||
|
progressBar.start()
|
||||||
|
progressBar.setMaximumProgress(2)
|
||||||
|
|
||||||
|
# Get files by created in last two weeks.
|
||||||
|
fileCount = 0
|
||||||
|
autopsyCase = Case.getCurrentCase()
|
||||||
|
sleuthkitCase = autopsyCase.getSleuthkitCase()
|
||||||
|
currentTime = System.currentTimeMillis() / 1000
|
||||||
|
minTime = currentTime - (14 * 24 * 60 * 60)
|
||||||
|
otherFiles = sleuthkitCase.findFilesWhere("crtime > %d" % minTime)
|
||||||
|
for otherFile in otherFiles:
|
||||||
|
fileCount += 1
|
||||||
|
progressBar.increment()
|
||||||
|
|
||||||
|
# Write the result to the report file.
|
||||||
|
report = open(reportPath + '\\' + self.getFilePath(), 'w')
|
||||||
|
report.write("file count = %d" % fileCount)
|
||||||
|
report.close()
|
||||||
|
progressBar.increment()
|
||||||
|
progressBar.complete()
|
||||||
|
|
52
Core/src/org/sleuthkit/autopsy/report/GeneralReportModuleAdapter.java
Executable file
52
Core/src/org/sleuthkit/autopsy/report/GeneralReportModuleAdapter.java
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* Autopsy Forensic Browser
|
||||||
|
*
|
||||||
|
* Copyright 2014 Basis Technology Corp.
|
||||||
|
* Contact: carrier <at> sleuthkit <dot> org
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.sleuthkit.autopsy.report;
|
||||||
|
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An adapter that provides no-op implementations of various GeneralReportModule
|
||||||
|
* methods.
|
||||||
|
*/
|
||||||
|
public abstract class GeneralReportModuleAdapter implements GeneralReportModule {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public abstract String getName();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public abstract String getDescription();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getExtension() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is actually the report file name. It will be appended to a path to a
|
||||||
|
// reports directory.
|
||||||
|
@Override
|
||||||
|
public abstract String getFilePath();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public abstract void generateReport(String reportPath, ReportProgressPanel progressPanel);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JPanel getConfigurationPanel() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -36,6 +36,7 @@ import javax.swing.event.ListSelectionListener;
|
|||||||
import org.openide.util.Lookup;
|
import org.openide.util.Lookup;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
import org.sleuthkit.autopsy.python.JythonModuleLoader;
|
||||||
|
|
||||||
final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
final class ReportVisualPanel1 extends JPanel implements ListSelectionListener {
|
||||||
private static final Logger logger = Logger.getLogger(ReportVisualPanel1.class.getName());
|
private static final Logger logger = Logger.getLogger(ReportVisualPanel1.class.getName());
|
||||||
@ -69,6 +70,11 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
modules.add(module);
|
modules.add(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (GeneralReportModule module : JythonModuleLoader.getGeneralReportModules()) {
|
||||||
|
generalModules.add(module);
|
||||||
|
modules.add(module);
|
||||||
|
}
|
||||||
|
|
||||||
for (FileReportModule module : Lookup.getDefault().lookupAll(FileReportModule.class)) {
|
for (FileReportModule module : Lookup.getDefault().lookupAll(FileReportModule.class)) {
|
||||||
fileModules.add(module);
|
fileModules.add(module);
|
||||||
modules.add(module);
|
modules.add(module);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user