Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
stringsifter — Ein Machine-Learning-Tool, das Strings basierend auf ihrer Relevanz für die Malware-Analyse einordnet. | Kitploit
Tools/GitHubGitHub/mandiant/stringsifter
Reverse EngineeringMalware-AnalyseBinäranalyseMaschinelles Lernen
GitHubmandiant/stringsifter

stringsifter

Ein Machine-Learning-Tool, das Strings basierend auf ihrer Relevanz für die Malware-Analyse einordnet.

Repository anzeigen
761126vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

StringSifter ist ein maschinelles Lernwerkzeug, das Zeichenketten automatisch nach ihrer Relevanz für die Malware-Analyse einstuft.

Quick Links

  • Technischer Blogbeitrag - Learning to Rank Strings Output for Speedier Malware Analysis
  • Ankündigungs-Blogbeitrag - Open Sourcing StringSifter
  • DerbyCon-Vortrag - StringSifter: Learning to Rank Strings Output for Speedier Malware Analysis
  • StringSifter-Versionen auf PyPi

Verwendung

StringSifter erfordert Python Version 3.9 oder neuer. Führen Sie die folgenden Befehle aus, um den Code zu erhalten, Unit-Tests auszuführen und das Werkzeug zu nutzen:

Installation

root@kitploit:~
pip install stringsifter

Für die Entwicklung verwenden Sie poetry:

root@kitploit:~
git clone https://github.com/mandiant/stringsifter.git
cd stringsifter
poetry install --with dev

Ausführen der Unit-Tests

Um die Unit-Tests aus dem StringSifter-Installationsverzeichnis auszuführen:

root@kitploit:~
poetry run tests -v

Ausführen über die Befehlszeile

Der Befehl pip install installiert zwei ausführbare Skripte, flarestrings und rank_strings, in Ihre Python-Umgebung. Bei der Entwicklung aus dem Quellcode verwenden Sie pipenv run flarestrings und pipenv run rank_strings.

flarestrings ahmt Funktionen von strings aus GNU binutils nach, und rank_strings akzeptiert per Pipe übergebene Eingaben, zum Beispiel:

root@kitploit:~
flarestrings <my_sample> | rank_strings

rank_strings unterstützt eine Reihe von Befehlszeilenargumenten. Das Positionsargument input_strings gibt eine Datei mit einzustufenden Zeichenketten an. Die optionalen Argumente sind:

Eingestufte Zeichenketten werden auf die Standardausgabe geschrieben, sofern nicht die Option --batch angegeben wird; in diesem Fall werden die eingestuften Ausgaben in Dateien mit dem Namen <input_file>.ranked_strings geschrieben.

flarestrings unterstützt die Option -n (bzw. --min-len), um Zeichenfolgen auszugeben, die mindestens min-len Zeichen lang sind, statt der standardmäßigen 4. Zum Beispiel:

root@kitploit:~
flarestrings -n 8 <my_sample> | rank_strings

gibt nur Zeichenketten der Länge 8 oder mehr aus und stuft diese ein.

Ausführen in einem Docker-Container

  • Nach dem Klonen des Repos den Container bauen. Aus dem obersten Verzeichnis des Pakets:
root@kitploit:~
docker build -t stringsifter -f docker/Dockerfile .
  • Den Container mit dem Argument flarestrings oder rank_strings ausführen, um den jeweiligen Befehl zu verwenden. Die containerisierten Befehle können in Pipelines verwendet werden:
root@kitploit:~
cat <my_sample> | docker run -i stringsifter flarestrings | docker run -i stringsifter rank_strings
  • Oder den Container ohne Argumente ausführen, um eine Shell-Eingabeaufforderung zu erhalten, wobei die Flag -v verwendet wird, um ein Host-Verzeichnis für den Container verfügbar zu machen:
root@kitploit:~
docker run -v <my_malware>:/samples -it stringsifter

wobei <my_malware> die zu analysierenden Proben enthält, zum Beispiel:

root@kitploit:~
docker run -v $HOME/malware/binaries:/samples -it stringsifter
  • An der Container-Eingabeaufforderung:
root@kitploit:~
flarestrings /samples/<my_sample> | rank_strings <options>

Alle Befehlszeilenargumente werden in den containerisierten Skripten unterstützt.

Ausführen mit FLOSS-Ausgabe

StringSifter kann auf beliebige Listen von Zeichenketten angewendet werden, was es für Praktiker nützlich macht, die Erkenntnisse aus alternativen Informationsquellen wie Live-Speicherauszügen, Sandbox-Läufen oder Binärdateien mit verschleierten Zeichenketten gewinnen möchten. Beispielsweise extrahiert der FireEye Labs Obfuscated Strings Solver (FLOSS) druckbare Zeichenketten wie Strings, zeigt aber zusätzlich verschleierte Zeichenketten, die codiert, gepackt oder manuell auf dem Stack konstruiert wurden. Es kann als direkter Ersatz für Strings verwendet werden, was bedeutet, dass StringSifter auf ähnliche Weise mit FLOSS-Ausgabe über den folgenden Befehl aufgerufen werden kann:

root@kitploit:~
$PY2_VENV/bin/floss –q <options> <my_sample> | rank_strings <options>

Hinweise:

  1. Das Argument –q unterdrückt Kopfzeilen und Formatierungen, sodass nur extrahierte Zeichenketten angezeigt werden. Weitere Informationen zu zusätzlichen FLOSS-Optionen finden Sie in der Dokumentation zur Verwendung.
  2. FLOSS erfordert Python 2, während StringSifter Python 3 erfordert. Im Beispielbefehl muss mindestens eines von floss oder rank_strings einen relativen Pfad enthalten, der auf eine Python-Virtualenv verweist.
  3. FLOSS kann als eigenständige ausführbare Datei heruntergeladen werden. In diesem Fall ist es nicht erforderlich, eine Python-Umgebung anzugeben, da die ausführbare Datei nicht auf einen Python-Interpreter angewiesen ist.

Hinweise zur Ausführung von strings

Diese Distribution enthält das Programm flarestrings, um eine vorhersagbare Ausgabe über verschiedene Plattformen hinweg zu gewährleisten. Wenn Sie sich dafür entscheiden, das auf Ihrem System installierte strings auszuführen, beachten Sie, dass dessen Optionen nicht über Versionen und Plattformen hinweg konsistent sind:

Linux

Die meisten Linux-Distributionen enthalten das Programm strings aus GNU Binutils. Um sowohl "weite" als auch "schmale" Zeichenketten zu extrahieren, muss das Programm zweimal ausgeführt werden, wobei die Ausgabe in eine Datei umgeleitet wird:

root@kitploit:~
strings <my_sample>       > strs.txt   # schmale Zeichenketten
strings -el <my_sample>  >> strs.txt   # weite Zeichenketten. beachten Sie das ">>"

MacOS

Einige Versionen von BSD strings, die mit MacOS ausgeliefert werden, unterstützen keine weiten Zeichenketten. Beachten Sie außerdem, dass die Option -a zum Scannen der gesamten Datei in der Standardkonfiguration deaktiviert sein kann. Ohne -a können informative Zeichenketten verloren gehen. Wir empfehlen, GNU Binutils über Homebrew oder MacPorts zu installieren, um eine Version von strings zu erhalten, die weite Zeichen unterstützt. Achten Sie darauf, die korrekte Version von strings aufzurufen.

Windows

strings ist unter Windows standardmäßig nicht installiert. Wir empfehlen die Installation von Windows Sysinternals, Cygwin oder Malcode Analyst Pack, um ein funktionierendes strings zu erhalten.

Diskussion

Diese Version von StringSifter wurde mit Strings-Ausgaben von Beispiel-Malware-Binärdateien trainiert, die mit dem ersten EMBER-Datensatz verknüpft sind. Ordinale Labels wurden mithilfe von Verfahren der schwachen Überwachung erzeugt, und das überwachte Lernen erfolgt durch Gradient Boosted Decision Trees mit einer Learning-to-Rank-Zielfunktion. Weitere technische Details finden Sie unter Quick Links. Bitte beachten Sie, dass derzeit weder gelabelte Daten noch Trainingscode verfügbar sind, auch wenn wir diesen Ansatz in zukünftigen Versionen möglicherweise überdenken.

Probleme

Wir verwenden GitHub Issues zum Melden von Fehlern und Feature-Wünschen.

Danksagungen

  • Dank an die Teams FireEye Data Science (FDS) und FireEye Labs Reverse Engineering (FLARE) für Review und Feedback.
  • StringSifter wurde entworfen und entwickelt von Philip Tully (FDS), Matthew Haigh (FLARE), Jay Gibble (FLARE) und Michael Sikorski (FLARE).
  • Das StringSifter-Logo wurde von Josh Langner (FLARE) entworfen.
  • flarestrings ist von dem hervorragenden Werkzeug FLOSS abgeleitet.
Tool herunterladen
OptionBedeutung
--scores (-s)Rangbewertungen in die Ausgabe aufnehmen
--limit (-l)Ausgabe auf die obersten limit eingestuften Zeichenketten begrenzen
--min-score (-m)Ausgabe auf Zeichenketten mit Bewertung >= min-score begrenzen
--batch (-b)Einen Ordner mit strings-Ausgaben für die Stapelverarbeitung angeben