Warto w generatorze i algorytmie sprawdzania klucza uwikłać serial woluminu partycji systemowej, to unikalna 32 bitowa wartość dla każdego systemu windows.
Kod:
//funkcja pobiera numer seryjny
//wskazanego woluminu (partycji systemowej)
unsigned char *pobiez_serial(unsigned char *root){
//jesli wskaznik patchu bledny
if(!root) return 0;
//alokujemy drobny buffor na stercie
unsigned char *buffer = (unsigned char *)malloc(BUFFSIZE);
//jesli blednie otrzymany buffor
if(!buffer) return 0;
//zmienna 32 bitowa dla seriala
//w postaci bajtowej
unsigned long serial;
//pobieramy serial do zmiennej 32 bitowej
GetVolumeInformationA((LPCTSTR)root,NULL,(DWORD)NULL,
(LPDWORD)&serial,NULL,NULL,NULL,(DWORD)NULL);
//zmieniamy podstawe binarnego seriala
//do postaci ciagu alfanumerycznego hex
snprintf(buffer,BUFFSIZE,"%x",serial);
//zwracamy sterte gdzie istnieje serial
return buffer;
}