mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
4961 add custom/windows-nt-registry MIME type and use it instead
This commit is contained in:
parent
3e53741237
commit
cc92182522
@ -52,6 +52,4 @@ interface FileTypeViewer {
|
||||
* fine. Otherwise, it is ambiguous.
|
||||
*/
|
||||
void resetComponent();
|
||||
|
||||
boolean isSupported(AbstractFile file);
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.contentviewers;
|
||||
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import java.awt.Component;
|
||||
import java.util.HashMap;
|
||||
@ -81,15 +82,11 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
*
|
||||
* @param mimeType
|
||||
*
|
||||
* @return FileTypeViewer, null if no known content viewer supports the
|
||||
* mimetype
|
||||
* @return FileTypeViewer, null if no known content viewer supports the mimetype
|
||||
*/
|
||||
private FileTypeViewer getSupportingViewer(AbstractFile file) {
|
||||
FileTypeViewer viewer = mimeTypeToViewerMap.get(file.getMIMEType());
|
||||
if (viewer == null || viewer.isSupported(file)) {
|
||||
return viewer;
|
||||
}
|
||||
return null;
|
||||
private FileTypeViewer getSupportingViewer(String mimeType) {
|
||||
|
||||
return mimeTypeToViewerMap.get(mimeType);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -107,6 +104,7 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
@Override
|
||||
public void setNode(Node selectedNode) {
|
||||
|
||||
@ -133,7 +131,11 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
}
|
||||
}
|
||||
|
||||
FileTypeViewer viewer = getSupportingViewer(file);
|
||||
if (mimeType.equalsIgnoreCase("application/octet-stream")) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
FileTypeViewer viewer = getSupportingViewer(mimeType);
|
||||
if (viewer != null) {
|
||||
lastViewer = viewer;
|
||||
|
||||
@ -142,6 +144,7 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
this.add(viewer.getComponent());
|
||||
this.repaint();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -201,7 +204,11 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
}
|
||||
}
|
||||
|
||||
return (getSupportingViewer(aFile) != null);
|
||||
if (mimeType.equalsIgnoreCase("application/octet-stream")) {
|
||||
return false;
|
||||
} else {
|
||||
return (getSupportingViewer(mimeType) != null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -221,9 +228,13 @@ public class FileViewer extends javax.swing.JPanel implements DataContentViewer
|
||||
}
|
||||
}
|
||||
|
||||
if (null != getSupportingViewer(file)) {
|
||||
if (mimeType.equalsIgnoreCase("application/octet-stream")) {
|
||||
return 0;
|
||||
} else {
|
||||
if (null != getSupportingViewer(mimeType)) {
|
||||
return CONFIDENCE_LEVEL;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -58,7 +58,8 @@ final class HtmlViewer extends javax.swing.JPanel implements FileTypeViewer {
|
||||
* @return The text content of the file.
|
||||
*/
|
||||
@NbBundle.Messages({
|
||||
"HtmlViewer_file_error=This file is missing or unreadable.",})
|
||||
"HtmlViewer_file_error=This file is missing or unreadable.",
|
||||
})
|
||||
private String getHtmlText(AbstractFile abstractFile) {
|
||||
try {
|
||||
int fileSize = (int) abstractFile.getSize();
|
||||
@ -127,9 +128,4 @@ final class HtmlViewer extends javax.swing.JPanel implements FileTypeViewer {
|
||||
public void resetComponent() {
|
||||
htmlPanel.reset();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupported(AbstractFile file) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -191,8 +191,4 @@ class MediaFileViewer extends javax.swing.JPanel implements FileTypeViewer {
|
||||
|
||||
boolean isSupported(AbstractFile file);
|
||||
}
|
||||
@Override
|
||||
public boolean isSupported(AbstractFile file){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -538,11 +538,6 @@ class PListViewer extends javax.swing.JPanel implements FileTypeViewer, Explorer
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupported(AbstractFile file){
|
||||
return true;
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton exportButton;
|
||||
private javax.swing.JPanel hdrPanel;
|
||||
|
@ -617,9 +617,4 @@ class SQLiteViewer extends javax.swing.JPanel implements FileTypeViewer {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupported(AbstractFile file) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -42,17 +42,15 @@ class WindowsRegistryViewer extends JPanel implements FileTypeViewer {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private static final Logger logger = Logger.getLogger(WindowsRegistryViewer.class.getName());
|
||||
private static final String[] SUPPORTED_MIMETYPES = new String[]{"application/octet-stream"};
|
||||
private static final String[] SUPPORTED_MIMETYPES = new String[]{"custom/windows-nt-registry"};
|
||||
private RejView regview;
|
||||
private AbstractFile lastFile;
|
||||
|
||||
WindowsRegistryViewer() {
|
||||
super(new BorderLayout());
|
||||
System.out.println("CREATED REGISTRY VIEWER");
|
||||
}
|
||||
|
||||
private void setDataView(Content content) {
|
||||
System.out.println("setDataview called");
|
||||
if (content == null) {
|
||||
this.resetComponent();
|
||||
return;
|
||||
@ -60,7 +58,7 @@ class WindowsRegistryViewer extends JPanel implements FileTypeViewer {
|
||||
|
||||
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||
|
||||
if (content.getSize() == 0) {
|
||||
if (content.getSize() <= 1024) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -82,27 +80,24 @@ class WindowsRegistryViewer extends JPanel implements FileTypeViewer {
|
||||
|
||||
@Override
|
||||
public Component getComponent() {
|
||||
System.out.println("component GOTTEN");
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetComponent() {
|
||||
System.out.println("RESETING COMP");
|
||||
// cleanup anything
|
||||
if (this.regview != null) {
|
||||
this.remove(this.regview);
|
||||
this.regview = null;
|
||||
}
|
||||
lastFile = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSupported(AbstractFile file) {
|
||||
System.out.println("IS THIS SUPPORTED?");
|
||||
private boolean isSupported(AbstractFile file) {
|
||||
if (file == null) {
|
||||
return false;
|
||||
}
|
||||
if (file.getSize() == 0) {
|
||||
if (file.getSize() <= 1024) {
|
||||
return false;
|
||||
}
|
||||
byte[] header = new byte[0x4000];
|
||||
@ -117,23 +112,19 @@ class WindowsRegistryViewer extends JPanel implements FileTypeViewer {
|
||||
RegistryHive hive = new RegistryHiveBuffer(buf);
|
||||
try {
|
||||
hive.getHeader();
|
||||
System.out.println("is supported " + file.getName());
|
||||
return true;
|
||||
} catch (RegistryParseException ex) {
|
||||
System.out.println("not supported "+ file.getName());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSupportedMIMETypes() {
|
||||
System.out.println("GET SUPPORTED MIME TYPES");
|
||||
return Arrays.asList(SUPPORTED_MIMETYPES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFile(AbstractFile file) {
|
||||
System.out.println("SET THE FILE");
|
||||
if (file == null) {
|
||||
resetComponent();
|
||||
return;
|
||||
|
@ -216,14 +216,17 @@ final class CustomFileTypesManager {
|
||||
fileType = new FileType("image/x-pict", signatureList); //NON-NLS
|
||||
autopsyDefinedFileTypes.add(fileType);
|
||||
|
||||
/* NOTE: see JIRA-4269. This MIME type seems to match a lot of random file types,
|
||||
including ZIP archives. As a result those files get assigned this MIME type instead
|
||||
of having their MIME type detected by Tika.
|
||||
byteArray = DatatypeConverter.parseHexBinary("1100"); //NON-NLS
|
||||
signatureList.clear();
|
||||
signatureList.add(new Signature(byteArray, 522L));
|
||||
fileType = new FileType("image/x-pict", signatureList); //NON-NLS
|
||||
autopsyDefinedFileTypes.add(fileType);*/
|
||||
/*
|
||||
* NOTE: see JIRA-4269. This MIME type seems to match a lot of
|
||||
* random file types, including ZIP archives. As a result those
|
||||
* files get assigned this MIME type instead of having their MIME
|
||||
* type detected by Tika. byteArray =
|
||||
* DatatypeConverter.parseHexBinary("1100"); //NON-NLS
|
||||
* signatureList.clear(); signatureList.add(new Signature(byteArray,
|
||||
* 522L)); fileType = new FileType("image/x-pict", signatureList);
|
||||
* //NON-NLS
|
||||
autopsyDefinedFileTypes.add(fileType);
|
||||
*/
|
||||
|
||||
/*
|
||||
* Add type for pam.
|
||||
@ -305,7 +308,8 @@ final class CustomFileTypesManager {
|
||||
autopsyDefinedFileTypes.add(fileType);
|
||||
|
||||
/*
|
||||
* Add type for .tec files with leading End Of Image marker (JFIF JPEG)
|
||||
* Add type for .tec files with leading End Of Image marker (JFIF
|
||||
* JPEG)
|
||||
*/
|
||||
byteArray = DatatypeConverter.parseHexBinary("FFD9FFD8"); //NON-NLS
|
||||
signatureList.clear();
|
||||
@ -313,6 +317,16 @@ final class CustomFileTypesManager {
|
||||
fileType = new FileType("image/jpeg", signatureList); //NON-NLS
|
||||
autopsyDefinedFileTypes.add(fileType);
|
||||
|
||||
/*
|
||||
* Add type for Windows NT registry files with leading End Of Image marker (JFIF
|
||||
* JPEG)
|
||||
*/
|
||||
byteArray = DatatypeConverter.parseHexBinary("72656766"); //NON-NLS
|
||||
signatureList.clear();
|
||||
signatureList.add(new Signature(byteArray, 0L));
|
||||
fileType = new FileType("custom/windows-nt-registry", signatureList); //NON-NLS
|
||||
autopsyDefinedFileTypes.add(fileType);
|
||||
|
||||
} catch (IllegalArgumentException ex) {
|
||||
/*
|
||||
* parseHexBinary() throws this if the argument passed in is not hex
|
||||
|
Loading…
x
Reference in New Issue
Block a user