mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-19 11:07:43 +00:00
Merge branch 'develop' of https://github.com/sleuthkit/autopsy into develop
This commit is contained in:
commit
034e7deb0b
@ -18,11 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.directorytree;
|
package org.sleuthkit.autopsy.directorytree;
|
||||||
|
|
||||||
import org.openide.util.NbBundle;
|
|
||||||
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
|
||||||
import java.awt.Toolkit;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -37,6 +35,8 @@ import javax.swing.JFrame;
|
|||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
import org.openide.util.NbBundle;
|
||||||
|
import org.sleuthkit.autopsy.actions.AddContentTagAction;
|
||||||
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
import org.sleuthkit.autopsy.coreutils.ContextMenuExtensionPoint;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
import org.sleuthkit.datamodel.Content;
|
import org.sleuthkit.datamodel.Content;
|
||||||
@ -112,6 +112,9 @@ public class ExplorerNodeActionVisitor extends ContentVisitor.Default<List<? ext
|
|||||||
@Override
|
@Override
|
||||||
public List<? extends Action> visit(final VirtualDirectory d) {
|
public List<? extends Action> visit(final VirtualDirectory d) {
|
||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
|
if (!d.isDataSource()) {
|
||||||
|
actions.add(AddContentTagAction.getInstance());
|
||||||
|
}
|
||||||
actions.add(ExtractAction.getInstance());
|
actions.add(ExtractAction.getInstance());
|
||||||
actions.addAll(ContextMenuExtensionPoint.getActions());
|
actions.addAll(ContextMenuExtensionPoint.getActions());
|
||||||
return actions;
|
return actions;
|
||||||
|
@ -150,7 +150,7 @@ class ImageExtractor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (TskCoreException e) {
|
} catch (TskCoreException e) {
|
||||||
logger.log(Level.INFO, "Error checking if file already has been processed, skipping: {0}", parentFileName); //NON-NLS
|
logger.log(Level.WARNING, String.format("Error checking if file already has been processed, skipping: %s", parentFileName), e); //NON-NLS
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (abstractFileExtractionFormat) {
|
switch (abstractFileExtractionFormat) {
|
||||||
@ -209,21 +209,21 @@ class ImageExtractor {
|
|||||||
HWPFDocument doc = null;
|
HWPFDocument doc = null;
|
||||||
try {
|
try {
|
||||||
doc = new HWPFDocument(new ReadContentInputStream(af));
|
doc = new HWPFDocument(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.docContainer.init.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.docContainer.init.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
PicturesTable pictureTable = null;
|
PicturesTable pictureTable = null;
|
||||||
List<org.apache.poi.hwpf.usermodel.Picture> listOfAllPictures = null;
|
List<org.apache.poi.hwpf.usermodel.Picture> listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
pictureTable = doc.getPicturesTable();
|
pictureTable = doc.getPicturesTable();
|
||||||
listOfAllPictures = pictureTable.getAllPictures();
|
listOfAllPictures = pictureTable.getAllPictures();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String outputFolderPath;
|
String outputFolderPath;
|
||||||
@ -241,9 +241,9 @@ class ImageExtractor {
|
|||||||
String fileName = picture.suggestFullFileName();
|
String fileName = picture.suggestFullFileName();
|
||||||
try {
|
try {
|
||||||
data = picture.getContent();
|
data = picture.getContent();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
||||||
@ -267,18 +267,18 @@ class ImageExtractor {
|
|||||||
XWPFDocument docx = null;
|
XWPFDocument docx = null;
|
||||||
try {
|
try {
|
||||||
docx = new XWPFDocument(new ReadContentInputStream(af));
|
docx = new XWPFDocument(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.docxContainer.init.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.docxContainer.init.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<XWPFPictureData> listOfAllPictures = null;
|
List<XWPFPictureData> listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
listOfAllPictures = docx.getAllPictures();
|
listOfAllPictures = docx.getAllPictures();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no images are extracted from the PPT, return null, else initialize
|
// if no images are extracted from the PPT, return null, else initialize
|
||||||
@ -299,9 +299,9 @@ class ImageExtractor {
|
|||||||
String fileName = xwpfPicture.getFileName();
|
String fileName = xwpfPicture.getFileName();
|
||||||
try {
|
try {
|
||||||
data = xwpfPicture.getData();
|
data = xwpfPicture.getData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
||||||
@ -323,9 +323,9 @@ class ImageExtractor {
|
|||||||
SlideShow ppt = null;
|
SlideShow ppt = null;
|
||||||
try {
|
try {
|
||||||
ppt = new SlideShow(new ReadContentInputStream(af));
|
ppt = new SlideShow(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptContainer.init.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptContainer.init.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,10 +333,10 @@ class ImageExtractor {
|
|||||||
PictureData[] listOfAllPictures = null;
|
PictureData[] listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
listOfAllPictures = ppt.getPictureData();
|
listOfAllPictures = ppt.getPictureData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no images are extracted from the PPT, return null, else initialize
|
// if no images are extracted from the PPT, return null, else initialize
|
||||||
@ -385,9 +385,9 @@ class ImageExtractor {
|
|||||||
String imageName = UNKNOWN_NAME_PREFIX + i + ext; //NON-NLS
|
String imageName = UNKNOWN_NAME_PREFIX + i + ext; //NON-NLS
|
||||||
try {
|
try {
|
||||||
data = pictureData.getData();
|
data = pictureData.getData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
||||||
@ -410,18 +410,18 @@ class ImageExtractor {
|
|||||||
XMLSlideShow pptx;
|
XMLSlideShow pptx;
|
||||||
try {
|
try {
|
||||||
pptx = new XMLSlideShow(new ReadContentInputStream(af));
|
pptx = new XMLSlideShow(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptxContainer.init.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptxContainer.init.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<XSLFPictureData> listOfAllPictures = null;
|
List<XSLFPictureData> listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
listOfAllPictures = pptx.getAllPictures();
|
listOfAllPictures = pptx.getAllPictures();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no images are extracted from the PPT, return null, else initialize
|
// if no images are extracted from the PPT, return null, else initialize
|
||||||
@ -446,9 +446,9 @@ class ImageExtractor {
|
|||||||
String fileName = xslsPicture.getFileName();
|
String fileName = xslsPicture.getFileName();
|
||||||
try {
|
try {
|
||||||
data = xslsPicture.getData();
|
data = xslsPicture.getData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, fileName).toString(), data);
|
||||||
@ -474,21 +474,21 @@ class ImageExtractor {
|
|||||||
Workbook xls;
|
Workbook xls;
|
||||||
try {
|
try {
|
||||||
xls = new HSSFWorkbook(new ReadContentInputStream(af));
|
xls = new HSSFWorkbook(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, "{0}{1}", new Object[]{NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.xlsContainer.init.err", af.getName()), af.getName()}); //NON-NLS
|
logger.log(Level.WARNING, String.format("%s%s", NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.xlsContainer.init.err", af.getName()), af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<? extends org.apache.poi.ss.usermodel.PictureData> listOfAllPictures = null;
|
List<? extends org.apache.poi.ss.usermodel.PictureData> listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
listOfAllPictures = xls.getAllPictures();
|
listOfAllPictures = xls.getAllPictures();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no images are extracted from the PPT, return null, else initialize
|
// if no images are extracted from the PPT, return null, else initialize
|
||||||
// the output folder for image extraction.
|
// the output folder for image extraction.
|
||||||
String outputFolderPath;
|
String outputFolderPath;
|
||||||
@ -509,9 +509,9 @@ class ImageExtractor {
|
|||||||
String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension(); //NON-NLS
|
String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension(); //NON-NLS
|
||||||
try {
|
try {
|
||||||
data = pictureData.getData();
|
data = pictureData.getData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
||||||
@ -535,21 +535,21 @@ class ImageExtractor {
|
|||||||
Workbook xlsx;
|
Workbook xlsx;
|
||||||
try {
|
try {
|
||||||
xlsx = new XSSFWorkbook(new ReadContentInputStream(af));
|
xlsx = new XSSFWorkbook(new ReadContentInputStream(af));
|
||||||
} catch (Throwable ignore) {
|
} catch (Throwable ex) {
|
||||||
// instantiating POI containers throw RuntimeExceptions
|
// instantiating POI containers throw RuntimeExceptions
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.xlsxContainer.init.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.xlsxContainer.init.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<? extends org.apache.poi.ss.usermodel.PictureData> listOfAllPictures = null;
|
List<? extends org.apache.poi.ss.usermodel.PictureData> listOfAllPictures = null;
|
||||||
try {
|
try {
|
||||||
listOfAllPictures = xlsx.getAllPictures();
|
listOfAllPictures = xlsx.getAllPictures();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if no images are extracted from the PPT, return null, else initialize
|
// if no images are extracted from the PPT, return null, else initialize
|
||||||
// the output folder for image extraction.
|
// the output folder for image extraction.
|
||||||
String outputFolderPath;
|
String outputFolderPath;
|
||||||
@ -570,9 +570,9 @@ class ImageExtractor {
|
|||||||
String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension();
|
String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension();
|
||||||
try {
|
try {
|
||||||
data = pictureData.getData();
|
data = pictureData.getData();
|
||||||
} catch (Exception ignore) {
|
} catch (Exception ex) {
|
||||||
// log internal Java and Apache errors as WARNING
|
// log internal Java and Apache errors as WARNING
|
||||||
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName())); //NON-NLS
|
logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
writeExtractedImage(Paths.get(outputFolderPath, imageName).toString(), data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user