mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-16 09:47:42 +00:00
Farther in process
This commit is contained in:
parent
c43fa27c7d
commit
e5739f44af
@ -544,7 +544,7 @@ class ReportGenerator {
|
|||||||
* artifact-specific logic in both getArtifactTableCoumnHeaders
|
* artifact-specific logic in both getArtifactTableCoumnHeaders
|
||||||
* and ArtifactData.getRow()
|
* and ArtifactData.getRow()
|
||||||
*/
|
*/
|
||||||
List<String> columnHeaders = getArtifactTableColumnHeaders(type.getTypeID());
|
List<Cell> columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet);
|
||||||
if (columnHeaders == null) {
|
if (columnHeaders == null) {
|
||||||
// @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed.
|
// @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed.
|
||||||
continue;
|
continue;
|
||||||
@ -1217,58 +1217,85 @@ class ReportGenerator {
|
|||||||
* reporting on.
|
* reporting on.
|
||||||
*
|
*
|
||||||
* @param artifactTypeId artifact type ID
|
* @param artifactTypeId artifact type ID
|
||||||
|
* @param types The set of types available for this artifact type
|
||||||
*
|
*
|
||||||
* @return List<String> row titles
|
* @return List<String> row titles
|
||||||
*/
|
*/
|
||||||
private List<String> getArtifactTableColumnHeaders(int artifactTypeId) {
|
private List<Cell> getArtifactTableColumnHeaders(int artifactTypeId, Set<BlackboardAttribute.Type> types) {
|
||||||
ArrayList<String> columnHeaders;
|
ArrayList<Cell> columnHeaders;
|
||||||
|
|
||||||
BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId);
|
BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TSK_WEB_BOOKMARK:
|
case TSK_WEB_BOOKMARK:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
||||||
|
new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(),
|
||||||
|
ATTRIBUTE_TYPE.TSK_URL.getLabel(),
|
||||||
|
ATTRIBUTE_TYPE.TSK_URL.getDisplayName(),
|
||||||
|
ATTRIBUTE_TYPE.TSK_URL.getValueType())),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_TITLE
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME_CREATED
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PROG_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
case TSK_WEB_COOKIE:
|
case TSK_WEB_COOKIE:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
||||||
|
//ATTRIBUTE_TYPE.TSK_URL
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_VALUE
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PROG_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
case TSK_WEB_HISTORY:
|
case TSK_WEB_HISTORY:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
||||||
|
//ATTRIBUTE_TYPE.TSK_URL
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_REFERRER
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_TITLE
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PROG_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_URL_DECODED
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
case TSK_WEB_DOWNLOAD:
|
case TSK_WEB_DOWNLOAD:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PATH
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_URL
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PROG_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
case TSK_RECENT_OBJECT:
|
case TSK_RECENT_OBJECT:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PATH
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
case TSK_INSTALLED_PROG:
|
case TSK_INSTALLED_PROG:
|
||||||
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
|
||||||
|
//ATTRIBUTE_TYPE.TSK_PROG_NAME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"),
|
||||||
|
//ATTRIBUTE_TYPE.TSK_DATETIME
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"),
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"),
|
||||||
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
|
||||||
break;
|
break;
|
||||||
@ -1966,7 +1993,14 @@ class ReportGenerator {
|
|||||||
return uniqueTagNames;
|
return uniqueTagNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ArtifactCell {
|
private interface Cell {
|
||||||
|
|
||||||
|
String getColumnHeader();
|
||||||
|
|
||||||
|
BlackboardAttribute.Type getType();
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ArtifactCell implements Cell {
|
||||||
|
|
||||||
private String columnHeader;
|
private String columnHeader;
|
||||||
private BlackboardAttribute.Type attributeType;
|
private BlackboardAttribute.Type attributeType;
|
||||||
@ -1981,5 +2015,34 @@ class ReportGenerator {
|
|||||||
this.columnHeader = Objects.requireNonNull(columnHeader);
|
this.columnHeader = Objects.requireNonNull(columnHeader);
|
||||||
this.attributeType = attributeType;
|
this.attributeType = attributeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnHeader() {
|
||||||
|
return this.columnHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type getType() {
|
||||||
|
return this.attributeType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class OtherCell implements Cell {
|
||||||
|
|
||||||
|
private String columnHeader;
|
||||||
|
|
||||||
|
OtherCell(String columnHeader) {
|
||||||
|
this.columnHeader = columnHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getColumnHeader() {
|
||||||
|
return this.columnHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type getType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user