CTF. Курс молодого бойца. Начальные задания категории Crypto #3.

CTF. Курс молодого бойца. Начальные задания категории Crypto #3.

https://t.me/hacker_sanctuary

Данный пост будет носить практический характер. В нём мы рассмотрим задания начального уровня в категории Crypto. Данные задания часто встречаются в простых CTF'ах и иногда, как разминочные, в более крупных.

Задания будут взяты с известного сайта с различными задачами (CTF и не только) - https://www.root-me.org/

Будем решать задачи из категории: Cryptanalysis

Прямая ссылка: https://www.root-me.org/en/Challenges/Cryptanalysis/

Предыдущие задания из данной категории вы можете найти на канале.

Часть 1 - https://telegra.ph/CTF-Kurs-molodogo-bojca-Nachalnye-zadaniya-kategorii-Crypto-08-19

Часть 2 - https://telegra.ph/CTF-Kurs-molodogo-bojca-Nachalnye-zadaniya-kategorii-Crypto-2-09-01

Пример 1.

Решим задание "Pixel Madness".

Прямая ссылка на задание - https://www.root-me.org/en/Challenges/Cryptanalysis/Pixel-Madness-86

Читаем описание.

Данное задания сложно отнести к категории "Криптография", однако оно в ней находится, хотя больше похоже на стеганография.

Нам дана большая последовательность странных записей вида 0x3 + 1x1 ...

Сказано, что 0 - это цвет 0xffffff, а 1 - это цвет 0x000000. То есть белый и чёрный соответственно.

0 - белый

1 - чёрный

Запись 0x3 скорей всего означает что надо повторить 0 три раза ( то есть 3 белых пикселя) при этом записи даны не одной строчкой а разбиты на 12 строк, что скорее всего означает, что каждая строка является строкой пикселей и высота картинки будет 12 пикселей. Перебирать данную последовательно руками и рисовать каждый пиксель - можно, но это долго и бессмысленно.

Воспользуемся Python и библиотекой PIL для обработки и составления изображения.

Код получился довольно простой (исходник на гитхабе). Парсим строку, превращаем её в набор 0 и 1, потом обрабатываем каждую строчку и помещаем в массив пикселей соотв. цвета, после выводим изображение на экран.

Результат работы скрипта представлен выше. На картинке можно прочитать слово "SOLUTION" - это и есть ответ.

Задание решено.

Report Page