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
PowerShellArsenal — Ein PowerShell-Modul, das sich dem Reverse Engineering widmet. | Kitploit
Tools/GitHubGitHub/mattifestation/powershellarsenal
Statische AnalyseDynamische Analyse (Sandboxing)Verschlüsselungs-/EntschlüsselungstoolsSpeicherforensikReverse EngineeringDebuggerForensikMalware-AnalyseBinäranalyse
GitHubmattifestation/powershellarsenal

PowerShellArsenal

Ein PowerShell-Modul, das sich dem Reverse Engineering widmet.

900205vor 5 JahrenVon 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
Repository anzeigen

PowerShellArsenal ist ein PowerShell-Modul, das zur Unterstützung eines Reverse Engineers dient. Das Modul kann verwendet werden, um verwalteten und nicht verwalteten Code zu disassemblieren, .NET-Malware-Analysen durchzuführen, Speicher zu analysieren/auszulesen, Dateiformate und Speicherstrukturen zu parsen, interne Systeminformationen zu erhalten usw. PowerShellArsenal besteht aus den folgenden Werkzeugen:

Disassemblierung

Nativen und verwalteten Code disassemblieren.

Get-CSDisassembly

Disassembliert ein Byte-Array mithilfe des Capstone-Engine-Disassembly-Frameworks.

Get-ILDisassembly

Disassembliert ein rohes MSIL-Byte-Array, das von einem MethodInfo-Objekt übergeben wird, auf ähnliche Weise wie Ildasm.

Malware-Analyse

Nützliche Werkzeuge für die Malware-Analyse.

New-FunctionDelegate

Stellt einen ausführbaren Wrapper für eine X86- oder X86_64-Funktion bereit.

Invoke-LoadLibrary

Lädt eine DLL in den aktuellen PowerShell-Prozess.

New-DllExportFunction

Erstellt einen ausführbaren Wrapper-Delegaten um eine nicht verwaltete, exportierte Funktion.

Get-HostsFile

Parst eine HOSTS-Datei.

New-HostsFileEntry

Ersetzt oder fügt einen Eintrag in eine HOSTS-Datei ein.

Remove-HostsFileEntry

Entfernt einen oder mehrere Einträge aus einer HOSTS-Datei.

Get-AssemblyStrings

Gibt alle Zeichenfolgen aus einer .NET-ausführbaren Datei aus.

Get-AssemblyResources

Extrahiert verwaltete Ressourcen aus einer .NET-Assembly

Remove-AssemblySuppressIldasmAttribute

Entfernt ein SuppressIldasmAttribute-Attribut aus einer .NET-Assembly.

Get-AssemblyImplementedMethods

Gibt alle Methoden in einer Assembly zurück, die in MSIL implementiert sind.

Speicherwerkzeuge

Prozessspeicher untersuchen und analysieren

Get-ProcessStrings

Gibt alle druckbaren Zeichenfolgen aus dem Benutzermodus-Speicher eines Prozesses aus.

Get-VirtualMemoryInfo

Ein Wrapper für kernel32!VirtualQueryEx

Get-ProcessMemoryInfo

Ruft Informationen zum virtuellen Speicher für jeden eindeutigen Satz von Seiten im Benutzerspeicher ab. Diese Funktion ähnelt dem !vadump-Befehl von WinDbg.

Get-StructFromMemory

Marschallt Daten aus einem nicht verwalteten Speicherblock in einem beliebigen Prozess zu einem neu zugewiesenen verwalteten Objekt des angegebenen Typs.

Parser

Dateiformate und In-Memory-Strukturen parsen.

Get-PE

Ein PE-Parser und Prozess-Dumper für Festplatte und Arbeitsspeicher.

Find-ProcessPEs

Findet portable ausführbare Dateien im Speicher, unabhängig davon, ob sie auf legitime Weise geladen wurden.

Get-LibSymbols

Zeigt symbolische Informationen aus Windows-LIB-Dateien an.

Get-ObjDump

Zeigt Informationen über Windows-Objektdateien (OBJ) an.

Windows-Interna

Niedrige Windows-Betriebssysteminformationen abrufen und analysieren.

Get-NtSystemInformation

Ein Dienstprogramm, das die Ausgabe der Funktion ntdll!NtQuerySystemInformation aufruft und parst. Dieses Dienstprogramm kann verwendet werden, um interne Betriebssysteminformationen abzufragen, die einem Benutzer normalerweise nicht angezeigt werden.

Get-PEB

Gibt den Prozess-Umgebungsblock (PEB) eines Prozesses zurück.

Register-ProcessModuleTrace

Startet eine Ablaufverfolgung geladener Prozessmodule

Get-ProcessModuleTrace

Zeigt die seit dem Aufruf von Register-ProcessModuleTrace geladenen Prozessmodule an

Unregister-ProcessModuleTrace

Beendet die laufende Ablaufverfolgung von Prozessmodulen

Get-SystemInfo

Ein Wrapper für kernel32!GetSystemInfo

Sonstiges

Verschiedene Hilfsfunktionen

Get-Member

Eine Proxy-Funktion zur Erweiterung des integrierten Get-Member-Cmdlets. Es fügt den Parameter '-Private' hinzu, mit dem nicht öffentliche .NET-Member angezeigt werden können.

Get-Strings

Gibt Zeichenfolgen aus Dateien sowohl in Unicode als auch in ASCII aus. Dieses Cmdlet repliziert die Funktionalität von strings.exe von Sysinternals.

ConvertTo-String

Konvertiert die Bytes einer Datei in eine Zeichenfolge, die eine 1:1-Zuordnung zu den ursprünglichen Bytes der Datei aufweist. ConvertTo-String ist nützlich für die Durchführung binärer regulärer Ausdrücke.

Get-Entropy

Berechnet die Entropie einer Datei oder eines Byte-Arrays.

Bibliothek

Bibliotheken, die von einigen der RE-Funktionen benötigt werden.

Capstone

Die C#-Bindung der Capstone-Disassemblierungs-Engine.

De4dot

Eine leistungsstarke Bibliothek zur .NET-Entschleierung und zum Parsen von .NET-PE-Dateien.

PSReflect

Ein Modul, das verwendet wird, um problemlos Enums, Strukturen und Win32-Funktionen im Speicher zu definieren.

Formatters

ps1xml-Dateien, die verwendet werden, um die Ausgabe verschiedener PowerShellArsenal-Funktionen zu formatieren.

Lizenz

Das PowerShellArsenal-Modul und alle einzelnen Skripte stehen unter der BSD 3-Clause-Lizenz, sofern nicht ausdrücklich anders angegeben.

Verwendung

Ausführliche Informationen zur Verwendung finden Sie in der kommentarbasierten Hilfe der einzelnen Skripte.

Um dieses Modul zu installieren, kopieren Sie den gesamten Ordner PowerShellArsenal in eines Ihrer Modulverzeichnisse. Die standardmäßigen PowerShell-Modulpfade sind in der Umgebungsvariable $Env:PSModulePath aufgeführt.

Der standardmäßige benutzerspezifische Modulpfad ist: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" Der standardmäßige computerweite Modulpfad ist: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Um das Modul zu verwenden, geben Sie Import-Module PowerShellArsenal ein.

Um die importierten Befehle anzuzeigen, geben Sie Get-Command -Module PowerShellArsenal ein.

Wenn Sie PowerShell v3 ausführen und die lästige Warnung 'Möchten Sie wirklich Skripte ausführen, die aus dem Internet heruntergeladen wurden?' entfernen möchten, führen Sie nach dem Platzieren von PowerShellArsenal in Ihrem Modulpfad den folgenden Einzeiler aus: $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerShellArsenal) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Für Hilfe zu jedem einzelnen Befehl ist Get-Help Ihr Freund.

Hinweis: Die in diesem Modul enthaltenen Werkzeuge wurden alle so konzipiert, dass sie einzeln ausgeführt werden können. Die Aufnahme in ein Modul dient lediglich der erhöhten Portabilität.

Skript-Stilrichtlinie

Für alle Mitwirkenden und zukünftigen Mitwirkenden von PowerShellArsenal bitte ich Sie, diese Stilrichtlinie beim Schreiben Ihrer Skripte/Module zu befolgen.

  • Vermeiden Sie Write-Host um jeden Preis. PowerShell-Funktionen/-Cmdlets sind keine Befehlszeilenprogramme! Pull-Requests, die Code enthalten, der Write-Host verwendet, werden nicht berücksichtigt. Stattdessen sollten Sie benutzerdefinierte Objekte ausgeben. Weitere Informationen zum Erstellen benutzerdefinierter Objekte finden Sie in diesen Artikeln:

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • Wenn Sie relevante Debug-Informationen auf dem Bildschirm anzeigen möchten, verwenden Sie Write-Verbose. Der Benutzer kann einfach '-Verbose' anhängen.

  • Geben Sie für jedes Skript immer eine beschreibende, kommentarbasierte Hilfe an. Stellen Sie außerdem sicher, dass Sie Ihren Namen und eine BSD 3-Clause-Lizenz einfügen (es sei denn, es liegen außergewöhnliche Umstände vor, die die Anwendung der BSD-Lizenz verhindern).

  • Stellen Sie sicher, dass alle Funktionen der richtigen PowerShell-Verb-Noun-Konvention folgen. Verwenden Sie Get-Verb, um die von PowerShell verwendeten Standardverben aufzulisten. Ausnahmen von den unterstützten Verben werden von Fall zu Fall geprüft.

  • Ich bevorzuge, dass Variablennamen großgeschrieben und so beschreibend wie möglich sind.

  • Sorgen Sie für logische Abstände zwischen Ihrem Code. Rücken Sie Ihren Code ein, um ihn lesbarer zu machen.

  • Wenn Sie feststellen, dass Sie Code wiederholen, schreiben Sie eine Funktion.

  • Fangen Sie alle vorhersehbaren Fehler ab und geben Sie aussagekräftige Ausgaben aus. Wenn ein Fehler die Ausführung des Skripts stoppen soll, verwenden Sie 'Throw'. Wenn ein Fehler die Ausführung nicht stoppen muss, verwenden Sie Write-Error.

  • Wenn Sie ein Skript schreiben, das mit der Win32-API interagiert, versuchen Sie, das Inline-Kompilieren von C# mit Add-Type zu vermeiden. Verwenden Sie nach Möglichkeit das PSReflect-Modul.

  • Verwenden Sie keine hartcodierten Pfade. Ein Skript sollte sofort einsatzbereit sein. Niemand sollte den Code ändern müssen, es sei denn, er möchte es.

  • PowerShell v2-Kompatibilität ist sehr erwünscht.

  • Verwenden Sie Positionsparameter und machen Sie Parameter obligatorisch, wenn es sinnvoll ist. Zum Beispiel suche ich nach etwas wie:

    • [Parameter(Position = 0, Mandatory = $True)]
Tool herunterladen
  • Verwenden Sie keine Aliase, es sei denn, sie sind für den Empfang von Pipeline-Eingaben sinnvoll. Sie erschweren das Lesen des Codes für Personen, die mit einem bestimmten Alias nicht vertraut sind.

  • Versuchen Sie, Befehle nicht zu lang laufen zu lassen. Eine Pipeline ist beispielsweise ein natürlicher Ort für einen Zeilenumbruch.

  • Übertreiben Sie es nicht mit Inline-Kommentaren. Verwenden Sie sie nur, wenn bestimmte Aspekte des Codes für den Leser verwirrend sein könnten.

  • Anstatt Out-Null zu verwenden, um unerwünschte/irrelevante Ausgaben zu unterdrücken, speichern Sie die unerwünschte Ausgabe in $null. Dies bietet eine leichte Leistungssteigerung.

  • Verwenden Sie Standardwerte für Ihre Parameter, wenn es sinnvoll ist. Idealerweise möchten Sie ein Skript, das ohne Angabe von Parametern funktioniert.

  • Geben Sie in der kommentarbasierten Hilfe Ihrer Funktion explizit alle erforderlichen und optionalen Abhängigkeiten an. Alle Bibliotheksabhängigkeiten sollten im Ordner 'Lib' abgelegt werden.

  • Wenn ein Skript komplexe benutzerdefinierte Objekte erstellt, fügen Sie eine ps1xml-Datei ein, die die Ausgabe des Objekts korrekt formatiert. ps1xml-Dateien werden in Lib\Formatters gespeichert.