В рамках тестового задания нужно написать программу на C++, которая найдет пароль и расшифрует приложенный файл. Искать пароль следует методом перебора. Известно, что пароль состоит из трех (3) латинских букв и цифр (т.е. [0-9A-Za-z]). Аргументами программы должны быть Имя входного файла Например program.exe target.bin Программа должна использовать все доступные вычислительные ресурсы компьютера.
Атакуемый файл имеет следующий формат:
- 8 байт initial value для Triple DES
- Зашифрованный блок
- 32 байта SHA256 от оригинального текста
Данные зашифрованы при помощи Triple DES (EDE/DED) с начальным значением из пункта 1, режим CBC. Оригинальный текст читается блоками по 16 байт, шифруется и записывается в выходной файл. Если размер входного блока меньше 16, то его размер выравнивается до кратности 16 пробелами. Ключ шифрования TripleDES - это MD5 digest от пароля.
Для проверки алгоритма можно использовать приложенный файл test.bin для которого должен подходить пароль abc.
Мы ожидаем найденный пароль и обращаем внимание на код.
Для компилирования решения была использована библиотека Crypto++® Library 5.6.5. (https://www.cryptopp.com/cryptopp565.zip)