Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PowerShellArsenal — Un Modulo PowerShell Dedicato al Reverse Engineering | Kitploit
Strumenti/GitHubGitHub/mattifestation/powershellarsenal
Analisi StaticaAnalisi Dinamica (Sandboxing)Strumenti di Crittografia/DecrittografiaMemory ForensicsReverse EngineeringDebuggerInformatica ForenseAnalisi MalwareAnalisi di Binari
GitHubmattifestation/powershellarsenal

PowerShellArsenal

Un Modulo PowerShell Dedicato al Reverse Engineering

90020565 anni faRevisionato da Kitploit
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

PowerShellArsenal è un modulo PowerShell utilizzato per assistere un reverse engineer. Il modulo può essere utilizzato per disassemblare codice gestito e non gestito, eseguire analisi di malware .NET, analizzare/scrapare la memoria, analizzare formati di file e strutture di memoria, ottenere informazioni interne di sistema, ecc. PowerShellArsenal è composto dai seguenti strumenti:

Disassemblaggio

Disassembla codice nativo e gestito.

Get-CSDisassembly

Disassembla un array di byte utilizzando il framework di disassemblaggio Capstone Engine.

Get-ILDisassembly

Disassembla un array di byte MSIL grezzo passato da un oggetto MethodInfo in modo simile a Ildasm.

Analisi Malware

Strumenti utili durante l'analisi di malware.

New-FunctionDelegate

Fornisce un wrapper eseguibile per una funzione X86 o X86_64.

Invoke-LoadLibrary

Carica una DLL nel processo PowerShell corrente.

New-DllExportFunction

Crea un delegato wrapper eseguibile attorno a una funzione esportata non gestita.

Get-HostsFile

Analizza un file HOSTS.

New-HostsFileEntry

Sostituisce o aggiunge una voce a un file HOSTS.

Remove-HostsFileEntry

Rimuove una voce o una serie di voci da un file HOSTS.

Get-AssemblyStrings

Restituisce tutte le stringhe da un eseguibile .NET.

Get-AssemblyResources

Estrae le risorse gestite da un assembly .NET.

Remove-AssemblySuppressIldasmAttribute

Rimuove un attributo SuppressIldasmAttribute da un assembly .NET.

Get-AssemblyImplementedMethods

Restituisce tutti i metodi in un assembly che sono implementati in MSIL.

Strumenti di Memoria

Ispeziona e analizza la memoria dei processi

Get-ProcessStrings

Restituisce tutte le stringhe stampabili dalla memoria in modalità utente di un processo.

Get-VirtualMemoryInfo

Un wrapper per kernel32!VirtualQueryEx

Get-ProcessMemoryInfo

Recupera le informazioni sulla memoria virtuale per ogni insieme unico di pagine nella memoria utente. Questa funzione è simile al comando !vadump di WinDbg.

Get-StructFromMemory

Marshaling dei dati da un blocco di memoria non gestito in un processo arbitrario a un oggetto gestito appena allocato del tipo specificato.

Analizzatori

Analizza formati di file e strutture in memoria.

Get-PE

Un analizzatore PE su disco e in memoria e un dump del processo.

Find-ProcessPEs

Trova eseguibili portatili in memoria indipendentemente dal fatto che siano stati caricati in modo legittimo.

Get-LibSymbols

Mostra le informazioni simboliche dai file LIB di Windows.

Get-ObjDump

Mostra informazioni sui file oggetto (OBJ) di Windows.

Interni di Windows

Ottieni e analizza informazioni di basso livello del sistema operativo Windows.

Get-NtSystemInformation

Un'utilità che chiama e analizza l'output della funzione ntdll!NtQuerySystemInformation. Questa utility può essere utilizzata per interrogare informazioni interne del sistema operativo che normalmente non sono visibili all'utente.

Get-PEB

Restituisce il blocco ambiente del processo (PEB) di un processo.

Register-ProcessModuleTrace

Avvia una traccia dei moduli del processo caricati

Get-ProcessModuleTrace

Mostra i moduli del processo che sono stati caricati dalla chiamata a Register-ProcessModuleTrace

Unregister-ProcessModuleTrace

Ferma la traccia corrente dei moduli del processo

Get-SystemInfo

Un wrapper per kernel32!GetSystemInfo

Varie

Funzioni helper varie

Get-Member

Una funzione proxy utilizzata per estendere il cmdlet Get-Member integrato. Aggiunge il parametro '-Private' che consente di visualizzare membri .NET non pubblici

Get-Strings

Estrae stringhe da file sia in Unicode che in ASCII. Questo cmdlet replica la funzionalità di strings.exe di Sysinternals.

ConvertTo-String

Converte i byte di un file in una stringa che ha una mappatura 1:1 con i byte originali del file. ConvertTo-String è utile per eseguire espressioni regolari binarie.

Get-Entropy

Calcola l'entropia di un file o di un array di byte.

Librerie

Librerie richieste da alcune funzioni di RE.

Capstone

Il binding C# del motore di disassemblaggio Capstone.

De4dot

Una potente libreria per la deoffuscazione .NET e l'analisi PE .NET.

PSReflect

Un modulo utilizzato per definire facilmente enum, struct e funzioni Win32 in memoria.

Formatters

File ps1xml utilizzati per formattare l'output di varie funzioni di PowerShellArsenal.

Licenza

Il modulo PowerShellArsenal e tutti gli script individuali sono sotto licenza BSD 3-Clause salvo diversa indicazione esplicita.

Utilizzo

Fare riferimento alla guida basata sui commenti in ogni singolo script per informazioni dettagliate sull'utilizzo.

Per installare questo modulo, copiare l'intera cartella PowerShellArsenal in una delle directory dei moduli. I percorsi predefiniti dei moduli PowerShell sono elencati nella variabile d'ambiente $Env:PSModulePath.

Il percorso predefinito per utente è: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" Il percorso predefinito a livello di computer è: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Per utilizzare il modulo, digitare Import-Module PowerShellArsenal

Per vedere i comandi importati, digitare Get-Command -Module PowerShellArsenal

Se si utilizza PowerShell v3 e si desidera rimuovere il fastidioso avviso 'Do you really want to run scripts downloaded from the Internet', una volta inserito PowerShellArsenal nel percorso dei moduli, eseguire il seguente one-liner: $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerShellArsenal) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Per aiuto su ogni singolo comando, Get-Help è vostro amico.

Nota: Gli strumenti contenuti in questo modulo sono stati tutti progettati in modo da poter essere eseguiti singolarmente. Includerli in un modulo serve semplicemente ad aumentare la portabilità.

Guida allo Stile degli Script

Per tutti i collaboratori e futuri collaboratori di PowerShellArsenal, chiedo di seguire questa guida allo stile quando scrivete i vostri script/moduli.

  • Evitare Write-Host a tutti i costi. Le funzioni/cmdlet PowerShell non sono utility a riga di comando! Le richieste pull contenenti codice che utilizza Write-Host non verranno considerate. Dovreste invece restituire oggetti personalizzati. Per maggiori informazioni sulla creazione di oggetti personalizzati, leggete questi articoli:

    • 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
  • Se si desidera visualizzare informazioni di debug rilevanti sullo schermo, utilizzare Write-Verbose. L'utente può sempre aggiungere '-Verbose'.

  • Fornire sempre una guida descrittiva basata su commenti per ogni script. Inoltre, assicurarsi di includere il proprio nome e una licenza BSD 3-Clause (salvo circostanze eccezionali che impediscano l'applicazione della licenza BSD).

  • Assicurarsi che tutte le funzioni seguano la corretta concordanza verbo-sostantivo di PowerShell. Utilizzare Get-Verb per elencare i verbi predefiniti utilizzati da PowerShell. Le eccezioni ai verbi supportati saranno valutate caso per caso.

  • Preferisco che i nomi delle variabili siano in maiuscolo e il più descrittivi possibile.

  • Fornire spaziatura logica tra il codice. Indentare il codice per renderlo più leggibile.

  • Se ci si trova a ripetere codice, scrivere una funzione.

  • Gestire tutti gli errori previsti e fornire un output significativo. Se si ha un errore che deve interrompere l'esecuzione dello script, utilizzare 'Throw'. Se si ha un errore che non necessita di interrompere l'esecuzione, utilizzare Write-Error.

  • Se si scrive uno script che interagisce con l'API Win32, cercare di evitare di compilare C# inline con Add-Type. Provare a utilizzare il modulo PSReflect, se possibile.

  • Non utilizzare percorsi hardcoded. Uno script dovrebbe essere utilizzabile subito. Nessuno dovrebbe dover modificare il codice a meno che non lo voglia.

  • La compatibilità con PowerShell v2 è fortemente desiderata.

  • Utilizzare parametri posizionali e rendere i parametri obbligatori quando ha senso. Ad esempio, cerco qualcosa come:

    • [Parameter(Position = 0, Mandatory = $True)]
  • Non utilizzare alias a meno che non abbia senso per ricevere input dalla pipeline. Rende il codice più difficile da leggere per le persone che non hanno familiarità con un particolare alias.

  • Cercare di non far durare troppo i comandi. Ad esempio, una pipeline è un posto naturale per un'interruzione di riga.

  • Non esagerare con i commenti inline. Usarli solo quando alcuni aspetti del codice potrebbero confondere il lettore.

  • Piuttosto che utilizzare Out-Null per sopprimere output indesiderato/irrilevante, salvare l'output indesiderato in $null. In questo modo si ottiene un leggero miglioramento delle prestazioni.

  • Utilizzare valori predefiniti per i propri parametri quando ha senso. Idealmente, si vuole uno script che funzioni senza richiedere parametri.

  • Dichiarare esplicitamente tutte le dipendenze richieste e opzionali nella guida basata sui commenti della propria funzione. Tutte le dipendenze delle librerie devono risiedere nella cartella 'Lib'.

  • Se uno script crea oggetti personalizzati complessi, includere un file ps1xml che formatti correttamente l'output dell'oggetto. I file ps1xml sono archiviati in Lib\Formatters.

Scarica lo strumento