Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PowerShellArsenal — Un module PowerShell dédié à la rétro-ingénierie | Kitploit
Outils/GitHubGitHub/mattifestation/powershellarsenal
Analyse StatiqueAnalyse Dynamique (Sandboxing)Outils de Chiffrement/DéchiffrementCriminalistique MémoireRétro-ingénierieDébogueursAnalyse ForensiqueAnalyse de MalwareAnalyse de Binaires
GitHubmattifestation/powershellarsenal

PowerShellArsenal

Un module PowerShell dédié à la rétro-ingénierie

900205il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

PowerShellArsenal est un module PowerShell utilisé pour aider un ingénieur en rétro-ingénierie. Le module peut être utilisé pour désassembler du code managé et non managé, effectuer des analyses de logiciels malveillants .NET, analyser/extraire la mémoire, analyser les formats de fichiers et les structures mémoire, obtenir des informations système internes, etc. PowerShellArsenal comprend les outils suivants :

Désassemblage

Désassemblez du code natif et managé.

Get-CSDisassembly

Désassemble un tableau d'octets en utilisant le framework de désassemblage Capstone Engine.

Get-ILDisassembly

Désassemble un tableau d'octets MSIL brut passé à partir d'un objet MethodInfo d'une manière similaire à celle d'Ildasm.

Analyse de logiciels malveillants

Outils utiles lors de l'analyse de logiciels malveillants.

New-FunctionDelegate

Fournit un wrapper exécutable pour une fonction X86 ou X86_64.

Invoke-LoadLibrary

Charge une DLL dans le processus PowerShell actuel.

New-DllExportFunction

Crée un délégué wrapper exécutable autour d'une fonction exportée non managée.

Get-HostsFile

Analyse un fichier HOSTS.

New-HostsFileEntry

Remplace ou ajoute une entrée à un fichier HOSTS.

Remove-HostsFileEntry

Supprime une entrée ou une série d'entrées d'un fichier HOSTS.

Get-AssemblyStrings

Affiche toutes les chaînes d'un exécutable .NET.

Get-AssemblyResources

Extrait les ressources managées d'un assembly .NET

Remove-AssemblySuppressIldasmAttribute

Supprime l'attribut SuppressIldasmAttribute d'un assembly .NET.

Get-AssemblyImplementedMethods

Retourne toutes les méthodes d'un assembly qui sont implémentées en MSIL.

Outils mémoire

Inspectez et analysez la mémoire des processus

Get-ProcessStrings

Affiche toutes les chaînes imprimables de la mémoire en mode utilisateur d'un processus.

Get-VirtualMemoryInfo

Un wrapper pour kernel32!VirtualQueryEx

Get-ProcessMemoryInfo

Récupère les informations de mémoire virtuelle pour chaque ensemble unique de pages en mémoire utilisateur. Cette fonction est similaire à la commande !vadump de WinDbg.

Get-StructFromMemory

Marshale les données d'un bloc de mémoire non managé dans un processus arbitraire vers un objet managé nouvellement alloué du type spécifié.

Analyseurs

Analysez les formats de fichiers et les structures en mémoire.

Get-PE

Un analyseur PE sur disque et en mémoire et un vidage de processus.

Find-ProcessPEs

Trouve les exécutables portables en mémoire, qu'ils aient été chargés de manière légitime ou non.

Get-LibSymbols

Affiche les informations symboliques des fichiers LIB Windows.

Get-ObjDump

Affiche les informations sur les fichiers objet (OBJ) Windows.

Internes Windows

Obtenez et analysez les informations de bas niveau du système d'exploitation Windows.

Get-NtSystemInformation

Un utilitaire qui appelle et analyse la sortie de la fonction ntdll!NtQuerySystemInformation. Cet utilitaire peut être utilisé pour interroger des informations internes du système d'exploitation qui ne sont généralement pas visibles pour un utilisateur.

Get-PEB

Retourne le bloc d'environnement de processus (PEB) d'un processus.

Register-ProcessModuleTrace

Démarre une trace des modules de processus chargés

Get-ProcessModuleTrace

Affiche les modules de processus qui ont été chargés depuis l'appel à Register-ProcessModuleTrace

Unregister-ProcessModuleTrace

Arrête la trace des modules de processus en cours

Get-SystemInfo

Un wrapper pour kernel32!GetSystemInfo

Divers

Fonctions d'assistance diverses

Get-Member

Une fonction proxy utilisée pour étendre l'applet de commande Get-Member intégrée. Elle ajoute le paramètre '-Private' vous permettant d'afficher les membres .NET non publics.

Get-Strings

Extrait les chaînes des fichiers en Unicode et en Ascii. Cette applet de commande reproduit la fonctionnalité de strings.exe de Sysinternals.

ConvertTo-String

Convertit les octets d'un fichier en une chaîne qui a un mappage 1 à 1 avec les octets d'origine du fichier. ConvertTo-String est utile pour effectuer des expressions régulières binaires.

Get-Entropy

Calcule l'entropie d'un fichier ou d'un tableau d'octets.

Bibliothèque

Bibliothèques requises par certaines fonctions de rétro-ingénierie.

Capstone

La liaison C# du moteur de désassemblage Capstone.

De4dot

Une puissante bibliothèque de désobfuscation .NET et d'analyse PE .NET.

PSReflect

Un module utilisé pour définir facilement des énumérations, des structures et des fonctions Win32 en mémoire.

Formatters

Fichiers ps1xml utilisés pour formater la sortie de diverses fonctions PowerShellArsenal.

Licence

Le module PowerShellArsenal et tous les scripts individuels sont sous la licence BSD 3-Clause sauf indication contraire explicite.

Utilisation

Reportez-vous à l'aide basée sur les commentaires dans chaque script individuel pour des informations détaillées sur l'utilisation.

Pour installer ce module, déposez le dossier entier PowerShellArsenal dans l'un de vos répertoires de modules. Les chemins de modules PowerShell par défaut sont listés dans la variable d'environnement $Env:PSModulePath.

Le chemin de module par utilisateur par défaut est : "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" Le chemin de module au niveau de l'ordinateur par défaut est : "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Pour utiliser le module, tapez Import-Module PowerShellArsenal

Pour voir les commandes importées, tapez Get-Command -Module PowerShellArsenal

Si vous utilisez PowerShell v3 et que vous souhaitez supprimer l'ennuyeux avertissement 'Voulez-vous vraiment exécuter des scripts téléchargés depuis Internet', une fois que vous avez placé PowerShellArsenal dans votre chemin de modules, exécutez la commande suivante sur une ligne : $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerShellArsenal) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Pour obtenir de l'aide sur chaque commande individuelle, Get-Help est votre ami.

Remarque : Les outils contenus dans ce module ont tous été conçus pour pouvoir être exécutés individuellement. Les inclure dans un module contribue simplement à une meilleure portabilité.

Guide de style de script

Pour tous les contributeurs et futurs contributeurs de PowerShellArsenal, je demande de suivre ce guide de style lors de l'écriture de vos scripts/modules.

  • Évitez Write-Host à tout prix. Les fonctions/applets de commande PowerShell ne sont pas des utilitaires en ligne de commande ! Les demandes de tirage contenant du code utilisant Write-Host ne seront pas considérées. Vous devez plutôt produire des objets personnalisés. Pour plus d'informations sur la création d'objets personnalisés, lisez ces articles :

    • 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
  • Si vous souhaitez afficher des informations de débogage pertinentes à l'écran, utilisez Write-Verbose. L'utilisateur peut toujours ajouter '-Verbose'.

  • Fournissez toujours une aide descriptive basée sur les commentaires pour chaque script. Assurez-vous également d'inclure votre nom et une licence BSD 3-Clause (sauf circonstances atténuantes empêchant l'application de la licence BSD).

  • Assurez-vous que toutes les fonctions respectent la convention verbe-nom PowerShell appropriée. Utilisez Get-Verb pour lister les verbes par défaut utilisés par PowerShell. Les exceptions aux verbes pris en charge seront examinées au cas par cas.

  • Je préfère que les noms de variables soient en majuscules et aussi descriptifs que possible.

  • Fournissez un espacement logique entre votre code. Indentez votre code pour le rendre plus lisible.

  • Si vous vous retrouvez à répéter du code, écrivez une fonction.

  • Attrapez toutes les erreurs anticipées et fournissez une sortie significative. Si vous avez une erreur qui devrait arrêter l'exécution du script, utilisez 'Throw'. Si vous avez une erreur qui n'a pas besoin d'arrêter l'exécution, utilisez Write-Error.

  • Si vous écrivez un script qui interagit avec l'API Win32, essayez d'éviter de compiler du C# en ligne avec Add-Type. Essayez d'utiliser le module PSReflect, si possible.

  • N'utilisez pas de chemins codés en dur. Un script doit être utilisable dès sa sortie de la boîte. Personne ne devrait avoir à modifier le code sauf s'il le souhaite.

  • La compatibilité avec PowerShell v2 est hautement souhaitée.

  • Utilisez des paramètres positionnels et rendez les paramètres obligatoires lorsque cela a du sens. Par exemple, je recherche quelque chose comme ce qui suit :

    • [Parameter(Position = 0, Mandatory = $True)]
Télécharger l’outil
  • N'utilisez pas d'alias sauf si cela a du sens pour recevoir une entrée de pipeline. Ils rendent le code plus difficile à lire pour les personnes qui ne sont pas familières avec un alias particulier.

  • Essayez de ne pas laisser les commandes s'étendre trop longtemps. Par exemple, un pipeline est un endroit naturel pour un saut de ligne.

  • N'abusez pas des commentaires en ligne. Utilisez-les seulement lorsque certains aspects du code pourraient être déroutants pour un lecteur.

  • Plutôt que d'utiliser Out-Null pour supprimer une sortie indésirable/non pertinente, enregistrez la sortie indésirable dans $null. Cela offre une légère amélioration des performances.

  • Utilisez des valeurs par défaut pour vos paramètres lorsque cela a du sens. Idéalement, vous voulez un script qui fonctionne sans nécessiter de paramètres.

  • Indiquez explicitement toutes les dépendances requises et optionnelles dans l'aide basée sur les commentaires de votre fonction. Toutes les dépendances de bibliothèque doivent résider dans le dossier 'Lib'.

  • Si un script crée des objets personnalisés complexes, incluez un fichier ps1xml qui formatera correctement la sortie de l'objet. Les fichiers ps1xml sont stockés dans Lib\Formatters.