crackmes.one

Writeup for Indexianado

Author: 7cherubin
Date: 2022-01-03 20:19
Summary: - The program calls GetUserNameA to get the logged on user's name. - It converts the username into all capitalized letters. - It generates a key by using each letter of the username as an index, based on its ascii code, against an offset pointer to a secret key string ("ThisIsAStringOfLength26MW2"). *It should be noted that, instead of being a normal sequence of bytes, each letter is offset by four bytes.* - This aforementioned string begins at the hardcoded address .data.00421084 and is offset by the ascii code of the letter 'A' which is 0x41. Thus, the first letter of the string begins at .data.421000. - This key is generated *after* the user is asked to provide a key of their own. - If the user inputs the same key as the one that was generated, the program enters its success branch. - It should be noted that the program does not take into account usernames that contain characters other than letters since the characters of the secret string correspond only to the ascii characters of the capitalized letters. Thus, any other character in the username would point to randomized memory *around* the secret string.

Loading writeup...