no więc, załóżmy że gdybym pisał keyloggera, to hook, tam bym sobie pisał do jakiegoś niezbyt dużego bufora, jakby się nazbierało to ciach do pliku (ale plik pewnie bym otworzył na cały czas działania), załóżmy, że na razie by nie wysyłał w eter, żeby nie robić ewentualnych podejrzeń :> ot cały keylogger bo co jeszcze by tu dopisać?
Załóżmy, że proces zakładający keyloggera zrobi sobie okno żeby zbierać info z HookFunc, żeby nie wzbudzać podejrzeń i nie otwierać tego samego pliku w każdym procesie
HWND VirtualServer = CreateWindowEx(blalblalba);
SetWindowHookEx(bla bla bla);
HANDLE file = CreateFile(blablabla, plik w tempie);
char* buf = new nie duzy_buforek_z_1KB_wystarczy_eventy i tak będą miały max po kilka bajtów, to nawet pisząc na klawie ReadFile będzie wołany max z raz na minutę;
while(GetMessage) if(komunikat z HookFunc) if(po dopisaniu całego bufora) WriteFile(pisz do pliku i zeruj bufor);
DLLka:
HWND server;
BOOL DLLMain()
{
case prcess attach:
//tutaj znajdę sobie serwer
server = FindWindow(blablabla);
buf = new ...; //zrobie sobie bufor żeby nie pisać do pliku co chwilę
}
LRESULT __stdcall HookFunc(HHOOK, int, WPARAM, LPARAM, itd)
{
if(!mogę przetwarzać) return dalszy call;
PostMessage do serwera, dajmy na to jakiś WM_COMMAND, z info o klawiszu;
return dalszy call;
}
ewentualne wysłanie info z pliku do mnie to od czasu do czasu (nawet między wieloma uruchomieniami systemu, ew co uruchomienie, ale trzeba by poczekać na połaczenie, bo nie zawsze od razu jest, pomijając także bariery łączowe jak firewale, bo nie to jest tematem wątku), ale to i tak innym exe'kiem bym zrobił, nawet ten keylogger by go nie wołał, więc zero powiązania poza ewentualnym otwieraniem wspólnego pliku. Plik załóżmy miałby siedzieć sobie w Tempie, zaryzykuję i założę, że user nie czyści Tempa...
No i jakie mam szanse na zakwalifikowanie takiego softu jako podejrzane akcje? Jeśli decyzja jest podejmowana w drodze podejrzeń to jaka może być skuteczność, co? A w ilu przypadkach będzie się mylił?