Рубрика «ruvds_перевод»

Как уничтожить вашу ОС с помощью TAR - 1


Это короткая история о том, насколько опасной может оказаться обычная распаковка tar, и что можно сделать для минимизации или избежания связанных с ней рисков.

▍ Ошибка

Недавно я экспериментировал с установкой Void Linux через chroot методом XBPS. Для подготовки базовой системы Void Linux на моём хосте с Fedora Linux требовался XBPS Package Manager. Одним из вариантов было скачать архив статически собранных инструментов из официального репозитория. Я выбрал https://repo-default.voidlinux.org/static/xbps-static-latest.x86_64-musl.tar.xzЧитать полностью »

Как malloc сломала JPGLoader в Serenity, или как выиграть в лотерее - 1


Пару лет назад мне выпала возможность расследовать в SerenityOS интересный баг, связанный с декодированием изображений JPG, которые по какой-то причине при просмотре выглядели так, как вы видите выше.

Странно, не так ли? Похоже, будто просто перепутали RGB и BGR. При этом внесение в JPGLoader.cpp следующего изменения:

-   const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] };
+   const Color color { (u8)block.cr[pixel_index], (u8)block.cb[pixel_index], (u8)block.y[pixel_index] };
    context.bitmap->set_pixel(x, y, color);

приводит к корректному показу картинки. Вроде бы можно считать дело закрытым!

…Но нет. Возникает вопрос, почему вообще произошёл этот сбой?Читать полностью »

Реверс-инжиниринг умных часов - 1


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

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

Проблемная секунда - 1


Сегодня каждый может легко проверить текущее время множеством способов. У нас есть смартфоны, часы, компьютеры, ТВ, холодильники и так далее. Все знают, какой на дворе год, и что он означает. Мы разбираемся во временны́х зонах и знаем, что такое всемирное координированное время (UTC). Всё кажется таким тривиальным. Однако с точки зрения IT-систем здесь существует множество сюрпризов, вынуждающих нас сталкиваться с проблемами, которые возникают очень редко.

В различных IT-системах можно встретить множество нюансов, касающихся времени. Чаще всего они связаны с точностью его измерения и синхронизации между машинами в распределённых системах. В этой же статье я разберу одну странную ситуацию, которая за всю историю случалась лишь несколько раз.Читать полностью »

Разбираем устройство радарного датчика движения стоимостью $1 - 1


Недавно я приобрёл дешёвые микроволновые датчики движения RCWL-0516, отчасти с целью понять, как китайцы умудрились собрать радар стоимостью меньше доллара.

Заставить работать такой оказалось несложно. Я просто подключил контакт VIN к 5 вольтам, GND к земле и добавил блокировочный конденсатор на контакт 3V3. Когда в радиусе 5 метров происходит какое-то движение, контакт OUT на 3 секунды поднимает уровень напряжения до 3 В.

В общем, девайс работает, но как?

Начал я с того, что нашёл спецификацию для большой микросхемы SOIC-16. Оказывается, BISS0001 — это инфракрасный датчик движения? Как же он устроен? Читать полностью »

Как нормализовывать телефонные номера - 1


Замечали когда-нибудь, что все записывают телефонные номера по-разному? Некоторые пишут их через пробелы, другие через дефис, а кто-то использует скобки. Разные люди по-разному группируют цифры номеров в числа.

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

Моя первая встраиваемая система под управлением Linux - 1


В этой статье я задокументировал историю создания своей первой системы под управлением Linux. Здесь я расскажу, как собрал печатную плату под эту ОС, не имея какого-либо опыта работы с печатными платами в принципе.

Первая часть статьи может показаться не совсем по теме, но в ходе прочтения вы поймёте, что она также имеет отношение к основному тексту. В общем, рекомендую терпеливо прочесть всю историю.Читать полностью »

Как обстоят дела с HTTP-3 в сURL на середину 2024 года - 1


Пора в очередной раз проанализировать, в каком состоянии сейчас находится поддержка HTTP/3 в curl.

Думаю, ситуация с curl отражает положение дел во многих других HTTP-инструментах и библиотеках. HTTP/3 был и продолжает быть более сложным в плане развёртывания по сравнению с HTTP/2.Читать полностью »

Как я дерзко превратил свою RTX 4090 в eGPU - 1


Как-то вечером в прошлом январе я, наконец, решил разобраться с перегревом моего домашнего сервера. Так уж повелось: если вентиляторы в ПК издают слишком много шума, чем, как мне кажется, должны, я начинаю искать причину.

К тому же, RTX 4090 настолько толстая, что занимает на стандартной материнке 3 слота PCIe — а ещё ведь нужно пространство для полноценного обдува. В 2020 году я использовал эту же машину, которая достигала скорости в 11 миллионов IOPS и 66 ГБ/с на базе одного процессора AMD ThreadRipper. Однако, чтобы установить в неё RTX 4090, пришлось извлечь большинство SSD и (тоже горячую) сетевую карту Mellanox 200Gbe. В итоге значительная часть полезного оборудования оказалась не задействована… Долго терпеть я такое не смог и решил перейти к активным действиям.Читать полностью »

Возможно, микросервисы вам не нужны - 1


Писать эту статью было весело. Многие наверняка её захейтят, но …

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

Сегодня микросервисы очень популярны. Это прекрасный архитектурный стиль, который помогает масштабировать систему и саму организацию. Их используют многие успешные компании (Netflix, Spotify и прочие). Поэтому вполне нормально, что большинство организаций уже применяют или планируют начать применять этот стиль. Однако не все учитывают сопутствующие затраты.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js