From afce20dc70130df3a65744cdae6a4b1de2590e3e Mon Sep 17 00:00:00 2001 From: Mark McKinnon Date: Fri, 20 Dec 2019 09:33:55 -0500 Subject: [PATCH 01/44] Update DrawableDB.java Delete datasource from image_gallery_groups table --- .../sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index bae9894de9..f9a318a461 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -2150,10 +2150,13 @@ public final class DrawableDB { public void deleteDataSource(long dataSourceID) throws SQLException, TskCoreException { dbWriteLock(); DrawableTransaction trans = null; + String whereClause = "WHERE data_source_obj_id = " + dataSourceID; + String tableName = "image_gallery_groups"; try { trans = beginTransaction(); deleteDataSourceStmt.setLong(1, dataSourceID); deleteDataSourceStmt.executeUpdate(); + caseDb.getCaseDbAccessManager().delete(tableName, whereClause); commitTransaction(trans, true); } catch (SQLException | TskCoreException ex) { if (null != trans) { From d4914ab5034d6ccbde175843e4a6a910daf7e4c2 Mon Sep 17 00:00:00 2001 From: Ann Priestman Date: Fri, 20 Dec 2019 10:15:21 -0500 Subject: [PATCH 02/44] Added country code to contact --- docs/doxygen-user/images/cvt_contacts.png | Bin 6200 -> 6249 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/doxygen-user/images/cvt_contacts.png b/docs/doxygen-user/images/cvt_contacts.png index 9d86b82cccc61ed92b85d0ab5a5310c414b6b407..4f674e65793401c24d89c3b302e6550ef3f9cedb 100644 GIT binary patch delta 5892 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 R(=UTAprWJ+!@qp<@qf@Q3t<2N delta 5832 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 DlDo)q From 64638a077feaa8cb7294fdb413559d930875ebfe Mon Sep 17 00:00:00 2001 From: Ann Priestman Date: Fri, 20 Dec 2019 12:07:41 -0500 Subject: [PATCH 03/44] Added section on data source deletion. --- docs/doxygen-user/data_sources.dox | 12 ++++++++++-- docs/doxygen-user/images/data_source_delete.png | Bin 0 -> 32215 bytes 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 docs/doxygen-user/images/data_source_delete.png diff --git a/docs/doxygen-user/data_sources.dox b/docs/doxygen-user/data_sources.dox index 2395d43460..6aeed0bbb1 100644 --- a/docs/doxygen-user/data_sources.dox +++ b/docs/doxygen-user/data_sources.dox @@ -3,7 +3,7 @@ A data source is the thing you want to analyze. It can be a disk image, some logical files, a local disk, etc. You must open a case prior to adding a data source to Autopsy. -Autopsy supports four types of data sources: +Autopsy supports multiple types of data sources: - Disk Image or VM File: A file (or set of files) that is a byte-for-byte copy of a hard drive or media card, or a virtual machine image. (see \ref ds_img) - Local Disk: Local storage device (local drive, USB-attached drive, etc.). (see \ref ds_local) - Logical Files: Local files or folders. (see \ref ds_log) @@ -42,7 +42,7 @@ NOTE: If you are adding a data source to a multi-user case, ensure that all Auto 6) After the ingest modules have been configured and the basic examination of the data source is complete, the ingest modules will begin to analyze the file contents. -You cannot remove a data source from a case. +Data sources can be removed from cases created with Autopsy 4.14.0 and later. See the section \ref data_source_deletion "below". \section ds_img Adding a Disk Image @@ -128,4 +128,12 @@ To add exported text files: \image html xry_dsp.png +\section data_source_deletion Deleting Data Sources + +As of Autopsy 4.14.0, data sources can be removed from cases. Removing a data source will delete all files associate with the data source, as well as all results from running ingest modules, tags, and timeline data. \ref reporting_page "Reports" will not be deleted, as most are not associated with a specific data source. If a new data source was created while processing another (from the \ref vm_extractor_page for example), this new data source will also be deleted if its parent is deleted. + +To delete a data source, right click it in either the \ref tree_viewer_page or the \ref result_viewer_page and select "Remove Data Source". If the case was originally created with a version of Autopsy earlier than 4.14.0 then this option will be disabled. After a confirmation dialog, the case will close and then reopen after the data source has been removed. + +\image html data_source_delete.png + */ \ No newline at end of file diff --git a/docs/doxygen-user/images/data_source_delete.png b/docs/doxygen-user/images/data_source_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..d33e42e107cce3080e84e87ed3cc544be9c10f7c GIT binary patch literal 32215 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

slXuj%I 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 F{|8Xo)gb@? literal 0 HcmV?d00001 From 5aba1efc95fac3df947baae2f5bd4e1a7593535a Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dsmyda" Date: Fri, 20 Dec 2019 12:17:37 -0500 Subject: [PATCH 04/44] Moved Gst init, which serves as a bandaid fix until the root cause is understood --- .../autopsy/contentviewers/MediaPlayerPanel.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaPlayerPanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaPlayerPanel.java index 84f7da6c36..ccc4941e55 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaPlayerPanel.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaPlayerPanel.java @@ -72,6 +72,7 @@ import org.freedesktop.gstreamer.Format; import org.freedesktop.gstreamer.GstException; import org.freedesktop.gstreamer.event.SeekFlags; import org.freedesktop.gstreamer.event.SeekType; +import org.sleuthkit.autopsy.coreutils.PlatformUtil; /** * This is a video player that is part of the Media View layered pane. It uses @@ -216,6 +217,14 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie //True for fairness. In other words, //acquire() calls are processed in order of invocation. sliderLock = new Semaphore(1, true); + + /** + * See JIRA-5888 for details. Initializing gstreamer here is more stable + * on Windows. + */ + if(PlatformUtil.isWindowsOS()) { + Gst.init(); + } } private void customizeComponents() { @@ -504,8 +513,10 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie // Initialize Gstreamer. It is safe to call this for every file. // It was moved here from the constructor because having it happen - // earlier resulted in conflicts on Linux. - Gst.init(); + // earlier resulted in conflicts on Linux. See JIRA-5888. + if(!PlatformUtil.isWindowsOS()) { + Gst.init(); + } //Video is ready for playback. Create new components gstPlayBin = new PlayBin("VideoPlayer", tempFile.toURI()); From e7a8583694fce8afcaa04983829103c57a4e78c5 Mon Sep 17 00:00:00 2001 From: Mark McKinnon Date: Fri, 20 Dec 2019 14:09:09 -0500 Subject: [PATCH 05/44] Update DrawableDB.java Check to see if the image_gallery_groups table exists before trying to delete it. --- .../sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index f9a318a461..f634e8387d 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -2156,7 +2156,9 @@ public final class DrawableDB { trans = beginTransaction(); deleteDataSourceStmt.setLong(1, dataSourceID); deleteDataSourceStmt.executeUpdate(); - caseDb.getCaseDbAccessManager().delete(tableName, whereClause); + if (caseDb.getCaseDbAccessManager().tableExists(tableName)) { + caseDb.getCaseDbAccessManager().delete(tableName, whereClause); + } commitTransaction(trans, true); } catch (SQLException | TskCoreException ex) { if (null != trans) { From ee36a5735b8befc16a5e12d3a4a23b9e7b72e44b Mon Sep 17 00:00:00 2001 From: Raman Arora Date: Fri, 27 Dec 2019 14:42:59 -0500 Subject: [PATCH 06/44] 5913: attachment counts are always 0. --- .../relationships/AccountSummary.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java b/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java index 5fc7ae8aa7..5c14125d87 100755 --- a/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java +++ b/Core/src/org/sleuthkit/autopsy/communications/relationships/AccountSummary.java @@ -18,16 +18,21 @@ */ package org.sleuthkit.autopsy.communications.relationships; +import com.google.gson.Gson; +import java.util.Collection; import java.util.List; import java.util.Set; import java.util.logging.Level; import org.sleuthkit.autopsy.coreutils.ImageUtils; import org.sleuthkit.autopsy.coreutils.Logger; +import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.Account; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.TskCoreException; +import org.sleuthkit.datamodel.blackboardutils.FileAttachment; +import org.sleuthkit.datamodel.blackboardutils.MessageAttachments; /** * @@ -121,10 +126,29 @@ class AccountSummary { } } try { - attachmentCnt += artifact.getChildrenCount(); - for (Content childContent : artifact.getChildren()) { - if (ImageUtils.thumbnailSupported(childContent)) { - mediaCnt++; + // count the attachments from the TSK_ATTACHMENTS attribute. + BlackboardAttribute attachmentsAttr = artifact.getAttribute(new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ATTACHMENTS)); + if (attachmentsAttr != null) { + String jsonVal = attachmentsAttr.getValueString(); + MessageAttachments msgAttachments = new Gson().fromJson(jsonVal, MessageAttachments.class); + + Collection fileAttachments = msgAttachments.getFileAttachments(); + for (FileAttachment fileAttachment : fileAttachments) { + attachmentCnt++; + long attachedFileObjId = fileAttachment.getObjectId(); + if (attachedFileObjId >= 0) { + AbstractFile attachedFile = artifact.getSleuthkitCase().getAbstractFileById(attachedFileObjId); + if (ImageUtils.thumbnailSupported(attachedFile)) { + mediaCnt++; + } + } + } + } else { // backward compatibility - email message attachments are derived files, children of the message. + attachmentCnt += artifact.getChildrenCount(); + for (Content childContent : artifact.getChildren()) { + if (ImageUtils.thumbnailSupported(childContent)) { + mediaCnt++; + } } } } catch (TskCoreException ex) { From 43aae0ceb2f2864c5521d3057acc4792f5bbd29b Mon Sep 17 00:00:00 2001 From: Ann Priestman Date: Mon, 30 Dec 2019 13:32:25 -0500 Subject: [PATCH 07/44] Added context content viewer. Fixed URL in geolocation doc. --- docs/doxygen-user/content_viewer.dox | 6 ++++++ docs/doxygen-user/geolocation.dox | 2 +- .../images/content_viewer_annotations.png | Bin 15935 -> 16704 bytes .../images/content_viewer_app_image.png | Bin 299981 -> 300227 bytes .../images/content_viewer_app_plist.png | Bin 25210 -> 25991 bytes .../images/content_viewer_app_sqlite.png | Bin 26696 -> 27668 bytes .../images/content_viewer_context.png | Bin 0 -> 32274 bytes .../images/content_viewer_hex.png | Bin 19579 -> 20424 bytes .../images/content_viewer_html.png | Bin 27706 -> 27780 bytes .../images/content_viewer_indexed_text.png | Bin 19541 -> 20314 bytes .../images/content_viewer_message.png | Bin 23246 -> 24211 bytes .../images/content_viewer_metadata.png | Bin 21522 -> 22312 bytes .../content_viewer_other_occurrences.png | Bin 21820 -> 22380 bytes .../images/content_viewer_registry.png | Bin 32926 -> 33658 bytes .../content_viewer_results_bookmark.png | Bin 18615 -> 19558 bytes .../images/content_viewer_results_call.png | Bin 19828 -> 20705 bytes .../content_viewer_strings_cyrillic.png | Bin 37766 -> 38046 bytes .../images/content_viewer_strings_latin.png | Bin 28188 -> 28647 bytes 18 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/doxygen-user/images/content_viewer_context.png diff --git a/docs/doxygen-user/content_viewer.dox b/docs/doxygen-user/content_viewer.dox index d7f3420fbc..5b00598856 100644 --- a/docs/doxygen-user/content_viewer.dox +++ b/docs/doxygen-user/content_viewer.dox @@ -82,6 +82,12 @@ The File Metadata tab displays basic information about the file, such as type, s \image html content_viewer_metadata.png +\section cv_context Context + +The Context tab shows the the source of attached files and allows you to view the original result. In the image below you can see the context for an image that was sent as an email attachment. + +\image html content_viewer_context.png + \section cv_results Results The Results tab is active when selecting items with associated results such as keyword hits, call logs, and messages. The exact fields displayed depend on the type of result. The two images below show the Results tab for a call log and a web bookmark. diff --git a/docs/doxygen-user/geolocation.dox b/docs/doxygen-user/geolocation.dox index 30dbb75c4c..a4c78351cf 100644 --- a/docs/doxygen-user/geolocation.dox +++ b/docs/doxygen-user/geolocation.dox @@ -49,7 +49,7 @@ on the Geolocation panel in the Options dialog. There are four options for geolo