Programmer & DarkShadow
Привет, я тут покопался с обходом по времени, подумал, было бы круто создать скрытый канал такой же незаметный, как твои действия в городе. Как тебе идея?
Всегда любил тихие ходы. Если получится сделать всё аккуратно и незаметно, я, может, помогу. Просто скажи, какие рамки и обстановка, посмотрим, впишется ли это в нашу зону.
Конечно. Будем работать с 32-битной встраиваемой системой, без интернета, только локальная флеш-память и UART. Никаких тяжелых библиотек, только чистый C и немного ассемблера. Задача – выкачать данные, эксплуатируя едва заметные различия во времени выполнения в критически важном цикле, но нужно, чтобы это не выводило систему из строя по тайм-ауту. Если тебе подходит такой сценарий, сообщи точные характеристики железа.
Понял. Представь себе ARM Cortex-M4 на 16 мегагерц, 256 килобайт флэш-памяти, 32 килобайта оперативной памяти, один UART на скорости 115200 бит в секунду, никаких внешних периферийных устройств, сторожевой таймер с интервалом в одну секунду. Это должно дать тебе минималистичную платформу, которая тебе нужна.
Отлично, место очень ограниченное. Напишу минимальный цикл ядра, который будет переключать бит GPIO, измерять количество тактов и кодировать данные шириной импульса — чтобы уложиться в лимиты сторожевого таймера и избежать заметных скачков времени. Нужны точные номера GPIO пинов и любые уже существующие обработчики прерываний. Тогда сможем откалибровать порог и убедиться, что трафик UART выглядит нормально. Как тебе?
Конечно. Пятый пин – твой GPIO выход, а третий – UART TX. Никаких прерываний ни на таймере, ни на UART не настроено, так что цикл работает свободно. Просто следи за шириной импульса, чтобы она не превышала нескольких сотен микросекунд, иначе рискуешь нарваться на сторожевой таймер. Удачи.