19 package org.sleuthkit.datamodel;
21 import java.util.ResourceBundle;
43 private static ResourceBundle
bundle = ResourceBundle.getBundle(
"org.sleuthkit.datamodel.Bundle");
90 throw new IllegalArgumentException(
"No TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE matching type: " + type);
107 TSK_URL(1,
"TSK_URL",
108 bundle.getString(
"BlackboardAttribute.tskUrl.text")),
109 TSK_DATETIME(2,
"TSK_DATETIME",
110 bundle.getString(
"BlackboardAttribute.tskDatetime.text")),
111 TSK_NAME(3,
"TSK_NAME",
112 bundle.getString(
"BlackboardAttribute.tskName.text")),
113 TSK_PROG_NAME(4,
"TSK_PROG_NAME",
114 bundle.getString(
"BlackboardAttribute.tskProgName.text")),
115 TSK_VALUE(6,
"TSK_VALUE",
116 bundle.getString(
"BlackboardAttribute.tskValue.text")),
117 TSK_FLAG(7,
"TSK_FLAG",
118 bundle.getString(
"BlackboardAttribute.tskFlag.text")),
119 TSK_PATH(8,
"TSK_PATH",
120 bundle.getString(
"BlackboardAttribute.tskPath.text")),
121 TSK_KEYWORD(10,
"TSK_KEYWORD",
122 bundle.getString(
"BlackboardAttribute.tskKeyword.text")),
123 TSK_KEYWORD_REGEXP(11,
"TSK_KEYWORD_REGEXP",
124 bundle.getString(
"BlackboardAttribute.tskKeywordRegexp.text")),
125 TSK_KEYWORD_PREVIEW(12,
"TSK_KEYWORD_PREVIEW",
126 bundle.getString(
"BlackboardAttribute.tskKeywordPreview.text")),
129 TSK_KEYWORD_SET(13,
"TSK_KEYWORD_SET",
130 bundle.getString(
"BlackboardAttribute.tskKeywordSet.text")),
131 TSK_USER_NAME(14,
"TSK_USER_NAME",
132 bundle.getString(
"BlackboardAttribute.tskUserName.text")),
133 TSK_DOMAIN(15,
"TSK_DOMAIN",
134 bundle.getString(
"BlackboardAttribute.tskDomain.text")),
135 TSK_PASSWORD(16,
"TSK_PASSWORD",
136 bundle.getString(
"BlackboardAttribute.tskPassword.text")),
137 TSK_NAME_PERSON(17,
"TSK_NAME_PERSON",
138 bundle.getString(
"BlackboardAttribute.tskNamePerson.text")),
139 TSK_DEVICE_MODEL(18,
"TSK_DEVICE_MODEL",
140 bundle.getString(
"BlackboardAttribute.tskDeviceModel.text")),
141 TSK_DEVICE_MAKE(19,
"TSK_DEVICE_MAKE",
142 bundle.getString(
"BlackboardAttribute.tskDeviceMake.text")),
143 TSK_DEVICE_ID(20,
"TSK_DEVICE_ID",
144 bundle.getString(
"BlackboardAttribute.tskDeviceId.text")),
145 TSK_EMAIL(21,
"TSK_EMAIL",
146 bundle.getString(
"BlackboardAttribute.tskEmail.text")),
147 TSK_HASH_MD5(22,
"TSK_HASH_MD5",
148 bundle.getString(
"BlackboardAttribute.tskHashMd5.text")),
149 TSK_HASH_SHA1(23,
"TSK_HASH_SHA1",
150 bundle.getString(
"BlackboardAttribute.tskHashSha1.text")),
151 TSK_HASH_SHA2_256(24,
"TSK_HASH_SHA2_256",
152 bundle.getString(
"BlackboardAttribute.tskHashSha225.text")),
153 TSK_HASH_SHA2_512(25,
"TSK_HASH_SHA2_512",
154 bundle.getString(
"BlackboardAttribute.tskHashSha2512.text")),
155 TSK_TEXT(26,
"TSK_TEXT",
156 bundle.getString(
"BlackboardAttribute.tskText.text")),
157 TSK_TEXT_FILE(27,
"TSK_TEXT_FILE",
158 bundle.getString(
"BlackboardAttribute.tskTextFile.text")),
159 TSK_TEXT_LANGUAGE(28,
"TSK_TEXT_LANGUAGE",
160 bundle.getString(
"BlackboardAttribute.tskTextLanguage.text")),
161 TSK_ENTROPY(29,
"TSK_ENTROPY",
162 bundle.getString(
"BlackboardAttribute.tskEntropy.text")),
165 TSK_HASHSET_NAME(30,
"TSK_HASHSET_NAME",
166 bundle.getString(
"BlackboardAttribute.tskHashsetName.text")),
169 TSK_INTERESTING_FILE(31,
"TSK_INTERESTING_FILE",
170 bundle.getString(
"BlackboardAttribute.tskInterestingFile.text")),
171 TSK_REFERRER(32,
"TSK_REFERRER",
172 bundle.getString(
"BlackboardAttribute.tskReferrer.text")),
173 TSK_DATETIME_ACCESSED(33,
"TSK_DATETIME_ACCESSED",
174 bundle.getString(
"BlackboardAttribute.tskDateTimeAccessed.text")),
175 TSK_IP_ADDRESS(34,
"TSK_IP_ADDRESS",
176 bundle.getString(
"BlackboardAttribute.tskIpAddress.text")),
177 TSK_PHONE_NUMBER(35,
"TSK_PHONE_NUMBER",
178 bundle.getString(
"BlackboardAttribute.tskPhoneNumber.text")),
179 TSK_PATH_ID(36,
"TSK_PATH_ID",
180 bundle.getString(
"BlackboardAttribute.tskPathId.text")),
181 TSK_SET_NAME(37,
"TSK_SET_NAME",
182 bundle.getString(
"BlackboardAttribute.tskSetName.text")),
185 TSK_ENCRYPTION_DETECTED(38,
"TSK_ENCRYPTION_DETECTED",
186 bundle.getString(
"BlackboardAttribute.tskEncryptionDetected.text")),
187 TSK_MALWARE_DETECTED(39,
"TSK_MALWARE_DETECTED",
188 bundle.getString(
"BlackboardAttribute.tskMalwareDetected.text")),
189 TSK_STEG_DETECTED(40,
"TSK_STEG_DETECTED",
190 bundle.getString(
"BlackboardAttribute.tskStegDetected.text")),
191 TSK_EMAIL_TO(41,
"TSK_EMAIL_TO",
192 bundle.getString(
"BlackboardAttribute.tskEmailTo.text")),
193 TSK_EMAIL_CC(42,
"TSK_EMAIL_CC",
194 bundle.getString(
"BlackboardAttribute.tskEmailCc.text")),
195 TSK_EMAIL_BCC(43,
"TSK_EMAIL_BCC",
196 bundle.getString(
"BlackboardAttribute.tskEmailBcc.text")),
197 TSK_EMAIL_FROM(44,
"TSK_EMAIL_FROM",
198 bundle.getString(
"BlackboardAttribute.tskEmailFrom.text")),
199 TSK_EMAIL_CONTENT_PLAIN(45,
"TSK_EMAIL_CONTENT_PLAIN",
200 bundle.getString(
"BlackboardAttribute.tskEmailContentPlain.text")),
201 TSK_EMAIL_CONTENT_HTML(46,
"TSK_EMAIL_CONTENT_HTML",
202 bundle.getString(
"BlackboardAttribute.tskEmailContentHtml.text")),
203 TSK_EMAIL_CONTENT_RTF(47,
"TSK_EMAIL_CONTENT_RTF",
204 bundle.getString(
"BlackboardAttribute.tskEmailContentRtf.text")),
205 TSK_MSG_ID(48,
"TSK_MSG_ID",
206 bundle.getString(
"BlackboardAttribute.tskMsgId.text")),
207 TSK_MSG_REPLY_ID(49,
"TSK_MSG_REPLY_ID",
208 bundle.getString(
"BlackboardAttribute.tskMsgReplyId.text")),
209 TSK_DATETIME_RCVD(50,
"TSK_DATETIME_RCVD",
210 bundle.getString(
"BlackboardAttribute.tskDateTimeRcvd.text")),
211 TSK_DATETIME_SENT(51,
"TSK_DATETIME_SENT",
212 bundle.getString(
"BlackboardAttribute.tskDateTimeSent.text")),
213 TSK_SUBJECT(52,
"TSK_SUBJECT",
214 bundle.getString(
"BlackboardAttribute.tskSubject.text")),
215 TSK_TITLE(53,
"TSK_TITLE",
216 bundle.getString(
"BlackboardAttribute.tskTitle.text")),
217 TSK_GEO_LATITUDE(54,
"TSK_GEO_LATITUDE",
218 bundle.getString(
"BlackboardAttribute.tskGeoLatitude.text")),
219 TSK_GEO_LONGITUDE(55,
"TSK_GEO_LONGITUDE",
220 bundle.getString(
"BlackboardAttribute.tskGeoLongitude.text")),
221 TSK_GEO_VELOCITY(56,
"TSK_GEO_VELOCITY",
222 bundle.getString(
"BlackboardAttribute.tskGeoVelocity.text")),
223 TSK_GEO_ALTITUDE(57,
"TSK_GEO_ALTITUDE",
224 bundle.getString(
"BlackboardAttribute.tskGeoAltitude.text")),
225 TSK_GEO_BEARING(58,
"TSK_GEO_BEARING",
226 bundle.getString(
"BlackboardAttribute.tskGeoBearing.text")),
227 TSK_GEO_HPRECISION(59,
"TSK_GEO_HPRECISION",
228 bundle.getString(
"BlackboardAttribute.tskGeoHPrecision.text")),
229 TSK_GEO_VPRECISION(60,
"TSK_GEO_VPRECISION",
230 bundle.getString(
"BlackboardAttribute.tskGeoVPrecision.text")),
231 TSK_GEO_MAPDATUM(61,
"TSK_GEO_MAPDATUM",
232 bundle.getString(
"BlackboardAttribute.tskGeoMapDatum.text")),
233 TSK_FILE_TYPE_SIG(62,
"TSK_FILE_TYPE_SIG",
234 bundle.getString(
"BlackboardAttribute.tskFileTypeSig.text")),
235 TSK_FILE_TYPE_EXT(63,
"TSK_FILE_TYPE_EXT",
236 bundle.getString(
"BlackboardAttribute.tskFileTypeExt.text")),
239 TSK_TAGGED_ARTIFACT(64,
"TSK_TAGGED_ARTIFACT",
240 bundle.getString(
"BlackboardAttribute.tskTaggedArtifact.text")),
243 TSK_TAG_NAME(65,
"TSK_TAG_NAME",
244 bundle.getString(
"BlackboardAttribute.tskTagName.text")),
245 TSK_COMMENT(66,
"TSK_COMMENT",
246 bundle.getString(
"BlackboardAttribute.tskComment.text")),
247 TSK_URL_DECODED(67,
"TSK_URL_DECODED",
248 bundle.getString(
"BlackboardAttribute.tskUrlDecoded.text")),
249 TSK_DATETIME_CREATED(68,
"TSK_DATETIME_CREATED",
250 bundle.getString(
"BlackboardAttribute.tskDateTimeCreated.text")),
251 TSK_DATETIME_MODIFIED(69,
"TSK_DATETIME_MODIFIED",
252 bundle.getString(
"BlackboardAttribute.tskDateTimeModified.text")),
253 TSK_PROCESSOR_ARCHITECTURE(70,
"TSK_PROCESSOR_ARCHITECTURE",
254 bundle.getString(
"BlackboardAttribute.tskProcessorArchitecture.text")),
255 TSK_VERSION(71,
"TSK_VERSION",
256 bundle.getString(
"BlackboardAttribute.tskVersion.text")),
257 TSK_USER_ID(72,
"TSK_USER_ID",
258 bundle.getString(
"BlackboardAttribute.tskUserId.text")),
259 TSK_DESCRIPTION(73,
"TSK_DESCRIPTION",
260 bundle.getString(
"BlackboardAttribute.tskDescription.text")),
261 TSK_MESSAGE_TYPE(74,
"TSK_MESSAGE_TYPE",
262 bundle.getString(
"BlackboardAttribute.tskMessageType.text")),
263 TSK_PHONE_NUMBER_HOME(75,
"TSK_PHONE_NUMBER_HOME",
264 bundle.getString(
"BlackboardAttribute.tskPhoneNumberHome.text")),
265 TSK_PHONE_NUMBER_OFFICE(76,
"TSK_PHONE_NUMBER_OFFICE",
266 bundle.getString(
"BlackboardAttribute.tskPhoneNumberOffice.text")),
267 TSK_PHONE_NUMBER_MOBILE(77,
"TSK_PHONE_NUMBER_MOBILE",
268 bundle.getString(
"BlackboardAttribute.tskPhoneNumberMobile.text")),
269 TSK_PHONE_NUMBER_FROM(78,
"TSK_PHONE_NUMBER_FROM",
270 bundle.getString(
"BlackboardAttribute.tskPhoneNumberFrom.text")),
271 TSK_PHONE_NUMBER_TO(79,
"TSK_PHONE_NUMBER_TO",
272 bundle.getString(
"BlackboardAttribute.tskPhoneNumberTo.text")),
273 TSK_DIRECTION(80,
"TSK_DIRECTION",
274 bundle.getString(
"BlackboardAttribute.tskDirection.text")),
275 TSK_EMAIL_HOME(81,
"TSK_EMAIL_HOME",
276 bundle.getString(
"BlackboardAttribute.tskEmailHome.text")),
277 TSK_EMAIL_OFFICE(82,
"TSK_EMAIL_OFFICE",
278 bundle.getString(
"BlackboardAttribute.tskEmailOffice.text")),
279 TSK_DATETIME_START(83,
"TSK_DATETIME_START",
280 bundle.getString(
"BlackboardAttribute.tskDateTimeStart.text")),
281 TSK_DATETIME_END(84,
"TSK_DATETIME_END",
282 bundle.getString(
"BlackboardAttribute.tskDateTimeEnd.text")),
283 TSK_CALENDAR_ENTRY_TYPE(85,
"TSK_CALENDAR_ENTRY_TYPE",
284 bundle.getString(
"BlackboardAttribute.tskCalendarEntryType.text")),
285 TSK_LOCATION(86,
"TSK_LOCATION",
286 bundle.getString(
"BlackboardAttribute.tskLocation.text")),
287 TSK_SHORTCUT(87,
"TSK_SHORTCUT",
288 bundle.getString(
"BlackboardAttribute.tskShortcut.text")),
289 TSK_DEVICE_NAME(88,
"TSK_DEVICE_NAME",
290 bundle.getString(
"BlackboardAttribute.tskDeviceName.text")),
291 TSK_CATEGORY(89,
"TSK_CATEGORY",
292 bundle.getString(
"BlackboardAttribute.tskCategory.text")),
293 TSK_EMAIL_REPLYTO(90,
"TSK_EMAIL_REPLYTO",
294 bundle.getString(
"BlackboardAttribute.tskEmailReplyTo.text")),
295 TSK_SERVER_NAME(91,
"TSK_SERVER_NAME",
296 bundle.getString(
"BlackboardAttribute.tskServerName.text")),
297 TSK_COUNT(92,
"TSK_COUNT",
298 bundle.getString(
"BlackboardAttribute.tskCount.text")),
299 TSK_MIN_COUNT(93,
"TSK_MIN_COUNT",
300 bundle.getString(
"BlackboardAttribute.tskMinCount.text")),
301 TSK_PATH_SOURCE(94,
"TSK_PATH_SOURCE",
302 bundle.getString(
"BlackboardAttribute.tskPathSource.text")),
303 TSK_PERMISSIONS(95,
"TSK_PERMISSIONS",
304 bundle.getString(
"BlackboardAttribute.tskPermissions.text")),
305 TSK_ASSOCIATED_ARTIFACT(96,
"TSK_ASSOCIATED_ARTIFACT",
306 bundle.getString(
"BlackboardAttribute.tskAssociatedArtifact.text")),
307 TSK_ISDELETED(97,
"TSK_ISDELETED",
308 bundle.getString(
"BlackboardAttribute.tskIsDeleted.text")),
309 TSK_GEO_LATITUDE_START(98,
"TSK_GEO_LATITUDE_START",
310 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeStart.text")),
311 TSK_GEO_LATITUDE_END(99,
"TSK_GEO_LATITUDE_END",
312 bundle.getString(
"BlackboardAttribute.tskGeoLatitudeEnd.text")),
313 TSK_GEO_LONGITUDE_START(100,
"TSK_GEO_LONGITUDE_START",
314 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeStart.text")),
315 TSK_GEO_LONGITUDE_END(101,
"TSK_GEO_LONGITUDE_END",
316 bundle.getString(
"BlackboardAttribute.tskGeoLongitudeEnd.text")),
317 TSK_READ_STATUS(102,
"TSK_READ_STATUS",
318 bundle.getString(
"BlackboardAttribute.tskReadStatus.text")),
319 TSK_LOCAL_PATH(103,
"TSK_LOCAL_PATH",
320 bundle.getString(
"BlackboardAttribute.tskLocalPath.text")),
321 TSK_REMOTE_PATH(104,
"TSK_REMOTE_PATH",
322 bundle.getString(
"BlackboardAttribute.tskRemotePath.text")),
323 TSK_TEMP_DIR(105,
"TSK_TEMP_DIR",
324 bundle.getString(
"BlackboardAttribute.tskTempDir.text")),
325 TSK_PRODUCT_ID(106,
"TSK_PRODUCT_ID",
326 bundle.getString(
"BlackboardAttribute.tskProductId.text")),
327 TSK_OWNER(107,
"TSK_OWNER",
328 bundle.getString(
"BlackboardAttribute.tskOwner.text")),
329 TSK_ORGANIZATION(108,
"TSK_ORGANIZATION",
330 bundle.getString(
"BlackboardAttribute.tskOrganization.text")),
340 this.typeID = typeID;
342 this.displayName = displayName;
372 if (v.label.equals(label)) {
376 throw new IllegalArgumentException(
"No ATTRIBUTE_TYPE matching type: " + label);
380 return this.displayName;
402 BlackboardAttribute(
long artifactID,
int attributeTypeID, String moduleName, String context,
403 TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType,
int valueInt,
long valueLong,
double valueDouble,
404 String valueString, byte[] valueBytes,
SleuthkitCase sleuthkitCase) {
414 if (valueString == null) {
415 this.valueString =
"";
419 if (valueBytes == null) {
420 this.valueBytes =
new byte[0];
442 this.valueDouble = 0;
443 this.valueString =
"";
444 this.valueBytes =
new byte[0];
483 this.valueDouble = 0;
484 this.valueString =
"";
485 this.valueBytes =
new byte[0];
518 double valueDouble) {
526 this.valueString =
"";
527 this.valueBytes =
new byte[0];
545 double valueDouble) {
565 this.valueDouble = 0;
566 if (valueString == null) {
567 this.valueString =
"";
571 this.valueBytes =
new byte[0];
589 String valueString) {
610 this.valueDouble = 0;
611 this.valueString =
"";
612 if (valueBytes == null) {
613 this.valueBytes =
new byte[0];
638 hash = 97 * hash + (int) (this.artifactID ^ (this.artifactID >>> 32));
647 if (getClass() != obj.getClass()) {
659 return "BlackboardAttribute{" +
"artifactID=" + artifactID +
", attributeTypeID=" + attributeTypeID +
", moduleName=" + moduleName +
", context=" + context +
", valueType=" + valueType +
", valueInt=" + valueInt +
", valueLong=" + valueLong +
", valueDouble=" + valueDouble +
", valueString=" + valueString +
", valueBytes=" + valueBytes +
", Case=" + sleuthkitCase +
'}';
808 final protected static char[]
hexArray =
"0123456789ABCDEF".toCharArray();
811 char[] hexChars =
new char[bytes.length * 2];
812 for (
int j = 0; j < bytes.length; j++) {
813 int v = bytes[j] & 0xFF;
814 hexChars[j * 2] = hexArray[v >>> 4];
815 hexChars[j * 2 + 1] = hexArray[v & 0x0F];
817 return new String(hexChars);
BlackboardAttribute(int attributeTypeID, String moduleName, String context, byte[] valueBytes)
static ATTRIBUTE_TYPE fromLabel(String label)
void setCase(SleuthkitCase sleuthkitCase)
String getAttributeTypeDisplayName()
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE getValueType()
ATTRIBUTE_TYPE(int typeID, String label, String displayName)
void setArtifactID(long artifactID)
String getAttributeTypeName()
BlackboardAttribute(int attributeTypeID, String moduleName, String context, int valueInt)
static TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE fromType(long type)
BlackboardArtifact getBlackboardArtifact(long artifactID)
static String bytesToHexString(byte[] bytes)
BlackboardAttribute(int attributeTypeID, String moduleName, int valueInt)
BlackboardAttribute(int attributeTypeID, String moduleName, String valueString)
SleuthkitCase sleuthkitCase
String getDisplayString()
final static char[] hexArray
BlackboardAttribute(int attributeTypeID, String moduleName, double valueDouble)
static ResourceBundle bundle
boolean equals(Object obj)
String getAttrTypeDisplayName(int attrTypeID)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE valueType
BlackboardAttribute(int attributeTypeID, String moduleName, String context, double valueDouble)
TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE(long type, String label)
String getAttrTypeString(int attrTypeID)
BlackboardArtifact getParentArtifact()
BlackboardAttribute(int attributeTypeID, String moduleName, String context, long valueLong)
BlackboardAttribute(int attributeTypeID, String moduleName, String context, String valueString)
BlackboardAttribute(int attributeTypeID, String moduleName, long valueLong)
BlackboardAttribute(int attributeTypeID, String moduleName, byte[] valueBytes)