Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
FileExtMismatchDetectorModuleSettings.java
Go to the documentation of this file.
1/*
2 * Autopsy Forensic Browser
3 *
4 * Copyright 2011-2016 Basis Technology Corp.
5 * Contact: carrier <at> sleuthkit <dot> org
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19package org.sleuthkit.autopsy.modules.fileextmismatch;
20
21import java.io.IOException;
22import java.io.ObjectInputStream;
23import java.util.Set;
24import java.util.stream.Collectors;
25import java.util.stream.Stream;
26import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings;
27
31final class FileExtMismatchDetectorModuleSettings implements IngestModuleIngestJobSettings {
32
33 private static final long serialVersionUID = 1L;
34 private long versionNumber;
35 private boolean skipFilesWithNoExtension;
36 @Deprecated
37 private boolean skipFilesWithTextPlainMimeType; // No longer used, retained to maintain serialization compatibility.
38 private boolean skipKnownFiles;
39 private CHECK_TYPE checkType;
40
41 /*
42 * Extension mismatches can be checked for all files, for all files except
43 * text files, or for media and executable files only.
44 */
48
49 /*
50 * The set of the MIME types that will be checked for extension mismatches
51 * when checkType is ONLY_MEDIA_AND_EXE.
52 */
53 static final Set<String> MEDIA_AND_EXE_MIME_TYPES = Stream.of(
54 "image/bmp",
55 "image/gif",
56 "image/jpeg",
57 "image/png",
58 "image/tiff",
59 "image/x-ms-bmp",
60 "application/dos-exe",
61 "application/exe",
62 "application/x-dosexec",
63 "application/x-exe",
64 "application/x-msdownload",
65 "application/msword",
66 "application/pdf",
67 "application/rtf",
68 "application/vnd.ms-excel",
69 "application/vnd.ms-powerpoint",
70 "application/vnd.oasis.opendocument.presentation",
71 "application/vnd.oasis.opendocument.spreadsheet",
72 "application/vnd.oasis.opendocument.text",
73 "application/x-msoffice",
74 "application/x-ooxml",
75 "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
76 "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
77 "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
78 "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
79 "application/vnd.openxmlformats-officedocument.presentationml.presentation",
80 "application/vnd.openxmlformats-officedocument.presentationml.template",
81 "application/vnd.openxmlformats-officedocument.presentationml.slideshow"
82 ).collect(Collectors.toSet());
83
88 FileExtMismatchDetectorModuleSettings() {
89 this.versionNumber = 2;
90 this.skipFilesWithNoExtension = true;
91 this.skipKnownFiles = true;
92 this.checkType = CHECK_TYPE.ONLY_MEDIA_AND_EXE;
93 }
94
100 @Override
101 public long getVersionNumber() {
102 return serialVersionUID;
103 }
104
111 void setSkipFilesWithNoExtension(boolean skipFilesWithNoExtension) {
112 this.skipFilesWithNoExtension = skipFilesWithNoExtension;
113 }
114
121 boolean skipFilesWithNoExtension() {
122 return skipFilesWithNoExtension;
123 }
124
131 void setSkipKnownFiles(boolean skipKnownFiles) {
132 this.skipKnownFiles = skipKnownFiles;
133 }
134
141 boolean skipKnownFiles() {
142 return skipKnownFiles;
143 }
144
151 void setCheckType(CHECK_TYPE checkType) {
152 this.checkType = checkType;
153 }
154
161 CHECK_TYPE getCheckType() {
162 return checkType;
163 }
164
177 private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
178 in.defaultReadObject();
179 if (0L == versionNumber) {
180 /*
181 * If the version number is set to the Java field default value of
182 * zero, then versionNumber and skipKnownFiles are new fields.
183 * Change this to the desired default value of true.
184 */
185 skipKnownFiles = true;
186 versionNumber = 1;
187 }
188 if (1 == versionNumber) {
189 /*
190 * Set the default value of the new checkType field, it is currently
191 * null.
192 */
193 checkType = CHECK_TYPE.ONLY_MEDIA_AND_EXE;
194 versionNumber = 2;
195 }
196 }
197
198}

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.