Этот вопрос состоит из 3 частей:
Запуск от имени администратора
Запись в защищенную память
Права, необходимые для записи в lsass.exe
Чтобы заставить программу работать от имени администратора, вам просто нужно добавить файл манифеста, который вы можете сделать так:
Если вы хотите записать на страницу памяти, у которой нет разрешений на запись, вам необходимо использовать VirtualProtectEx Я использую ее в обертке, например:
PatchEx(HANDLE hProcess, char* dst, char* src, int size)
{
DWORD oldprotect;
VirtualProtectEx(hProcess, dst, size, PAGE_EXECUTE_READWRITE, &oldprotect);
WriteProcessMemory(hProcess, dst, src, size, NULL);
VirtualProtectEx(hProcess, dst, size, oldprotect, &oldprotect);
}
Как часть безопасности Windows, вы не можете редактировать память процессов, запущенных как SYSTEM, что делает lsass.exe.
Чтобы редактировать lsass.exe, вам необходимо как минимумработает как СИСТЕМА путем захвата токена СИСТЕМЫ. Но поскольку Windows 8.1 lsass.exe - это процесс защищенного процесса (PPL), то это уже не так просто.
Подробнее об этом можно прочитать в Блог Алекса Ионеску
Скорее всего, вам нужно быть в режиме ядра, чтобы связываться с LSASS.