Строка.zip
64.5 KB
#misc #network #coding #tctf2025
Капибегущая строка
Для начала надо экспортировать данные из wireshark в csv файл. Кода у меня нет, можно сделать чрез файл-Export Packet Dissections но там будут лишние строки и у меня код перестал работать. Потом надо написать код преобразующий полученные данные в матрицу, чтобы потом анимировать бегущую строку. Краткое пояснение логики "преобразования матрицы" (функция create_address_mapping)
Под "преобразованием матрицы" здесь понимается процесс отображения одномерного набора адресов устройств (например, 0x0100, 0x0101, ..., 0x0140) на двумерную сетку (матрицу) координат (строка, столбец) для визуализации.
Логика этого преобразования следующая:
Получение и фильтрация адресов: Функция получает на вход множество (set) всех уникальных адресов назначения, найденных в CSV-файле. Сначала отбираются только корректные шестнадцатеричные адреса (начинающиеся с 0x).
Числовое представление и сортировка: Отобранные адреса (которые являются строками) преобразуются в целые числа. Это критически важно для правильной сортировки. Если сортировать строки, то "0x10a" может оказаться раньше "0x109". После преобразования в числа адреса сортируются по возрастанию. Теперь у нас есть упорядоченный список адресов от самого младшего к самому старшему.
Итерация и вычисление координат: Скрипт проходит по этому отсортированному списку адресов. Для каждого адреса известен его порядковый номер (индекс) в этом списке (начиная с 0). Этот индекс используется для вычисления координат на сетке:
Номер строки (row) вычисляется как результат целочисленного деления (//) индекса на количество столбцов в сетке (GRID_COLS). Это показывает, сколько полных строк уже "заполнено" адресами перед текущим.
Номер столбца (col) вычисляется как остаток от деления (%) индекса на количество столбцов в сетке (GRID_COLS). Это показывает позицию адреса внутри его строки.
Предположение о порядке: Этот метод расчета координат предполагает так называемый "row-major order" (построчный порядок). Это значит, что сетка заполняется адресами слева направо, сверху вниз, сначала полностью заполняется первая строка, потом вторая и так далее.
Проверка границ: Скрипт проверяет, не превышает ли вычисленный номер строки (row) максимально допустимый (GRID_ROWS - 1). Если превышает, выводится предупреждение, так как адресов оказалось больше, чем ячеек в заданной сетке.
Создание карты: Результатом является словарь (mapping), где каждому исходному шестнадцатеричному адресу (строке) сопоставляется кортеж с его вычисленными координатами (строка, столбец). Эта карта затем используется функцией create_animation для отрисовки пикселя каждого устройства в нужном месте кадра.
Пример:
Допустим, GRID_COLS = 13.
Адрес с index = 0 -> row = 0 // 13 = 0, col = 0 % 13 = 0 -> Координаты (0, 0)
Адрес с index = 12 -> row = 12 // 13 = 0, col = 12 % 13 = 12 -> Координаты (0, 12)
Адрес с index = 13 -> row = 13 // 13 = 1, col = 13 % 13 = 0 -> Координаты (1, 0) (переход на следующую строку)
Адрес с index = 26 -> row = 26 // 13 = 2, col = 26 % 13 = 0 -> Координаты (2, 0)
Таким образом, упорядоченный список адресов "разворачивается" в двумерную сетку заданного размера
Автор: @K1rlII
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибегущая строка
Для начала надо экспортировать данные из wireshark в csv файл. Кода у меня нет, можно сделать чрез файл-Export Packet Dissections но там будут лишние строки и у меня код перестал работать. Потом надо написать код преобразующий полученные данные в матрицу, чтобы потом анимировать бегущую строку. Краткое пояснение логики "преобразования матрицы" (функция create_address_mapping)
Под "преобразованием матрицы" здесь понимается процесс отображения одномерного набора адресов устройств (например, 0x0100, 0x0101, ..., 0x0140) на двумерную сетку (матрицу) координат (строка, столбец) для визуализации.
Логика этого преобразования следующая:
Получение и фильтрация адресов: Функция получает на вход множество (set) всех уникальных адресов назначения, найденных в CSV-файле. Сначала отбираются только корректные шестнадцатеричные адреса (начинающиеся с 0x).
Числовое представление и сортировка: Отобранные адреса (которые являются строками) преобразуются в целые числа. Это критически важно для правильной сортировки. Если сортировать строки, то "0x10a" может оказаться раньше "0x109". После преобразования в числа адреса сортируются по возрастанию. Теперь у нас есть упорядоченный список адресов от самого младшего к самому старшему.
Итерация и вычисление координат: Скрипт проходит по этому отсортированному списку адресов. Для каждого адреса известен его порядковый номер (индекс) в этом списке (начиная с 0). Этот индекс используется для вычисления координат на сетке:
Номер строки (row) вычисляется как результат целочисленного деления (//) индекса на количество столбцов в сетке (GRID_COLS). Это показывает, сколько полных строк уже "заполнено" адресами перед текущим.
Номер столбца (col) вычисляется как остаток от деления (%) индекса на количество столбцов в сетке (GRID_COLS). Это показывает позицию адреса внутри его строки.
Предположение о порядке: Этот метод расчета координат предполагает так называемый "row-major order" (построчный порядок). Это значит, что сетка заполняется адресами слева направо, сверху вниз, сначала полностью заполняется первая строка, потом вторая и так далее.
Проверка границ: Скрипт проверяет, не превышает ли вычисленный номер строки (row) максимально допустимый (GRID_ROWS - 1). Если превышает, выводится предупреждение, так как адресов оказалось больше, чем ячеек в заданной сетке.
Создание карты: Результатом является словарь (mapping), где каждому исходному шестнадцатеричному адресу (строке) сопоставляется кортеж с его вычисленными координатами (строка, столбец). Эта карта затем используется функцией create_animation для отрисовки пикселя каждого устройства в нужном месте кадра.
Пример:
Допустим, GRID_COLS = 13.
Адрес с index = 0 -> row = 0 // 13 = 0, col = 0 % 13 = 0 -> Координаты (0, 0)
Адрес с index = 12 -> row = 12 // 13 = 0, col = 12 % 13 = 12 -> Координаты (0, 12)
Адрес с index = 13 -> row = 13 // 13 = 1, col = 13 % 13 = 0 -> Координаты (1, 0) (переход на следующую строку)
Адрес с index = 26 -> row = 26 // 13 = 2, col = 26 % 13 = 0 -> Координаты (2, 0)
Таким образом, упорядоченный список адресов "разворачивается" в двумерную сетку заданного размера
Автор: @K1rlII
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5⚡1❤1
IMG_20250427_061704_107.jpg
341.5 KB
#crypto #coding #tctf2025
Капибьюти
Суть задания, расшифровать купон, который зашифровал креативный маркетолог.
В задании дается картинка со множеством изображений и одна строка с надписью "Салон капибьюти спа", которая отсылает нас к ключу от шифра, однако полностью ключа нет, придется додумывать самому, то есть та буква, что находится над картинкой ей и присваивается.
Таким образом расставив все буквы, соответствующие картинкам, и додумав по смыслу слова, получим сообщение, введя которое на сайте, получим флаг.
Автор: @MRX_120
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибьюти
Суть задания, расшифровать купон, который зашифровал креативный маркетолог.
В задании дается картинка со множеством изображений и одна строка с надписью "Салон капибьюти спа", которая отсылает нас к ключу от шифра, однако полностью ключа нет, придется додумывать самому, то есть та буква, что находится над картинкой ей и присваивается.
Таким образом расставив все буквы, соответствующие картинкам, и додумав по смыслу слова, получим сообщение, введя которое на сайте, получим флаг.
Автор: @MRX_120
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Непослушный мотоцикл.pdf
564.8 KB
#Hard #Coding #Reverse #Network #alfactf2025
IT-лига
Непослушный мотоциклист от @graalogosh
💬 Канал & Чат & Бот с тасками| 📺 RUTUBE | 📺 YouTube
IT-лига
Непослушный мотоциклист от @graalogosh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12 4
Подборка райтапов с прошедшего AlfaCTF:
Задания кстати все еще доступны
https://alfactf.ru/tasks
🛡 Защита от спама
(https://t.me/writeup_ctf/784)
#Easy #Infra #Web
🎶 Звуки ностальгии
(https://t.me/writeup_ctf/783)
#Easy #Misc #OSINT
🌊 Цунами дедлайнов
(https://t.me/writeup_ctf/793)
#Easy #Web
🌈🎛 Кислотный ретровейв
(https://t.me/writeup_ctf/786)
#Easy #Web
🌴💰 Пальма с биткоинами
(https://t.me/writeup_ctf/785)
#Easy #Web #JS
👨💻🏖 Разработчик на пляже
(https://t.me/writeup_ctf/790)
#Medium #Infra #Dev #Pentest
🎵🌀 Вихрь рик-ролла
(https://t.me/writeup_ctf/789)
#Medium #Web #Logic
🐺🌊 Шакализация волны
(https://t.me/writeup_ctf/788)
#Medium #Web #OAuth #Client
📹🚁 Десант блогеров
(https://t.me/writeup_ctf/787)
#Medium #Web #Logic
🌇🛠 Фиксы в лучах заката
(https://t.me/writeup_ctf/792)
#Hard #Forensics #Linux #Infra #LPE
🥒😈 Дикий огурец
(https://t.me/writeup_ctf/791)
#Hard #Pwn #Python
🏍⚡️ Непослушный мотоциклист
(https://t.me/writeup_ctf/795)
#Hard #Coding #Reverse #Network
🧱🔙 Возвращение стены
(https://t.me/writeup_ctf/794)
#Hard #Web #Client
💬 Канал & Чат & Бот с тасками| 📺 RUTUBE | 📺 YouTube
🛡 Защита от спама
(https://t.me/writeup_ctf/784)
#Easy #Infra #Web
🎶 Звуки ностальгии
(https://t.me/writeup_ctf/783)
#Easy #Misc #OSINT
🌊 Цунами дедлайнов
(https://t.me/writeup_ctf/793)
#Easy #Web
🌈🎛 Кислотный ретровейв
(https://t.me/writeup_ctf/786)
#Easy #Web
🌴💰 Пальма с биткоинами
(https://t.me/writeup_ctf/785)
#Easy #Web #JS
👨💻🏖 Разработчик на пляже
(https://t.me/writeup_ctf/790)
#Medium #Infra #Dev #Pentest
🎵🌀 Вихрь рик-ролла
(https://t.me/writeup_ctf/789)
#Medium #Web #Logic
🐺🌊 Шакализация волны
(https://t.me/writeup_ctf/788)
#Medium #Web #OAuth #Client
📹🚁 Десант блогеров
(https://t.me/writeup_ctf/787)
#Medium #Web #Logic
🌇🛠 Фиксы в лучах заката
(https://t.me/writeup_ctf/792)
#Hard #Forensics #Linux #Infra #LPE
🥒😈 Дикий огурец
(https://t.me/writeup_ctf/791)
#Hard #Pwn #Python
🏍⚡️ Непослушный мотоциклист
(https://t.me/writeup_ctf/795)
#Hard #Coding #Reverse #Network
🧱🔙 Возвращение стены
(https://t.me/writeup_ctf/794)
#Hard #Web #Client
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤3 3