
FileInsight-plugins ist eine große Sammlung von Plugins für den McAfee FileInsight Hex-Editor.
Es erweitert den Editor um viele Funktionen wie Entschlüsselung, Dekompression, Suche nach XOR-verschlüsselten Textstrings, Scannen mit YARA-Regeln, Code-Emulation, Disassemblierung und mehr!
Es ist nützlich für verschiedene Arten von Decodierungsaufgaben in der Malware-Analyse (z.B. Extrahieren von Malware-Executables und Decoy-Dokumenten aus bösartigen Dokumentdateien).
Für diejenigen, die nach dem FileInsight-Installer suchen, ist er verfügbar unter https://downloadcenter.trellix.com/products/mcafee-avert/fileinsight.msi.
Screenshots
Dialog des Plugins "AES entschlüsseln"

Scanergebnis des Plugins "YARA-Scan"

Datenstruktur einer ELF-Executable, analysiert durch das Plugin "Dateistruktur parsen"

Emulations-Trace eines ARM64 Linux-Shellcodes, emuliert durch das Plugin "Code emulieren"

Disassemblierungsausgabe eines x86 Linux-Shellcodes, zerlegt durch das Plugin "Disassemblieren"

Bitmap-Darstellung einer Windows-Executable, visualisiert durch das Plugin "Bitmap-Ansicht"

Byte-Histogramm einer Excel-Datei, angezeigt durch das Plugin "Byte-Histogramm"

Entropie-Diagramm einer Windows-Executable, angezeigt durch das Plugin "Entropie-Diagramm"

Präsentationen
Black Hat USA 2021 Arsenal
CODE BLUE 2019 Bluebox
Anwendungsfälle
Installation
Bitte führen Sie den folgenden Befehl aus. Die neueste Release-Version von FileInsight-plugins und die Voraussetzungen einschließlich FileInsight und Python 3.12.x (x64) werden installiert.
powershell -exec bypass -command "IEX((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))"
Wenn Sie einen Proxyserver verwenden (z.B. IP-Adresse: 10.0.0.1, Port: 8080), führen Sie bitte die folgenden Befehle aus.
curl -x http://10.0.0.1:8080 -Lo install.ps1 https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1
powershell -exec bypass .\install.ps1
Es gibt einige Python-Module, die manuell installiert werden müssen. Bitte folgen Sie den von den Plugins angezeigten Installationsanweisungen.
Verwendung
Bitte klicken Sie im Tab "Plugins" auf "Operationen" und wählen Sie dann ein Plugin aus.
Sie können Plugins auch über das Rechtsklick-Kontextmenü verwenden.

Einige Plugins zeigen bei der Verwendung einen zusätzlichen Dialog für Plugineinstellungen an.

Aktualisierung
Wenn Sie FileInsight-plugins auf die neueste Release-Version aktualisieren möchten,
klicken Sie bitte auf "Nach Update suchen" im Plugin-Menü. Das PowerShell-Installationsskript
(https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1)
wird ausgeführt, wenn eine neue Version verfügbar ist.
Vorhandene Dateien werden überschrieben.

Sie können auch mit dem folgenden Befehl aktualisieren ("Nach Update suchen"
führt diesen Befehl aus).
powershell -exec bypass -command "& ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))) -update"
Wenn Sie einen Proxyserver verwenden (z.B. IP-Adresse: 10.0.0.1, Port: 8080), führen Sie bitte die folgenden Befehle aus.
curl -x http://10.0.0.1:8080 -Lo install.ps1 https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1
powershell -exec bypass .\install.ps1 -update
Wenn Sie FileInsight-plugins auf den neuesten Snapshot aktualisieren möchten,
fügen Sie bitte die Option "-snapshot" hinzu.
powershell -exec bypass -command "& ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))) -update -snapshot"
Anpassung
Für das Plugin "Senden an (CLI)" und das Plugin "Senden an (GUI)" können Sie Dateien mit Ihren bevorzugten Programmen öffnen.
Bitte klicken Sie im Plugin-Menü auf "Menü anpassen".

"plugins\Operations\Misc\send_to_cli.json" (für das Plugin "Senden an (CLI)") oder "plugins\Operations\Misc\send_to.json" (für das Plugin "Senden an (GUI)") wird mit Ihrem Standard-Texteditor geöffnet.
Bitte bearbeiten und speichern Sie es.

Ihre Anpassung wird in den Menüeinträgen widergespiegelt.

Liste der Plugins (155 Plugins)
Grundlegende Operationen
- In neue Datei kopieren
Kopiert den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt) in eine neue Datei
- Datei-Tabs wechseln
Wechselt Datei-Tabs mit einer Listenbox
- Lesezeichen setzen
Setzt ein Lesezeichen für den ausgewählten Bereich mit angegebenem Kommentar und Farbe
- Binärdaten in Zwischenablage ausschneiden
Schneidet Binärdaten des ausgewählten Bereichs als hex-kodierten Text in die Zwischenablage aus
- Binärdaten in Zwischenablage kopieren
Kopiert Binärdaten des ausgewählten Bereichs als hex-kodierten Text in die Zwischenablage
- Binärdaten aus Zwischenablage einfügen
Fügt Binärdaten (aus hex-kodiertem Text konvertiert) aus der Zwischenablage ein
- Vorheriges löschen
Löscht den gesamten Bereich vor der aktuellen Cursorposition
- Nachfolgendes löschen
Löscht den gesamten Bereich nach der aktuellen Cursorposition
- Füllen
Füllt den ausgewählten Bereich mit einem angegebenen Hex-Muster
- Invertieren
Invertiert die Bits des ausgewählten Bereichs
- Reihenfolge umkehren
Kehrt die Reihenfolge des ausgewählten Bereichs um
- Endianness ändern
Ändert die Endianness des ausgewählten Bereichs
- Nibbles tauschen
Vertauscht jedes Paar von Nibbles im ausgewählten Bereich
- Zwei Bytes tauschen
Vertauscht jedes Paar von Bytes im ausgewählten Bereich
- In Großbuchstaben umwandeln
Wandelt Text des ausgewählten Bereichs in Großbuchstaben um
- In Kleinbuchstaben umwandeln
Wandelt Text des ausgewählten Bereichs in Kleinbuchstaben um
- Groß-/Kleinschreibung umkehren
Kehrt die Groß-/Kleinschreibung des ausgewählten Bereichs um
Komprimierungsoperationen
Komprimieren
- aPLib
Komprimiert den ausgewählten Bereich mit der aPLib-Komprimierungsbibliothek
- Brotli
Komprimiert den ausgewählten Bereich mit dem Brotli-Algorithmus
- Bzip2
Komprimiert den ausgewählten Bereich mit dem bzip2-Algorithmus
- Gzip
Komprimiert den ausgewählten Bereich im gzip-Format
- LZ4
Komprimiert den ausgewählten Bereich mit dem LZ4-Algorithmus
- LZF
Komprimiert den ausgewählten Bereich mit dem LZF-Algorithmus
- LZFSE
Komprimiert den ausgewählten Bereich mit dem LZFSE-Algorithmus
- lzip
Komprimiert den ausgewählten Bereich im lzip-Format
- LZJB
Komprimiert den ausgewählten Bereich mit dem LZJB-Algorithmus
- LZMA
Komprimiert den ausgewählten Bereich mit dem LZMA-Algorithmus
- LZNT1
Komprimiert den ausgewählten Bereich mit dem LZNT1-Algorithmus
- LZO
Komprimiert den ausgewählten Bereich mit dem LZO-Algorithmus
- LZRW1/KH
Komprimiert den ausgewählten Bereich mit dem LZRW1/KH-Algorithmus
- PPMd
Komprimiert den ausgewählten Bereich mit dem PPMd-Algorithmus
- QuickLZ
Komprimiert den ausgewählten Bereich mit der QuickLZ-Komprimierungsbibliothek
- Raw Deflate
Komprimiert den ausgewählten Bereich mit dem Deflate-Algorithmus ohne Header und Prüfsumme (entspricht gzdeflate() in PHP)
- Snappy
Komprimiert den ausgewählten Bereich mit der Snappy-Komprimierungsbibliothek
- XZ
Komprimiert den ausgewählten Bereich im XZ-Format
- zlib (Deflate)
Komprimiert den ausgewählten Bereich mit zlib (Deflate-Algorithmus)
- Zstandard
Komprimiert den ausgewählten Bereich mit dem Zstandard-Algorithmus
Dekomprimieren
- aPLib
Dekomprimiert den ausgewählten Bereich mit der aPLib-Komprimierungsbibliothek
- Brotli
Dekomprimiert den ausgewählten Bereich mit dem Brotli-Algorithmus
- Bzip2
Dekomprimiert den ausgewählten Bereich mit dem bzip2-Algorithmus
- Gzip
Dekomprimiert den ausgewählten gzip-komprimierten Bereich
- LZ4
Dekomprimiert den ausgewählten Bereich mit dem LZ4-Algorithmus
- LZF
Dekomprimiert den ausgewählten Bereich mit dem LZF-Algorithmus
- LZFSE
Dekomprimiert den ausgewählten Bereich mit dem LZFSE-Algorithmus
- lzip
Dekomprimiert den ausgewählten lzip-komprimierten Bereich
- LZJB
Dekomprimiert den ausgewählten Bereich mit dem LZJB-Algorithmus
- LZMA
Dekomprimiert den ausgewählten Bereich mit dem LZMA-Algorithmus
- LZNT1
Dekomprimiert den ausgewählten Bereich mit dem LZNT1-Algorithmus
- LZO
Dekomprimiert den ausgewählten Bereich mit dem LZO-Algorithmus
- LZRW1/KH
Dekomprimiert den ausgewählten Bereich mit dem LZRW1/KH-Algorithmus
- PPMd
Dekomprimiert den ausgewählten Bereich mit dem PPMd-Algorithmus
- QuickLZ
Dekomprimiert den ausgewählten Bereich mit der QuickLZ-Komprimierungsbibliothek
- Raw Inflate
Dekomprimiert den ausgewählten, mit Deflate komprimierten Bereich ohne Header und Prüfsumme (entspricht gzinflate() in PHP)
- Snappy
Dekomprimiert den ausgewählten Bereich mit der Snappy-Komprimierungsbibliothek
- XZ
Dekomprimiert den ausgewählten XZ-komprimierten Bereich
- zlib (Inflate)
Dekomprimiert den ausgewählten Bereich mit zlib (Deflate-Algorithmus)
- Zstandard
Dekomprimiert den ausgewählten Bereich mit dem Zstandard-Algorithmus
Kryptografische Operationen
Entschlüsseln
- AES
Entschlüsselt den ausgewählten Bereich mit AES
- Blowfish
Entschlüsselt den ausgewählten Bereich mit Blowfish
- CAST-128
Entschlüsselt den ausgewählten Bereich mit CAST-128
- Camellia
Entschlüsselt den ausgewählten Bereich mit Camellia
- ChaCha20
Entschlüsselt den ausgewählten Bereich mit ChaCha20
- DES
Entschlüsselt den ausgewählten Bereich mit DES
- RC2
Entschlüsselt den ausgewählten Bereich mit RC2
- RC4
Entschlüsselt den ausgewählten Bereich mit RC4
- RC5
Entschlüsselt den ausgewählten Bereich mit RC5
- RC6
Entschlüsselt den ausgewählten Bereich mit RC6
- Salsa20
Entschlüsselt den ausgewählten Bereich mit Salsa20
- TEA
Entschlüsselt den ausgewählten Bereich mit TEA (Tiny Encryption Algorithm)
- Triple DES
Entschlüsselt den ausgewählten Bereich mit Triple DES
- XTEA
Entschlüsselt den ausgewählten Bereich mit XTEA (eXtended Tiny Encryption Algorithm)
- XXTEA
Entschlüsselt den ausgewählten Bereich mit XXTEA (Corrected Block Tiny Encryption Algorithm)
Verschlüsseln
- AES
Verschlüsselt den ausgewählten Bereich mit AES
- Blowfish
Verschlüsselt den ausgewählten Bereich mit Blowfish
- CAST-128
Verschlüsselt den ausgewählten Bereich mit CAST-128
- Camellia
Verschlüsselt den ausgewählten Bereich mit Camellia
- ChaCha20
Verschlüsselt den ausgewählten Bereich mit ChaCha20
- DES
Verschlüsselt den ausgewählten Bereich mit DES
- RC2
Verschlüsselt den ausgewählten Bereich mit RC2
- RC4
Verschlüsselt den ausgewählten Bereich mit RC4
- RC5
Verschlüsselt den ausgewählten Bereich mit RC5
- RC6
Verschlüsselt den ausgewählten Bereich mit RC6
- Salsa20
Verschlüsselt den ausgewählten Bereich mit Salsa20
- TEA
Verschlüsselt den ausgewählten Bereich mit TEA (Tiny Encryption Algorithm)
- Triple DES
Verschlüsselt den ausgewählten Bereich mit Triple DES
- XTEA
Verschlüsselt den ausgewählten Bereich mit XTEA (eXtended Tiny Encryption Algorithm)
- XXTEA
Entschlüsselt den ausgewählten Bereich mit XXTEA (Corrected Block Tiny Encryption Algorithm)
Kodierungsoperationen
Dekodieren
- Hex-Text in Binärdaten
Konvertiert Hex-Text des ausgewählten Bereichs in Binärdaten
- Dezimaltext in Binärdaten
Konvertiert Dezimaltext des ausgewählten Bereichs in Binärdaten
- Oktaltext in Binärdaten
Konvertiert Oktaltext des ausgewählten Bereichs in Binärdaten
- Binärtext in Binärdaten
Konvertiert Binärtext des ausgewählten Bereichs in Binärdaten
- Benutzerdefinierte Base16-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base16-Tabelle
- Benutzerdefinierte Base32-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base32-Tabelle
- Benutzerdefinierte Base58-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base58-Tabelle
- Benutzerdefinierte Base62-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base62-Tabelle
- Benutzerdefinierte Base64-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base64-Tabelle
- Benutzerdefinierte Base85-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base85-Tabelle
- Benutzerdefinierte Base91-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base91-Tabelle
- Benutzerdefinierte Base92-Dekodierung
Dekodiert den ausgewählten Bereich mit einer benutzerdefinierten Base92-Tabelle
- gob dekodieren
Dekodiert den ausgewählten Bereich als gob-serialisierte Daten (Serialisierungsformat für Golang) in Python-Notation
- MessagePack dekodieren
Dekodiert den ausgewählten Bereich als MessagePack-serialisierte Daten in JSON
- Protobuf dekodieren
Dekodiert den ausgewählten Bereich als Protocol-Buffers-serialisierte Daten in JSON ohne .proto-Dateien
- Aus quoted-printable
Dekodiert den ausgewählten Bereich als quoted-printable-Text
- Unicode-Unescape
Entfernt die Maskierung von Unicode-Escape-Sequenzen im ausgewählten Bereich
- URL-Dekodierung
Dekodiert den ausgewählten Bereich als Prozent-kodierten Text, der in URLs verwendet wird
Kodieren
- Binärdaten in Hex-Text
Konvertiert Binärdaten des ausgewählten Bereichs in Hex-Text
- Binärdaten in Dezimaltext
Konvertiert Binärdaten des ausgewählten Bereichs in Dezimaltext
- Binärdaten in Oktaltext
Konvertiert Binärdaten des ausgewählten Bereichs in Oktaltext
- Binärdaten in Binärtext
Konvertiert Binärdaten des ausgewählten Bereichs in Binärtext
- Benutzerdefinierte Base16-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base16-Tabelle
- Benutzerdefinierte Base32-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base32-Tabelle
- Benutzerdefinierte Base58-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base58-Tabelle
- Benutzerdefinierte Base62-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base62-Tabelle
- Benutzerdefinierte Base64-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base64-Tabelle
- Benutzerdefinierte Base85-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base85-Tabelle
- Benutzerdefinierte Base91-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base91-Tabelle
- Benutzerdefinierte Base92-Kodierung
Kodiert den ausgewählten Bereich mit einer benutzerdefinierten Base92-Tabelle
- MessagePack kodieren
Kodiert JSON des ausgewählten Bereichs in MessagePack-serialisierte Daten
- ROT13
Rotiert die Alphabetzeichen im ausgewählten Bereich um den angegebenen Betrag (Standard: 13)
- In quoted-printable
Kodiert den ausgewählten Bereich in quoted-printable-Text
- Unicode-Escape
Maskiert Unicode-Zeichen im ausgewählten Bereich
- URL-Kodierung
Kodiert den ausgewählten Bereich in Prozent-kodierten Text, der in URLs verwendet wird
Sonstige Operationen
- Code emulieren
Emuliert den ausgewählten Bereich als ausführbare Datei oder Shellcode (die gesamte Datei, falls nicht ausgewählt)
- Dateivergleich
Vergleicht den Inhalt zweier Dateien
- Hash-Werte
Berechnet CRC32, MD5, SHA1, SHA256, ssdeep, TLSH, imphash, impfuzzy, exphash, Rich-PE-Header-Hash, Authentihash, Icon-MD5, Icon-dhash, gimphash und telfhash des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt)
- Senden an (CLI)
Sendet den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt) an ein anderes CLI-Programm und gibt die Ausgabe zurück
- Senden an (GUI)
Sendet den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt) an ein anderes GUI-Programm
Analyseoperationen
- Binwalk-Scan
Scannt den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt), um eingebettete Dateien zu finden
- Disassemblieren
Disassembliert den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt)
- VBA-Makro extrahieren
Extrahiert Microsoft Office VBA-Makros aus dem ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt)
- Dateityp
Identifiziert den Dateityp des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt)
- PE-Datei finden
Findet PE-Dateien im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) basierend auf PE-Header-Informationen
- Dateistruktur parsen
Parst die Dateistruktur des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt) mit Kaitai Struct
Unterstützte Dateiformate: Gzip, RAR, ZIP, ELF, Mach-O, PE, MBR-Partitionstabelle, BMP, GIF, JPEG, PNG, Windows-Verknüpfung
- Metadaten anzeigen
Zeigt Metadaten des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt) mit ExifTool an
- Zeichenfolgen
Extrahiert Textstrings aus dem ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt)
- String-Typ
Identifiziert den Typ von Strings wie API-Schlüsseln und Kryptowährungs-Wallet-Adressen im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) mit lemmeknow
Suchoperationen
- Regex-Extraktion
Sucht mit regulärem Ausdruck im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) und extrahiert übereinstimmende Bereiche als einen einzigen verketteten Bereich
- Regex-Suche
Sucht mit regulärem Ausdruck im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) und setzt Lesezeichen für übereinstimmende Bereiche
- Ersetzen
Sucht mit regulärem Ausdruck im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) und ersetzt übereinstimmende Bereiche mit angegebenen Daten
- XOR-Hex-Suche
Sucht nach XOR-verarbeiteten/bitrotierten Daten im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt)
- XOR-Text-Suche
Sucht nach XOR-verarbeiteten/bitrotierten Strings im ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt)
- YARA-Scan
Scannt den ausgewählten Bereich (die gesamte Datei, falls nicht ausgewählt) mit YARA.
Visualisierungsoperationen
- Bitmap-Ansicht
Visualisiert die gesamte Datei als Bitmap-Darstellung
- Byte-Histogramm
Zeigt das Byte-Histogramm des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt) an
- Entropie-Diagramm
Zeigt das Entropie-Diagramm des ausgewählten Bereichs (der gesamten Datei, falls nicht ausgewählt) an
XOR-Operationen
- Einfaches XOR
XOR-verarbeitet den ausgewählten Bereich mit einem angegebenen XOR-Schlüssel
- Dekrementelles XOR
XOR-verarbeitet den ausgewählten Bereich, während der XOR-Schlüssel dekrementiert wird
- Inkrementelles XOR
XOR-verarbeitet den ausgewählten Bereich, während der XOR-Schlüssel inkrementiert wird
- Null-bewahrendes XOR
XOR-verarbeitet den ausgewählten Bereich, während Null-Bytes und der XOR-Schlüssel selbst übersprungen werden
- XOR mit einer anderen Datei
XOR-verarbeitet den ausgewählten Bereich mit dem Inhalt einer anderen Datei als XOR-Schlüssel
- XOR mit nächstem Byte
XOR-verarbeitet den ausgewählten Bereich, während das nächste Byte als XOR-Schlüssel verwendet wird
- XOR mit nächstem Byte (umgekehrt)
Umkehroperation des Plugins "XOR mit nächstem Byte"
- Mehrbyte-XOR-Schlüssel erraten
Erratet Mehrbyte-XOR-Schlüssel aus dem ausgewählten Bereich (der gesamten Datei, falls nicht ausgewählt) basierend auf offengelegten Schlüsseln, die mit 0x00 XOR-verarbeitet wurden
- Visual Encrypt
Kodiert den ausgewählten Bereich mit dem Visual-Encrypt-Algorithmus, der vom Zeus-Trojaner verwendet wird
- Visual Decrypt
Dekodiert den ausgewählten Bereich mit dem Visual-Decrypt-Algorithmus, der vom Zeus-Trojaner verwendet wird
Autor
Nobutaka Mantani (X: @nmantani)
Lizenz
Die BSD 2-Clause License (http://opensource.org/licenses/bsd-license.php)