Search
Write a publication
Pull to refresh
51
0.9

Embedded HW & SW. Больше HW.

Send message

Использование подсказок, включаемых в исходный код, помогающих GCC выявлять случаи переполнения буфера

Reading time11 min
Views5.1K
Ошибки, связанные с доступом к областям памяти, которые находятся за пределами допустимого адресного пространства (out-of-bounds memory access), в 2021 году всё ещё пребывают в списке самых опасных уязвимостей ПО CWE Top 25. Известно, что ошибочные операции записи данных (out-of-bounds write, CWE-787) с двенадцатого места, которое они занимали в 2019 году, перешли в 2020 году на второе. А неправильные операции чтения данных (out-of-bounds read, CWE-125) в тех же временных пределах сменили пятое место на четвёртое.



Понимание важности раннего выявления ошибок, приводящих к вышеозначенным проблемам, привело к тому, что в свежих релизах компиляторов GNU Compiler Collection (GCC) была значительно улучшена возможность детектирования подобных ошибок. Речь идёт об использовании ключей для проведения проверок и вывода предупреждений наподобие -Warray-bounds, -Wformat-overflow, -Wstringop-overflow и (самая свежая возможность, появившаяся в GCC 11) -Wstringop-overread. Но всем этим проверкам свойственно одно и то же ограничение, связанное с тем, что система может обнаруживать проблемные ситуации лишь в пределах отдельных функций. Получается, что, за исключением анализа небольшого набора встроенных в компилятор функций, вроде memcpy(), проверка прекращается на границе вызова функции. То есть, например, если буфер, объявленный в функции A, переполняется в функции B, вызванной из функции A, компилятор, если функция B не встроена в функцию A, на эту проблему не реагирует.

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

Zynq 7000. Собираем Linux для платы QMtech

Reading time21 min
Views33K

В этой статье я решил сделать небольшое отступление от общей линии повествования и зарулю на дорогу Linux. За то непродолжительное время, что я работаю с Zynq 7000, в тематических чатах я видел много вопросов насчет того, как запустить Linux на отладке. Я в общем-то, недолго думая, сел проштудировал документацию, примеры и завёл его своими руками под ту плату, что у меня есть в распоряжении. После этого я решил обобщить свои знания по этому вопросу и описать процедуру сборки, подготовки загрузочного образа Linux, который включает в себя U-boot, Device Tree Source, RootFS, и само ядро Linux. В дополнение к этому, я решил немного усложнить задачу и выяснил, как можно поморгать светодиодом подключенным к PL-части устройства из пространства пользователя Linux.

Обо всём этом я написал в этой статье. Всем интересующимся - добро пожаловать под кат.

Читать далее

Необычный дуалбут: ноутбук с «двойным дном»

Reading time15 min
Views86K

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности

Защита секретов с помощью технологии SRAM PUF

Reading time14 min
Views4.4K

Команда Racoon Security постоянно находится в поиске новых технологий для применения в исследованиях и контрактном производстве. В очередной раз просматривая список докладов прошедших выставок Embedded World 2019 и Embedded World 2020, мы наткнулись на документ от NXP Semiconductors - Extend MCU Security Capabilities Beyond Trusted Execution with Hardware Crypto Acceleration and Asset Protection. Так мы узнали про технологию SRAM PUF, в основе которой лежит так называемая Физически неклонируемая функция (Physically unclonable function) на основе состояния памяти. Мы решили разобраться, как работает эта технология, есть ли у нее недостатки и как ее можно применить в наших разработках.

Читать далее

Snoop Project невероятный инструмент интернет разведки, которого пользователи рунета ждали так долго — доступен

Reading time5 min
Views84K
image

На Github-e выложен OSINT-инструмент, заточенный (в том числе) для поиска %username по СНГ локации


【Статья обновлена】в связи с развитием функционала Snoop Project.
Если вам до боли знаком такой софт, как namechk или spiderfoot, то «Snoop Project» вас явно порадует, он даёт «им» фору вместе взятым и это не желтый заголовок «Статья вечерняя» — это реальная «forensic-работа» по цифровым следам в киберпространстве…
Читать дальше →

Исследование операций

Reading time20 min
Views16K

При функционировании больших сложно устроенных систем в них, как правило, протекают многообразные процессы, сущность которых состоит в различного рода преобразованиях физико-химической субстанции из сырья в конечный продукт, поставляемый на рынок. Наряду с материальной субстанцией в производственных процессах широко используется информация управленческая и технологическая. Когда-то не в столь давние времена достаточно сложным механизмом, системой считался часовой механизм, реализуемый зацеплением шестеренок. Механизм преобразовывал временную субстанцию в информацию. Выходным продуктом такого механизма была информация - сведения о текущем временном моменте, к точности которой уже в те времена предъявлялись жесткие требования. Все процессы сложных производственных систем также, подобно механизму часов, постоянно должны быть в "зацеплении", тесно взаимодействовать, протекать синхронно и согласованно. Главным требованием к такой системе с шестеренками была точность отсчетов временных промежутков. Точность нужна везде от водных, наземных, воздушных транспортных систем до спутниковых космических, атомных энергетических станций. Исследуя операции следует помнить об истории их появления и проявления в различных отраслях хозяйства и производства.

Читать далее

Старинное искусство номографии

Reading time5 min
Views12K

Впервые увидел этот странный график в лаборатории университета. Невзрачный листок, ксерокопированный из старой книги, был наклеен на стену рядом с роторным испарителем. Листок, очевидно, использовали часто, но берегли, словно в нём содержалось какое-то древнее могучее заклинание… Впоследствии, схожего рода графики попадались мне и в других лабораториях, словно составляли неотъемлемую часть перегонки с вакуумом. Затем похожие рисунки встречались на страницах разной технической литературы. Их называли номограммы. Научиться ими пользоваться оказалось до смешного просто, но кто и как их в своё время сделал — оставалось загадкой.


Как выглядят номограммы и как они работают


Номограмма, что часто используется при перегонке с вакуумом приведена на рисунке ниже.


Допустим, вы провели реакцию в растворителе, а теперь собираетесь его удалить (выпарить), чтобы собрать продукт реакции. Растворитель улетучивается изнурительно медленно, а чтобы ускорить процесс, вы решаете его нагреть, но вот беда — греть раствор нежелательно, так как продукт реакции от нагревания может испортиться. Создав пониженное давление, вы уменьшите температуру кипения растворителя и сумеете его отделить не причинив вреда растворенному в нем веществу. При нормальном атмосферном давлении 760 мм ртутного столба вода кипит при 100 С, однако, при давлении 40 мм кипит уже при 34 С.

Читать дальше →

Антирекламный щит рядового пользователя: Яндекс без дзена, YouTube без рекламы, Хабр без баннера

Reading time7 min
Views140K

Контроль над содержимым web должен принадлежать в т.ч. рядовому пользователю, а не только маркетологам. Юзер сам в состоянии определять, что для него является пагубной рекламой, а что полезным контентом. Если пользователь считает, что новости или дзен Яндекса - это своего рода реклама, то он может ограничить себя от „вредоносного для него контента“ совершенно законно в „касание“ и без красноглазия. Решение — под катом.

Под кат

Мелкая доработка прошивки кнопочного телефона на платформе RDA8826 (SC6533, MIPS): отключаем Funbox, взламываем игры

Reading time12 min
Views58K

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

Купил я телефон Inoi 101: дешевый, но функционально достойный даже на фоне более дорогих моделей. Всё бы хорошо, если бы не нежелательная функциональность, присущая большинству недорогих звонилок:
    * Пробные игры с покупкой полной версии через СМС, причём состояние покупки сбрасывается при полном сбросе устройства;
    * Встроенное меню СМС-подписок "Funbox": гороскопы, анекдоты, новости, прочая платная ерунда.

Попробуем устранить недостатки путём анализа и модификации прошивки.

Читать далее

Новый кризис воспроизводимости в науке: чем сомнительней результаты, тем чаще их цитируют

Reading time4 min
Views9.6K

Открытия, сделанные в исследованиях, которые невозможно подтвердить в повторных экспериментах, цитируются в 153 раза чаще из-за интересности исследований.

Согласно новому исследованию Калифорнийского университета в Сан-Диего и Школы менеджмента Рэди, статьи в ведущих психологических, экономических и естественнонаучных журналах, которые невозможно воспроизвести, часто оказываются самыми цитируемыми статьями в научных исследованиях. Невозможность их воспроизведения обычно означает меньшую вероятность их истинности.
Читать дальше →

Проводим нагрузочное тестирование скоростных USB-библиотек для STM32F103C8T6

Reading time10 min
Views4.8K
В предыдущей статье я показывал предельную скорость шины USB у микроконтроллера STM32F103 со штатной библиотекой MiddleWare. В комментариях мне показали сразу две самодельных библиотеки, выжимающих из USB FS все соки. Но автор одной из библиотек высказал мысль, что быстро-то они работают быстро, а насколько надёжно – не ясно. Он считал, что было бы полезно провести нагрузочное тестирование с какими-то полезными данными. Только если они не потеряются и не исказятся, можно будет сказать, что библиотеки имеют право на жизнь.



Само собой, я еле дождался выходных, чтобы провести проверки. Давайте рассмотрим результаты испытаний. А чтобы было интересней, попутно рассмотрим технологию отображения переменных «на лету», без остановки процессорного ядра. Ну, и технологию визуальной отладки elf-файлов, собранных пакетными компиляторами.
Читать дальше →

Как получить температуру в -50°C (и ниже!) на дому или вихревая трубка Ранка-Хилша «под микроскопом»

Reading time13 min
Views74K

А что, если я скажу Вам, что можно «подуть» в Т-образную трубку — и с двух других её концов пойдет воздух «сильно минусовой» и «сильно плюсовой» температуры? Похоже на какой-то бред, не так ли? Тем не менее, такое замечательное устройство вполне себе существует и известно очень давно. Ученые до сих пор расходятся во мнениях относительно того, «как же оно всё-таки работает?!». Предлагаем и Вам ознакомиться с этим любопытным эффектом…

Программные зонды Elecard Boro – Мониторинг IPTV

Reading time3 min
Views5K


Boro реализует мониторинг и контроль качества потоков прямых трансляций (IPTV). Проект разработан компанией Elecard, основанной в России. Среди их клиентов и партнёров такие корпорации, как Intel Corporation, Netflix, Huawei, Cisco Systems, Samsung и многие другие. В этой статье будут рассмотрены главные особенности проекта и описан механизм его работы.
Читать дальше →

Лабораторный стенд для исследования характеристик проволочных антенн на основе NanoVNA-F V2

Reading time7 min
Views14K

Недавно приобрел я себе на Алиэкспресс векторный анализатор цепей портативный S-A-A-2 NanoVNA-F V2, тестер HF VHF [1]. Разработан этот прибор в Китае – ссылка на разработчика и описание прибора [2]. Инструкция (англ. язык) [3]. И еще одна инструкция [4].

Прибор удобен своей портативностью и возможностью измерять параметры цепей в диапазоне частот от 50 кГц до 3 ГГц, в частности S11 и S21. Удобство состоит еще в том, что прибор можно подключить к компьютеру (ноутбуку, планшету) по USB и на компьютере произвести анализ полученных измерений. Обнаружил, что в районе выключателя питания можно увидеть зеленый светодиод внутри корпуса, не выведенный наружу, он свечением индицирует режим измерения, отсутствие свечения режим индикации, при отсутствии качания частоты светодиод погашен.

Для начала мной были проведены измерения КСВ всех имеющихся у меня в наличии проволочных антенн. Результаты обнадежили.

После, я обнаружил в конце инструкции, что этим прибором можно управлять по виртуальному COM порту, подключив к компьютеру через USB type3 кабель (из комплекта) и используя любую терминальную программу со стандартными настройками и скоростью обмена 115200. Параметры подключения port='COM3' (у меня так определился в компьютере), baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=0.05, xonxoff=False, rtscts=False, dsrdtr=False.

Система команд прибора приведена в таблице 1. Результаты получены экспериментально, путем анализа описаний других аналогичных приборов [5] на приборе с указанной прошивкой при помощи бесплатной терминальной программы YAT – [6].

Читать далее

M/o/Vfuscator2, безумный компилятор

Reading time4 min
Views8K


Однажды один умный чувак (Кристофер Домас) читал статью другого умного чувака (Стивена Долана) про удивительную особенность архитектуры x86. Стивен ругал её за избыточность и утверждал, что набор инструкций можно сократить до одной лишь mov, потому что она Тюринг-полная. Если бы Стивен не был таким умным, в его словах можно было бы усомниться, но у Кристофера загорелись глаза: проработав двадцать лет с x86, он не слышал ни о чём подобном, и ему страшно захотелось написать компилятор, который бы переводил весь код в наборы одних лишь mov-инструкций. Так родились M/o/Vfuscator и M/o/Vfuscator2, наглядно иллюстрирующие ненормальное программирование.
Читать дальше →

Реверс-инжиниринг неизвестного микроконтроллера

Reading time44 min
Views16K


Сложная завязка


Предыстория...


В рамках моей работы над реверс-инжинирингом электронных eInk-ценников мне довелось столкнуться с интересной проблемой. Конкретная компания (Samsung Electro Mechanics/SoluM) перешла с использования сторонних чипов, происхождение которых мне удалось выявить (Marvell 88MZ100) на новый чип, который стала применять со своими ценниками следующего поколения.

Казалось, что это их собственный чип, разработанный силами компании именно для этой цели. Браться за реверс-инжиниринг такой штуки – дохлый номер. Друг дал мне несколько ценников с такими чипами – повозиться. Оказалось, они бывают двух типов: одни с сегментированным дисплеем на электронных чернилах, а другие – с обычным графическим дисплеем на электронных чернилах. Главный чип в обеих моделях один и тот же, поэтому первым делом я взялся за устройство с сегментированным дисплеем, поскольку оно проще, и на его примере легче разобраться с неизвестной системой. Было не вполне ясно, с чего начать, но, конечно же, как раз такие задачки всегда самые интересные! 

Исследование



Глупо пытаться решить кроссворд, не прочитав вопросы к нему. Столь же глупо браться за реверс-инжиниринг устройства, не собрав сперва всю информацию, которая о нем уже имеется. Итак, что нам исходно известно? Протокол беспроводной передачи данных, вероятно, такой как обычно, поскольку ни одна компания не захочет мигрировать на новый либо поддерживать для своих клиентов сразу два протокола, не спеша выполняя миграцию. Старый протокол был ZigBee-подобным на 2,4 Ггц, поэтому новый, вероятно, такой же. Вот фото платы с обеих сторон.

Читать дальше →

Наблюдение за сотовыми вышками

Reading time4 min
Views10K
Одна из моих любимых книг — «High Performance Browser Networking» Ильи Григорика. Помимо множества полезных советов, в книге есть множество увлекательных историй из реальной жизни.

image«46% потребления батареи для передачи 0,2% информации от общего числа байтов.

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

Однако после передачи музыки, приложение будет проводить периодический анализ аудитории, отправляя прерывистые аналитические запросы каждые 60 секунд. Чистый эффект? На запросы аналитики приходилось 0,2% от общего числа переданных байтов и 46% от общего энергопотребления приложения!»

— Илья Григорик, High Performance Browser Networking

Илья не торопится, чтобы подробно изложить свою точку зрения. Чтобы просветить читателей на тему времени автономной работы мобильного телефона, он посвящает целую главу подробному описанию радиомодемов GSM, UMTS и LTE. Удивительно осознавать, что проблемы на одном уровне могут найти свои корни несколькими уровнями ниже.

image

Поездка от Саннивейла до центра Маунтин-Вью.

Изучая весь стек, High Performance Browser Networking делает больше, чем просто предоставляет факты. Он защищает философию.

Хорошие разработчики знают, как все работает.
Великие разработчики знают, почему все работает.

— Стив Содерс, High Performance Browser Networking, Предисловие

Читать дальше →

Теплое ламповое интернет-радио

Reading time10 min
Views38K

Это самая долгосрочная поделка в моей жизни. От идеи до конечной реализации, так чтобы ей можно было пользоваться, прошло 12 лет! За это время произошло колоссальное количество событий: переезды, рождения, смерти, но идея была со мной и ни смотря ни на что, я её доделал. И хочу рассказать о путях, терниях, чаяниях, которые сопровождали данную поделку и что из этого в результате получилось.

Пришло время и тебе встать на защиту Sci-hub

Reading time4 min
Views59K
image


  • Быстрый старт спасения Sci-Hub: загрузите 1 случайный торрент (100 ГБ) из коллекции scimag и скачайте его. Оставайтесь на раздаче навсегда.
  • Трекер успеха миссии, спасибо phillm
  • Участвуйте в проектах Sci-Hub с открытым исходным кодом: freereadorg/awesome-libgen
  • Присоединяйтесь к /r/scihub, чтобы оставаться в курсе


Спасательная миссия для Sci-Hub и Open Science


Elsevier и USDOJ объявили войну Sci-Hub и Open Science. Эпоха Sci-Hub и Александры, сражающихся в одиночку, должна закончиться. Мы должны встать на её сторону.

7 мая Александра Элбакян из Sci-Hub сообщила, что ФБР прослушивает ее аккаунты более двух лет. Эта новость появилась после того, как Twitter заставил замолчать официальный аккаунт Sci_Hub в Твиттере, потому что индийские ученые организовались против своего министерства и иска Elsevier.

Сам Sci-Hub в настоящее время заморожен и не загружал никаких новых статей с декабря 2020 года. Эта спасательная миссия сосредоточена на поддержке раздач (seeding) коллекции статей, чтобы подготовиться к потенциальному закрытию Sci-Hub.

Александра Элбакян из Sci-Hub, книжный воитель Library Genesis, Аарон Шварц и бесчисленное множество других неназванных боролись за то, чтобы освободить науку от хватки коммерческих издателей. Сегодня они делают это скрытно, в одиночку, без ведома, опасаясь тюремного заключения, и даже сейчас их прослушивает ФБР. Они жертвуют всем ради одного видения: Open Science.
Читать дальше →

Как получить давление в 100 000 атмосфер?

Reading time16 min
Views57K

Многим любителям доступен достаточно простой способ получения поистине потрясающих давлений. Зачем это нужно и как это можно использовать — в этой статье.

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

Information

Rating
2,787-th
Location
Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, Hardware Engineer