swietna myśl
tremor dzieki tobie rozwiązałem problem

proces nazwałem svchost.exe (jest ich wiele), oraz dodałem do autostartu poprzez klucze rejestru.
Gdyby w przyszłości komuś sie przydało to podaje przykładowy kodzik takiego programu:
Kod: Zaznacz cały
#include <windows.h>
#include <string>
// nazwa klasy okna
std::string aplikacja = "program";
// ------------------- procedura zdarzeniowa okna ------------------------
LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg,
WPARAM wParam, LPARAM lParam){
switch (uMsg){
case WM_DESTROY: PostQuitMessage (0); // kończymy program
return 0;
}
return DefWindowProc(hWindow, uMsg, wParam, lParam);
}
// ------------------------funkcja WinMain() ----------------------------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow){
/* rejestrujemy klasę okna */
WNDCLASSEX KlasaOkna;
// wypełniamy strukturę WNDCLASSEX
ZeroMemory (&KlasaOkna, sizeof(WNDCLASSEX));
KlasaOkna.cbSize = sizeof(WNDCLASSEX);
KlasaOkna.hInstance = hInstance;
KlasaOkna.lpfnWndProc = WindowEventProc;
KlasaOkna.lpszClassName = aplikacja.c_str();
KlasaOkna.hCursor = LoadCursor(NULL, IDC_ARROW);
KlasaOkna.hIcon = LoadIcon(NULL, IDI_HAND);
KlasaOkna.hbrBackground = (HBRUSH) COLOR_WINDOW;
KlasaOkna.style = CS_SAVEBITS;
// rejestrujemy klasę okna
RegisterClassEx (&KlasaOkna);
std::string sciezka = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts";
HANDLE uchwyt = CreateFile(sciezka.c_str(),
GENERIC_WRITE,
0, //ważne dla celu misji plik nie może być współdzielony
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
/* pętla komunikatów */
MSG msgKomunikat;
while (GetMessage(&msgKomunikat, NULL, 0, 0)){
TranslateMessage (&msgKomunikat);
DispatchMessage (&msgKomunikat);
}
// zwracamy kod wyjścia
return static_cast<int>(msgKomunikat.wParam);
}