Получение определенного идентификатора процесса из вывода powershell - PullRequest
0 голосов
/ 11 ноября 2018

Привет, я новичок в сценариях powershell и хотел бы получить конкретный идентификатор процесса на основе хэша файла. Однако я могу получить только таблицу со значением хеш-функции или таблицу с идентификатором, именем процесса и путем

$ps = Get-Process | Select-Object -Property Id,ProcessName,Path

$hashlist = Get-FileHash(Get-Process|Select-Object -ExpandProperty Path) -Algorithm MD5

Можно ли мне объединить две таблицы, чтобы я мог получить представление об Id, ProcessName и Hash, используя путь для их соединения?

1 Ответ

0 голосов
/ 11 ноября 2018

РЕДАКТИРОВАТЬ: совершенно другой подход из-за новой информации из комментария

Я не думаю, что так легко идентифицировать вредоносное ПО с помощью хеша MD5. Современное AntiVirusSoftware использует эвристику для решения проблемы mean вредоносных программ, которые включают случайные данные, а также скрывают их происхождение.

## Q:\Test\2018\11\11\SO_53247430.ps1

# random hex string replace with your malware signature
$MalwareMD5Hash = 'D52C11B7E076FCE593288439ABA0F6D4' 

Get-Process | Where-Object Path | Select-Object ID,Path | Group-Object Path | ForEach-Object {
   if ($MalwareMD5Hash -eq (Get-FileHash $_.Name -Alg MD5).Hash){ 
       ##iterate group to kill all processes matching
       ForEach ($PID in $_.Group.ID){
         Stop-Process -ID $PID -Force -WhatIF
       }
   }
   $_.Name | Remove-Item -Force -WhatIf # to delete the physical file.
}

Как я и предложил в своем комментарии:

$HashList = [ordered]@{}
Get-Process |Where-Object Path | Select-Object Path |Sort-Object Path -Unique | ForEach-Object {
  $HashList[$_.Path]=(Get-FileHash $_.Path -Alg MD5).Hash
  ## or the reverse, the hash as key and the path as value
  # $HashList[(Get-FileHash $_.Path -Alg MD5).Hash]=$_.Path
}
$Hashlist | Format-List

Замкнутый пример вывода

Name  : C:\Program Files\Mozilla Firefox\firefox.exe
Value : BFE829AB5A4B729EE4565700FC8853DA

Name  : C:\WINDOWS\Explorer.EXE
Value : E4A81EDDFF8B844D85C8B45354E4144E

Name  : C:\WINDOWS\system32\conhost.exe
Value : EA777DEEA782E8B4D7C7C33BBF8A4496

Name  : C:\WINDOWS\system32\DllHost.exe
Value : 2528137C6745C4EADD87817A1909677E

> $hashlist['C:\WINDOWS\Explorer.EXE']
E4A81EDDFF8B844D85C8B45354E4144E

Или с перевернутым списком

> $hashlist['E4A81EDDFF8B844D85C8B45354E4144E']
C:\WINDOWS\Explorer.EXE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...