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
sharem — SHAREM ist ein Framework zur Analyse von Shellcode, das mehr als 45.000 WinAPIs und praktisch alle Windows-Syscalls emulieren kann. Es enthält außerdem einen eigenen, individuell entwickelten Disassembler mit vielen innovativen Funktionen, wie der Möglichkeit, die deobfuskierte Disassemblierung eines codierten Shellcodes anzuzeigen oder Emulationsdaten zu integrieren, um die Disassemblierung zu verbessern. | Kitploit
Tools/GitHubGitHub/bw3ll/sharem
Dynamische Analyse (Sandboxing)Reverse EngineeringShellcodeDebuggerFuzzingMalware-AnalyseBinäranalyseKI-Sicherheit
GitHubbw3ll/sharem

sharem

Repository anzeigen
49168vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

SHAREM ist ein Framework zur Analyse von Shellcode, das mehr als 45.000 WinAPIs und praktisch alle Windows-Syscalls emulieren kann. Es enthält außerdem einen eigenen, individuell entwickelten Disassembler mit vielen innovativen Funktionen, wie der Möglichkeit, die deobfuskierte Disassemblierung eines codierten Shellcodes anzuzeigen oder Emulationsdaten zu integrieren, um die Disassemblierung zu verbessern.

Teilen

SHAREM

Willkommen bei SHAREM!

SHAREM wurde auf der DEFCON 31 in „Game-Changing Advances in Windows Shellcode Analysis" und im Black Hat USA Arsenal vorgestellt. Ein begleitendes Ghidra-Plugin wurde (separat) von Trellix, mit freundlicher Genehmigung von Max Kersten, zur Verfügung gestellt. So können Sie die Leistungsfähigkeit von SHAREM auf Ghidra ausweiten, falls gewünscht.

SHAREM ist als das ultimative Windows-Shellcode-Tool konzipiert, mit Unterstützung zur Emulation von über 45.000 WinAPIs, praktisch allen User-Mode-Windows-Syscalls, und SHAREM bietet zahlreiche neue Funktionen. SHAREM enthält einen Emulator, einen Disassembler, zeitloses Debugging, Brute-Force-Deobfuskation und viele weitere Funktionen. Der Emulator von SHAREM kann auch vollständige Strukturen (oder sogar Strukturen innerhalb von Strukturen) anzeigen und ermöglicht es, dass codierter Shellcode sich selbst deobfuskiert. SHAREM protokolliert die Ausgabe aller analysierten WinAPIs und Windows-Syscalls und unterteilt sie zudem in viele Kategorien und Unterkategorien. Die vollständige Codeabdeckung von SHAREM ermöglicht es auch, unerreichbare Funktionalitäten zu entdecken.

Der Disassembler von SHAREM kann entdeckte Funktionen in die Disassemblierung integrieren und jede im Disassembler kennzeichnen. SHAREM zeigt zudem die entschlüsselte Form von codiertem Shellcode im Disassembler an, sodass ein Debuggen des Shellcodes nicht erforderlich ist.

Wir haben ein SHAREM-Wiki erstellt, das einige Anleitungen zur Verwendung von SHAREM bietet, obwohl derzeit erhebliche Teile und Funktionen nicht dokumentiert sind. SHAREM wurde über einen Zeitraum von zwei Jahren von mehreren Personen entwickelt. Der Disassembler von SHAREM ist deutlich genauer als führende Disassembler. Darüber hinaus kann SHAREM Emulationsdaten in den Disassembler integrieren, was eine nahezu fehlerfreie Disassemblierung ermöglicht.

Bitte beachten Sie, dass die Dokumentation hier etwas spärlich ist, da SHAREM gerade erst veröffentlicht wurde. Wir werden das GitHub in den kommenden Wochen mit weiteren Informationen aktualisieren.

Wenn Sie neu bei SHAREM sind, sehen Sie sich gerne ein kurzes Demovideo an, das einige seiner Fähigkeiten zeigt. Klicken Sie auf das Bild, um die Demo anzusehen: Watch the video

Aktuelle Updates

März 2026: SHAREM wird beim Start bis zu 61 DLLs laden, aber mit dem neuesten Update kann es jetzt 369 DLLs und 45538 eindeutige WinAPIs unterstützen. Darüber hinaus werden DLLs bei Bedarf geladen. Windows-interne Funktionen (wie Modullisten, Flinks, Blinks usw.) werden automatisch aktualisiert, wenn zusätzliche DLLs geladen werden müssen, z. B. über LoadLibraryA. Es gab zahlreiche weitere Aktualisierungen zur Verbesserung der Funktionalität. Es wurden Änderungen vorgenommen, um einige Probleme zu beheben, die mir bezüglich Installationsherausforderungen gemeldet wurden.

  1. März 2026: Die Logik zum Verlassen von Schleifen wurde mit mehr Nuancen verfeinert. Ein Großteil davon wurde neu geschrieben und erneut getestet. Wir empfehlen im Allgemeinen nicht, die Standardeinstellung in der config.cfg zu ändern, falls Sie diese Funktion nutzen möchten.

2024/2025: SHAREM kann optional KI zur Analyse von Ergebnissen nutzen, mit einem OpenAI-Schlüssel (vom Benutzer bereitgestellt). Beachten Sie, dass SHAREM vor den jüngsten Fortschritten in der KI entwickelt wurde und die Nutzung von KI erst nach Abschluss der anfänglichen Analyse durch SHAREM erfolgt. Diese optionale Funktion ermöglicht es, das Gefundene zu untersuchen und auf das MITRE ATT&CK-Framework und vieles mehr anzuwenden.

Installationsanleitung

Windows

SHAREM wird als lokales Python-Paket installiert, sodass wir in anderen Projekten darauf zugreifen können. Dies ermöglicht das Importieren von Teilen von SHAREM. Daher muss es als Paket installiert werden. Hinweis: Mir wurde von einigen Installationsproblemen berichtet. Aktuelle Änderungen sollten dieses Problem hoffentlich beheben.

  1. Git wird für die Installation von sharem benötigt. Es kann von https://git-scm.com/download/win installiert werden. Nach der Installation starten Sie den Computer neu und fahren Sie mit der SHAREM-Installation fort. Git dient zur Automatisierung der Installation des Windows-SSDeep. Sie können dies auch manuell tun und die .bat-Datei ändern, um SSDeep auszuschließen, wenn Sie es selbst erledigen. Die manuelle Installation vermeidet die Notwendigkeit von Git. Hinweis: Für Windows wechseln wir zu einem Fork von SSDeep auf dem Bw3ll-Konto, der einige Installationsprobleme mit der vorherigen Version behebt. Diese Version und die vorherige waren Wrapper für SSDeep.

  2. Führen Sie die .bat-Datei aus. Sie ruft die setup.py-Datei auf. Abhängig davon, wie Sie Python aufrufen, müssen Sie möglicherweise die alternative .bat-Datei aufrufen oder sie leicht modifizieren, falls Sie etwas Nicht-Standardmäßiges verwenden.

  3. Führen Sie py -m pip list oder python3 -m pip list aus, um zu überprüfen, dass SHAREM lokal als Paket installiert ist. Es muss als Paket installiert sein, damit es funktioniert. Was passiert, wenn Sie es NICHT sehen? Dann ist es NICHT als Paket installiert, und SHAREM wird NICHT funktionieren. Stellen Sie sicher, dass Sie die .bat-Datei(en) verwenden und dies in der Windows-Eingabeaufforderung aus dem Installationsverzeichnis tun. Wenn es nicht funktioniert, suchen Sie nach Fehlermeldungen. Falls welche vorhanden sind, versuchen Sie, sie zu korrigieren. Sie können es ein paar Mal versuchen. Wenn das immer noch nicht funktioniert, öffnen Sie ein Issue und versuchen Sie, all diese Informationen beizufügen, damit wir versuchen können, das Problem zu lösen. Normalerweise ist dies nicht erforderlich, aber gelegentlich kann es vorkommen. Wenn Sie es bereits deinstalliert haben und sich entscheiden, es erneut zu installieren, müssen Sie möglicherweise das Installationsskript erneut ausführen. Sobald Sie sharem sehen, wenn Sie py -m pip list ausführen, wissen Sie, dass es korrekt als lokales Paket installiert ist.

Nachdem SHAREM installiert ist, möchten Sie beim ersten Ausführen eines Shellcodes im Verzeichnis sharem_cli sein. Zum Beispiel könnten Sie in diesem Verzeichnis py main.py -r32 shellcode.bin ausführen. Kein Shellcode? Das ist in Ordnung, Sie finden einige Beispiele im Repository für Shellcode-Beispiele, das ich in einem separaten Repository hoste.

Hinweis: Beim ersten Versuch, einen Shellcode auf Windows zu emulieren, wird versucht, Windows-DLLs zu ernten und aufzublähen. Dieser Prozess beginnt automatisch beim ersten Emulationsversuch eines Shellcodes. Es kopiert sie und verschiebt die kopierten (und später aufgeblähten) DLLs in ein SHAREM-Verzeichnis. Es gibt zusätzliche Schritte, aber dieser gesamte anfängliche Prozess kann mehrere Minuten oder sogar 10-15 Minuten dauern, wenn eine sehr alte CPU verwendet wird. Nach Abschluss müssen Sie dies nicht erneut tun. Dies muss separat sowohl für 32- als auch für 64-Bit-Shellcode durchgeführt werden. Sie können in sharem/sharem/sharem/sharem/DLLs/x86 navigieren – und sollten sehen, wie nach und nach DLLs erscheinen. Diese werden vom Betriebssystem übernommen, modifiziert, um zu emulieren, was das Betriebssystem mit ihnen tun würde, und in diesem Verzeichnis gespeichert. Es werden etwas über 60 sein. Wenn Sie etwa diese Anzahl von DLLs sehen und keine weiteren DLLs gespeichert werden, bedeutet dies, dass es wahrscheinlich nur hängt. Drücken Sie einfach erneut die Eingabetaste. Wenn das fehlschlägt, starten Sie einfach neu und versuchen Sie es erneut mit der Emulation. Sobald die DLLs gespeichert sind, sollten Sie dies nicht erneut tun müssen; nur beim ersten Mal kann es je nach CPU-Geschwindigkeit Zeit in Anspruch nehmen. Sie sollten Emulationsergebnisse sehen, wenn der Vorgang abgeschlossen ist, wie die Aufzählung verschiedener WinAPIs oder Windows-Syscalls.

Wenn die Datei auf .txt endet, wird angenommen, dass der Shellcode eine ASCII-Darstellung von HEX ist (anstelle von reinem Hexadezimal), und er wird entsprechend interpretiert. Dies funktioniert mit etwas, das online gefunden wurde. Wenn Sie eine ASCII-Darstellung des Hexadezimals verwenden, ist es erforderlich, dass der Dateiname auf .txt endet.

Linux

  1. chmod +x linux_installer.sh Ausführung des Installationsprogramms aktivieren
  2. sudo ./linux_installer.sh Installationsprogramm ausführen
  3. DLL-Dateien hinzufügen

Sie müssen die Windows-DLL-Dateien hinzufügen. Wir stellen diese derzeit nicht als separaten Download für Linux-Benutzer zur Verfügung. Derzeit müssten Benutzer sie ernten, indem sie SHAREM unter Windows installieren. (Hinweis: Diese DLLs MÜSSEN von SHAREM aufgebläht werden. DLLs können nicht verwendet werden, wenn sie nicht aufgebläht sind. Die meisten, wenn auch nicht alle, werden fehlschlagen, wenn sie nicht richtig aufgebläht werden.) Später werden wir diese möglicherweise in den kommenden Wochen als separaten Download bereitstellen. In der Zwischenzeit kann der Benutzer die Windows-Schritte befolgen, um sie zu generieren und nach Linux zu verschieben, indem er sie in sharem\sharem\sharem\DLLs\x64 und sharem\sharem\sharem\DLLs\x86 platziert. Sie benötigen auch die foundDLLAddresses32.json und FoundDLLAddresses64.json, die in sharem\sharem\sharem abgelegt werden sollten.

OpenAI

SHAREM hat 2024 Unterstützung für OpenAI hinzugefügt, sodass wir KI nutzen können, um einige Analyseaufgaben zu automatisieren. Dies kann über A im Hauptmenü aktiviert werden – „KI nutzen". Dazu müssen Sie einen OpenAI-Schlüssel haben und diesen in der config.cfg-Datei ablegen, die sich unter sharem/sharem/sharem/sharem/config.cfg befindet. Darüber hinaus müssen Sie einen Shellcode emulieren, bevor Sie die KI nutzen können. Derzeit ist dies die einzige Möglichkeit, die KI zu verwenden – sie funktioniert nicht im Headless-Modus – aber falls jemand dies benötigt, öffnen Sie bitte ein Issue, und ich werde Unterstützung dafür hinzufügen, als weitere Option, die über die Konfiguration gewählt werden kann. Wenn Sie SHAREM bereits installiert haben und die aktualisierte Version erhalten, möchten Sie OpenAI vielleicht einfach manuell installieren, z. B. pip install openai. Ich habe es auch zu den Anforderungen für die setup.py-Datei hinzugefügt, die beim Ausführen der anfänglichen Installationsskripte aktiviert wird.

Ghidra-Skript

Max Kerstens hervorragendes Ghidra-Skript, das auf der Black Hat und DEFCON im August 2023 gezeigt wurde, finden Sie hier: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Einige Anweisungen von Max finden Sie hier: https://github.com/advanced-threat-research/GhidraScripts/ Dieses Ghidra-Plugin wird mit freundlicher Genehmigung von Trellix bereitgestellt! Sie müssen weiterhin SHAREM verwenden. Es nimmt die von SHAREM erzeugte JSON-Ausgabe auf und konvertiert sie in ein für Ghidra nützliches Format. Mehr über Max selbst finden Sie unter https://maxkersten.nl/.

Dokumentation

Dokumentation finden Sie im SHAREM-Wiki, das einige Anleitungen zur Verwendung von SHAREM bietet, obwohl derzeit erhebliche Teile und Funktionen nicht dokumentiert sind.

Updates

    1. September 2022: Wir haben ein sehr kleines Update an der setup.py bezüglich numpy vorgenommen, das einige Leute mit der neuesten Version von Python betreffen könnte.
    1. November 2022: Lange überfällig, wir haben einige Änderungen vorgenommen, um den ShellWasp-Stil von Syscalls zu unterstützen. Obwohl wir zuvor Unterstützung für Syscalls implementiert hatten, würde der ShellWasp-Stil nicht funktionieren, nur hartcodierte SSNs (Syscall-Werte). Die OSMajorVersion, OSMinorVersion und OSBuild wurden für 32- und 64-Bit initialisiert. Welche OS-Version auch immer der Benutzer in der Konfiguration oder über die Benutzeroberfläche hat, wird nun intern widergespiegelt – z. B. würde die Auswahl von Windows 10 20H2 dazu führen, dass die korrekten Werte eingetragen werden, was die ShellWasp-Technik ermöglicht, wie in dieser Beispielausgabe gezeigt. Derzeit werden nur Windows 7, 10 und 11 für die Emulation der ShellWasp-Technik unterstützt.
    1. November 2022: Emulationsunterstützung für die neuen OSBuilds, 22H2 für Windows 10 und 11, hinzugefügt. Dies ist nur für die Emulation von Windows-Syscalls relevant. Viele kleinere Fehlerbehebungen und Verbesserungen der Lebensqualität. Bessere Unterscheidung der Funktionen, wenn SHAREM für Shellcode (sein primärer Fokus) und wenn es zur Analyse von PE-Dateien verwendet wird.
    1. Dezember 2022: Standarddateispeicherort für die Ausgabe von Binär-/ASCII-Dateien geändert – in logs verschoben. Möglichkeit hinzugefügt, deobfuskierte Binär-/ASCII-Dateien mit diesem Befehl auszugeben. Deobfuskierte ASCII wurde den Protokollen hinzugefügt – die ASCII der Binärdatei schien ebenfalls in den Protokollen zu fehlen – dies wurde korrigiert.
    1. Dezember 2022: Ich habe eine optionale zeitlose Debugging-Funktion für den Stack hinzugefügt. Bisher erfasste das zeitlose Debugging nur ausgeführte Anweisungen und Registerwerte vor und nach. Jetzt können wir +/- 0xA0 von ESP sehen. Leider ist es etwas langsam. Dies muss separat aktiviert werden. Darüber hinaus habe ich einige Fehler entdeckt, die falsche Ergebnisse beim Verlassen von Schleifen lieferten, was in einigen Fällen dazu führen konnte, dass eine Emulation vorzeitig beendet wurde. Ich habe dies korrigiert. Ich habe SHAREM nun auch so eingerichtet, dass es ausgibt, wenn es Schleifen verlässt, und anzeigt, wohin es geht, sobald es eine Schleife verlässt.
    1. Januar 2023: Ich habe die vollständige Codeabdeckung stark überarbeitet und ihre Leistung verbessert. Ich habe auch mehrere optionale Funktionen freigegeben, die von erfahrenen Benutzern von Fall zu Fall über die Benutzeroberfläche oder die Konfigurationsdatei angepasst werden können. Weitere Informationen auf der .

Screenshots

SHAREM ist ein sehr leistungsfähiges Framework mit zahlreichen Fähigkeiten, einige gut dokumentiert, andere nicht. Dieser Abschnitt zeigt eine kleine Anzahl dieser Fähigkeiten.

SHAREM kann einen codierten Shellcode nehmen und ihn durch Emulation deobfuskieren. Es erfasst nicht nur alle WinAPI- oder Syscall-Informationen, sondern zeigt Ihnen, wenn Sie es im Disassembler anzeigen, die decodierte Form des Shellcodes:

image

SHAREM kann nicht nur über 12.000 WinAPI-Funktionen aufzählen, sondern dies auch mit praktisch allen User-Mode-Windows-Syscalls tun. Darüber hinaus zeigt es für einige Strukturinformationen an. Für diejenigen, die mit der Registrierung arbeiten, extrahiert es Registrierungsinformationen und fügt sie unserem Registrierungsmanager hinzu:

image

SHAREM hat auch die Fähigkeit, Dateien über UrlDownloadToFileA herunterzuladen, falls sie existieren. Diese werden in den Speicher des Emulators heruntergeladen – nicht auf die Festplatte gespeichert. Bei Erfolg wird der Hash erfasst. Es gibt auch ein eingeschränktes Pseudo-Dateisystem, sodass Sie Korrelationen sehen können, wie z. B. eine Datei, die als etwas heruntergeladen und in etwas anderes umbenannt wird. Wenn der benötigte Download nicht verfügbar ist, wird er einfach als erfolgreicher Download simuliert. Live-Herunterladen ist eine Option, die in der Konfiguration aktiviert oder deaktiviert werden kann.

image

Koautoren und Mitwirkende

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy, and Tarek Abdelmotaleb.

Danksagung

Diese Forschung und einige Koautoren wurden durch den NSA-Zuschuss H98230-20-1-0326 unterstützt.

Tool herunterladen
Wiki-Seite zur vollständigen Codeabdeckung
    1. Januar 2023: Tastenkürzel zum Untermenü der vollständigen Codeabdeckung aus dem Emulator-Menü hinzugefügt. Für diejenigen, die das Update von gestern bereits heruntergeladen haben, ist das Tastenkürzel der Buchstabe „o".
    1. Januar 2023: Drei neue Felder zu den generierten Disassemblierungs-JSON-Dateien hinzugefügt. Dieses Update ist für niemanden erforderlich, der diese JSONs nicht verwendet, was eine nicht standardmäßige Verwendung von SHAREM darstellt.
    1. August 2023: Etwa 5000-6000 APIs aus rund 30 zusätzlichen DLLs wurden hinzugefügt. Weitere Verbesserungen zur Unterstützung dessen.
  • 2024/2025: SHAREM kann optional KI zur Analyse von Ergebnissen nutzen, mit einem OpenAI-Schlüssel (vom Benutzer bereitgestellt). Beachten Sie, dass SHAREM vor den jüngsten Fortschritten in der KI entwickelt wurde und die Nutzung von KI erst nach Abschluss der anfänglichen Analyse durch SHAREM erfolgt. Diese optionale Funktion ermöglicht es, das Gefundene zu untersuchen und auf das MITRE ATT&CK-Framework und vieles mehr anzuwenden.
  • März 2026: SHAREM wird beim Start bis zu 61 DLLs laden, aber mit dem neuesten Update kann es jetzt 369 DLLs und 45538 eindeutige WinAPIs unterstützen. Es gab zahlreiche weitere Aktualisierungen zur Verbesserung der Funktionalität. Änderungen wurden vorgenommen, um einige Probleme zu beheben, die mir bezüglich Installationsherausforderungen gemeldet wurden.
    1. März 2026: Die Logik zum Verlassen von Schleifen wurde mit mehr Nuancen verfeinert.