Read-ProcessMemory
Прочитать данные из памяти процесса
Параметры
-Address Адрес памяти
-Process Процесс
-Read Прочитать число или текст
-Size Прочитать определенное количество байт
-Module Имя модуля
Примеры
Найти процесс и прочитать значение int с указанного адреса.
Wake up, Neo, select all
Clear-Host
try{
$process = Get-Process l2 -ErrorAction Stop # найти процесс с именем l2
}
catch{
Write-Host "Процесс не найден" -ForegroundColor Red
Stop-Script
}
Write-Host "Процесс найден" -ForegroundColor Green
$address = 0x140BE340 # адрес, с которого прочитать данные
$x = Read-ProcessMemory $address $process -Read Int32 # прочитать int
Write-Host $xПрочитать строку.
Wake up, Neo, select all
Clear-Host
try{
$process = Get-Process l2 -ErrorAction Stop # найти процесс с именем l2
}
catch{
Write-Host "Процесс не найден" -ForegroundColor Red
Stop-Script
}
Write-Host "Процесс найден" -ForegroundColor Green
$address = 0x20789F0C # адрес, с которого прочитать данные
$s = Read-ProcessMemory $address $process -Read Unicode # прочитать строку юникод
Write-Host $sПрочитать значение относительно указанного модуля.
Wake up, Neo, select all
Clear-Host
try{
$process = Get-Process l2 -ErrorAction Stop # найти процесс с именем l2
}
catch{
Write-Host "Процесс не найден" -ForegroundColor Red
Stop-Script
}
Write-Host "Процесс найден" -ForegroundColor Green
$address = 0x789F0C # адрес, с которого прочитать данные
$s = Read-ProcessMemory $address $process -Read Unicode -Module 'engine.dll'
Write-Host $sПрочитать значение относительно указанного модуля. В отличие от предыдущего примера адрес модуля ищется один раз, а не при каждом вызове функции чтения памяти. Если функция используется часто с указанием модуля, то рекомендуется использовать этот вариант.
Wake up, Neo, select all
Clear-Host
try{
$process = Get-Process l2 -ErrorAction Stop # найти процесс с именем l2
}
catch{
Write-Host "Процесс не найден" -ForegroundColor Red
Stop-Script
}
Write-Host "Процесс найден" -ForegroundColor Green
# получить адрес модуля engine.dll
$Modules = (Get-ProcessModules $Process)|Where-Object {$_.Name -match "engine.dll"}
Write-Host $Modules.Address # адрес модуля engine.dll
$address = 0x789F0C # адрес, с которого прочитать данные
# порочитать значение относительно модуля
$s = Read-ProcessMemory ($Modules.Address + $address) $process -Read Unicode
Write-Host $s