Rev 59 | Rev 75 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 59 | Rev 62 | ||
|---|---|---|---|
| Line 952... | Line 952... | ||
| 952 | // quick helper to see if the program is registered. It contains an address to potential crackers. |
952 | // quick helper to see if the program is registered. It contains an address to potential crackers. |
| 953 | // Notice: user's email address may be a wchar_t array, and thus may contain Unicode characters. |
953 | // Notice: user's email address may be a wchar_t array, and thus may contain Unicode characters. |
| 954 | // /!\ WARNING: THE CRACKER MESSAGE SHOULD NEVER CHANGE, AND NEITHER SHOULD THE ALGORITHM BELOW /!\ |
954 | // /!\ WARNING: THE CRACKER MESSAGE SHOULD NEVER CHANGE, AND NEITHER SHOULD THE ALGORITHM BELOW /!\ |
| 955 | 955 | ||
| 956 | static const char crackermsg[] = "Please, respect my work. DON'T PUBLISH if you crack my program. Thank you and happy cracking :)"; |
956 | static const char crackermsg[] = "Please, respect my work. DON'T PUBLISH if you crack my program. Thank you and happy cracking :)"; |
| - | 957 | static const wchar_t *blacklist[] = { L"bono@fff.com" }; // those crackers didn't play fair :( |
|
| 957 | 958 | ||
| 958 | unsigned long correct_activationcode; |
959 | unsigned long correct_activationcode; |
| 959 | int byte_index; |
960 | int byte_index; |
| 960 | int length; |
961 | int length; |
| 961 | 962 | ||
| 962 | // compute the maximal length of the string for which we need to checksum |
963 | // compute the maximal length of the string for which we need to checksum |
| 963 | length = wcslen (email); |
964 | length = wcslen (email); |
| 964 | if (length > sizeof (crackermsg) - 1) |
965 | if (length > sizeof (crackermsg) - 1) |
| 965 | length = sizeof (crackermsg) - 1; // bound it to the length of the cracker message |
966 | length = sizeof (crackermsg) - 1; // bound it to the length of the cracker message |
| - | 967 | ||
| - | 968 | // reuse byte_index to parse the blacklist |
|
| - | 969 | for (byte_index = 0; byte_index < sizeof (blacklist) / sizeof (wchar_t *); byte_index++) |
|
| - | 970 | if (_wcsicmp (blacklist[byte_index], email) == 0) |
|
| - | 971 | return (false); // if email is blacklisted, report it to be false |
|
| 966 | 972 | ||
| 967 | // hash the supplied e-mail |
973 | // hash the supplied e-mail |
| 968 | correct_activationcode = 5381; // start value |
974 | correct_activationcode = 5381; // start value |
| 969 | for (byte_index = 0; byte_index < sizeof (crackermsg) - 1; byte_index++) |
975 | for (byte_index = 0; byte_index < sizeof (crackermsg) - 1; byte_index++) |
| 970 | correct_activationcode = ((correct_activationcode << 5) + correct_activationcode) |
976 | correct_activationcode = ((correct_activationcode << 5) + correct_activationcode) |