LocalProcess
Основной WinAPI backend в EyeAuras и то, что он реально умеет
LocalProcess
LocalProcess это основной user-mode backend в EyeAuras. Если нужен самый прямой путь к локальному процессу через WinAPI, почти всегда начинать стоит с него. По духу это тот же внешний сценарий, что и в External Memory Hack, только с более удобным верхним слоем.
Когда подходит, а когда нет
LocalProcess хорош, когда:
- нужен обычный локальный процесс
- нужен быстрый старт без кастомного backend'а
- кроме чтения памяти нужен и обычный process control
Главное ограничение одно:
- он сам открывает процесс обычным WinAPI-путём, поэтому с защищёнными процессами не подходит
В таких случаях обычно смотрят на:
NativeLocalProcess— если нужный handle уже получен заранееLCProcess— если память читается внешне, например черезDMAKDProcess— если нужен более глубокий доступ через kernel driver
Как его открыть
using System.Diagnostics;
using EyeAuras.Memory;
using var byPid = LocalProcess.ByProcessId(Process.GetCurrentProcess().Id);
using var byName = LocalProcess.ByProcessName("notepad");
var processes = LocalProcess.GetProcesses();
Что он даёт
Через LocalProcess вы получаете сразу две вещи:
- нормальный доступ к памяти через
process.Memory - обычный user-mode контроль процесса
Из этого сразу вырастают:
MemoryOfModule(...)ReadExports(),ReadImports(),ReadSections()pattern scanningcode cavesDLL inject,manual mapping,APC,remote thread
Именно поэтому это основной backend для большинства практических сценариев.
Типичный маршрут
using EyeAuras.Memory;
using EyeAuras.Memory.Scaffolding;
using var process = LocalProcess.ByProcessName("game");
using var moduleMemory = process.MemoryOfModule("game.exe");
var sections = moduleMemory.ReadSections();
var imports = moduleMemory.ReadImports();
var exports = moduleMemory.ReadExports();
Если потом хотите перейти от внешнего чтения к более активной internal-практике, полезны DLL Memory Hack, DLL Injector и Code Caves & DLL's.
Где NativeLocalProcess лучше
NativeLocalProcess нужен не вместо LocalProcess, а когда процесс уже открыт нужным вам способом и вы хотите положить Memory API поверх готового handle.