Задание: RevMeMaybe.zip

Задание получает на вход пароль, проверяет что бы его символы были в диапазоне 0x20-0x7e. Далее проводит небольшие математические действия над ним и сравнивает полученный результат с 0xCEFF5331D4AA

Сам алгоритм создания этого значения очень прост. Для этого счетчик умножается на 0x128 и прибавляется символ пароля и так пока не обработаются все символы пароля.

Т.к. множитель больше 0x100 следовательно символы пароля никак не накладываются друг на друга. И для того что бы их получить достаточно выполнить обратное действие

from hashlib import md5

n = 0xCEFF5331D4AA
s = ''
while n > 0:
    s += chr(n % 0x128)
    n //= 0x128

print('xiomara{' + md5(s[::-1]).hexdigest() + '}')
xiomara{48c92083dc430eb4e8af78a38f9cc877}