
Olá, preciso obter uma lista de todos os processos em execução no meu Windows 10 e executá-los por meio do algoritmo MD5. Existe uma maneira de fazer isso automaticamente no PowerShell?
qualquer ajuda é muito apreciada
Responder1
Isso não é tão fácil quanto deveria ser. PowerShell pode hash MD5 umarquivonativamente (usando Get-FileHash
), mas não uma string.
Felizmente, a MS fornece uma soluçãoaqui.
#http://jongurgul.com/blog/get-stringhash-get-filehash/
Function Get-StringHash([String] $String,$HashName = "MD5")
{
$StringBuilder = New-Object System.Text.StringBuilder
[System.Security.Cryptography.HashAlgorithm]::Create($HashName).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String))|%{
[Void]$StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString()
}
Copie essa função e cole-a em um prompt do PowerShell. Essa função chamada Get-StringHash
será salva para aquela sessão do PowerShell.
Teste o MD5 com hash da palavra "teste" digitando:
Get-StringHash “teste” “MD5”
E você deve obter o hash MD5 abaixo:
098f6bcd4621d373cade4e832627b4f6
Feito isso, você pode usar essa função, além de Get-Process
obter os nomes dos processos e MD5 dos nomes, conforme mostrado abaixo:
get-process | ForEach-Object {write-host $_.Name ; Get-Stringhash "$_.Name" "MD5"}
Responder2
É um utilitário da Microsoft chamado Sysmon, que normalmente se destina à coleta de informações do sistema de baixo nível para fins de rastreamento de malware. Ele é instalado como um serviço e pode ser configurado para registrar o hash do arquivo de cada processo iniciado no log de eventos. Você pode configurar quais tipos de hash (md5,sha1,sha2,etc) gravar através de um arquivo de configuração. Se isso ajudar a atingir seu objetivo, você pode ler mais sobre issoaqui.