Skip to content

Latest commit

 

History

History

oldschool

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Reverse | Oldschool

Информация

Как известно, всё боится времени.

В архивных записях мы нашли старый алгоритм, который был изобретён, кажется, ещё до создания интернета.

Тогда этот алгоритм при правильном использовании считался достаточно безопасным.

А сейчас?

Описание

Бинарник открывает файл с флагом, шифрует его и записывает результат в новый файл.

Решение

Шифрование в бинарнике работает следующим образом:

  1. используется алгоритм LFSR, полином и состояние взяты из /dev/urandom и неизвестны
  2. LFSR последовательно генерирует байты
  3. эти байты с помощью операции XOR преобразуют флаг
  4. преобразованный массив выводится в файл

Нужно заметить, что буфер для флага имеет большой размер, а перед использованием зануляется функцией memset. Это значит, что из последних значений буфера мы можем достать последнее состояние генератора. Зная состояние, можно использовать алгоритм Берлекэмпа-Мэсси, чтобы восстановить полином.

Затем, зная полином и состояние, можно полностью восстановить байты, сгенерированные LFSR, и обратить шифрование.

Пример решения

Флаг

Cup{g0Od_j08_LFSR_h4S_bE3N_cr4cK3D}