Этот сайт — моя персональная записная книжка. Интересны мне, по большей части, программирование, история и события из моей жизни.

Фото кота в NanoKVM

Вчера, пока укладывал дочку, подыскивал почитать что-нибудь интересное на «Хабре» и набрёл на статью «Как я обнаружил скрытый микрофон в китайском NanoKVM». Микрофон там действительно есть и с него даже можно писать звук, но используют ли его китайцы в слежке,.. в общем, тут как в анекдоте — опять эта проклятая неизвестность!

Саму статью я читал невнимательно, потому что в самом её начале написано следующее:

В самом первом анализе безопасности было выявлено множество уязвимостей... и сделаны довольно неожиданные открытия. Например, исследователь безопасности даже обнаружил в прошивке устройства фотографию кота.

Как я уже не раз писал — у меня такое бывает, что меня что-то начинает интересовать с такой силой, что остальное уходит на второй план. Вот и тут меня сильно заинтересовал кот. Что там за кот-то? Где на него посмотреть?

В интернете есть только миниатюра, поэтому пришлось вынуть фотографию самостоятельно. Я думал, там дел минут на пять, но возникли неожиданные препятствия.

На «Гитхабе» можно скачать бинарную прошивку, в которой, по идее, где-то лежит кот, но внутри файловая система EXT4, а она у меня на «Маке» не монтируется. Можно было бы смонтировать её на «Линуксе», — на работе их завались, но тут, как на зло, у меня почему-то перестал соединяться рабочий ВПН.

И тут я вспомнил, что Дима «DiBR» Радищев, один из блогеров первой волны, которого я читаю до сих пор, писал когда-то утилиту, которая вынимала джпеги из бинарного файла — он просто искал стандартный заголовок и сохранял сколько-то там сотен килобайт после него.

Ну я и накидал по-быстрому небольшой код, которые делает примерно то же самое и нашёл все джпеги прямо внутри прошивки:

// Это не код для использования в серьёзном продукте, а одноразовая утилита
ini_set('memory_limit', -1);

const SIZE = 256_000;

$bin = file_get_contents($argv[1]);
$len = filesize($argv[1]);

for ($n = $offset = 0; $offset < $len; $offset += 2) {
    $offset = strpos($bin, "\xFF\xD8", $offset);
    if ($offset === false) {
        break;
    }

    $name = sprintf("%d.jpg", ++$n);

    file_put_contents($name, substr($bin, $offset, SIZE));
    @getimagesize($name) or unlink($name);
}

В общем, вот вам никому, кроме меня, не интересный кот. Я надеялся, что это некая «пасхалка», но нет — поискал его в интернете, оказалось, что это какой-то стандартный кот из клипарта. Здесь не на что смотреть, расходимся.

Фотография кота, найденная внутри бинарной прошивки NanoKVM
3 комментария
hsh 1 мес

Микрофон там действительно есть и с него даже можно писать звук, но используют ли его китайцы в слежке,..

кто-то в ютубе говорил что производитель этого квм делает всякие девелопмент борды, они взяли свой девелопмент борд и сделали на нём квм. там просто был микрофон изначально, не убирать же его.

Евгений Степанищев 1 мес

Да, возможно просто проморгали, он копеечный, а неизвестный бинарный файл, который грузился в NanoKVM с китайских серверов делал что-то другое.

hsh 1 мес

Да, возможно просто проморгали, он копеечный,

скорее просто оставили чтобы не делать ещё одну модель платы

Ayrat 1 мес

про микрофон в комментах на хабре пишут что он описан в документации, то есть совсем не скрытый.
А кота я ждал тоже в посте на Хабре, расстроился что не увидел. Спасибо!

Евгений Степанищев 1 мес

В комментах писали, что теперь описан, а на момент написания исследования этих данных не было.