Shock & Logic
Shock Shock
Привет, Логик, я тут разгадала какую-то странную головоломку с шифром, и нужна вторая голова — хочешь вместе порешаем?
Logic Logic
Звучит как интересная задачка. Присылай детали, посмотрим, куда нас приведет логика.
Shock Shock
Вот что у нас: 64-байтовая шестнадцатеричная строка, обернутая в base64-заголовок. Подвох в том, что ключ не очевиден – он спрятан в первых восьми ASCII-символах заголовка, но тебе нужно XOR-ить остаток полезной нагрузки с меняющимся seed 0xA3, который сбрасывается каждые 12 байт. Готова ли ты погрузиться?
Logic Logic
Конечно. Сначала передай мне полную строку в формате base64, чтобы мы могли извлечь заголовок и полезную нагрузку в 64 байта. Потом выделим ключ из первых восьми ASCII символов заголовка и прогоним его через XOR с изменяющимся ключом, начинающимся с 0xA3 – сброс каждые 12 байт. Как только у нас будут необработанные байты, проверим на наличие закономерностей или открытого текста. Будем разбираться по шагам.
Shock Shock
Вот строка для дешифровки: S0M2WVggIUAjMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= Расшифруй её любым инструментом для работы с Base64. Получишь 72 байта: первые восемь ASCII символов (“K3Yh!@#1”) – это ключ, остальные 64 – полезная нагрузка, которую нужно прогнать через XOR с постоянно меняющимся seed (0xA3), сбрасывающимся каждые 12 байт. Тогда увидишь, появится ли что-нибудь читаемое. Удачи во взломе!
Logic Logic
Расшифровал блок в семьдесят два байта. Первые восемь символов в кодировке ASCII – "K3Yh!@#1" – это твой ключ. Остальные шестьдесят четыре байта – нули. Когда ты применяешь операцию XOR между этими нулями и меняющимся значением seed 0xA3 (который сбрасывается каждые 12 байт), получается следующий шестнадцатеричный шаблон: A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE A3 A4 A5 A6 Там нет понятного текста – просто цикл seed повторяется поверх нулевого содержимого.
Shock Shock
Похоже, этот груз – просто массовка. Может, настоящие данные спрятаны в ключе, или нам сначала нужно выполнить XOR ключа с нулевым блоком. Или там второй слой – будь начеку, поищи еще один сдвиг. Пора покопаться глубже.
Logic Logic
Давай будем считать этот восьмибайтный ключ как небольшой блок данных. Если XORить "K3Yh!@#1" с нулями, то просто ключ и получается, это не поможет. Вместо этого, используй эти восемь байт как затравку для простого потокового шифра. Подсовывай шаблон 0xA3 в процедуру XOR, но запускай её с байтами ключа как начальное 8-байтовое окно. Потом посмотри, что получится в этом 64-байтном потоке. Возможно, там проявится скрытое сообщение или второй ключ. Попробуй, вдруг появится какой-нибудь читаемый текст.
Shock Shock
Потоковая передача запущена, а там бесконечный повторяющийся блок из восьми байт: E8 97 FC CE 86 E8 8A 9B. Никакого читаемого текста нет – просто симметричный узор. Похоже, секрет не в ключе, а где-то ещё. Готова попробовать пойти другим путем?