Pull to refresh
32
Karma
79.5
Rating

Техножрец Омниссии.

Сам себе сотовый оператор

Reading time 14 min
Views 61K
Timeweb Cloud corporate blog Development of communication systems *Network standards *Cellular communication
Tutorial
… Кроме типовых для журнала статей, там была статья за авторством некоего «DI HALT» про то, как из двух телефонов и микроконтроллера извлечь кучу лулзов. «Прикольный ник» — подумал мальчик Андрей и перелистнул страницу, ибо ниасилил. А за ней была статья того же автора про то, как скрестить флешку с мышкой. «А вот это нам под силу» — подумал мальчик и убил уже знакомую вам флешку банальной переполюсовкой. Но зато он понял, что электроника — это весело и почти безопасно. — с просторов



Приветствую всех!

Многие из вас наверняка слышали про OsmocomBB. Однако каких-то исчерпывающих мануалов по запуску почему-то крайне мало. Итак, в ходе данной статьи постараемся максимально простым образом запустить собственную базовую станцию из доступных комплектующих. Постараемся разобраться, как сделать так, чтобы оно точно заработало.
Читать дальше →
Total votes 340: ↑340 and ↓0 +340
Comments 135

Умные указатели в современном C++ с точки зрения новичка

Reading time 10 min
Views 12K
Издательский дом «Питер» corporate blog Programming *Designing and refactoring *ООP *
Translation

Новые (?) пути управления памятью


Указатели в языках C и C++ — те еще штучки. Они чрезвычайно мощные, но в то же время такие опасные: достаточно небольшого недосмотра, чтобы сломать все ваше приложение. Проблема в том, что управление указателями полностью зависит от вас. За каждым динамическим выделением объекта (например, new T) должно следовать ручное удаление (например, delete T). Забудете это сделать, и в итоге получите хорошенькую утечку памяти.

Более того, динамически выделяемые массивы (например, new T[N]) необходимо удалять с помощью другого оператора (например, delete[]). Поэтому приходится мысленно отслеживать, что вы выделили, и соответственно вызывать нужный оператор. Ошибки с выбором формы приводят к неопределенному поведению, чего при работе на C++ нужно избегать любой ценой.

Другая деликатная проблема заключается во владении. Сторонняя функция возвращает указатель: а не динамически ли были выделены эти данные? Если да, то кто отвечает за очистку? Невозможно получить такую информацию, просто посмотрев на возвращаемый тип.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 26

Создание своей эргономичной клавиатуры (часть 1: создание раскладки)

Reading time 6 min
Views 7.4K
Manufacture and development of electronics *Gadgets Computer hardware Periphery DIY
Tutorial

Всякий, кто работает за компьютером, каждый рабочий день касается клавиатуры. (И мыши, разумеется). Мы меняемся -- и предпочтения как и на что нажимать тоже меняются со временем.

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

Я не особо беспокоился ни о туннельном синдроме ни об эргономике клавиатуры помимо того, чтобы было удобно печатать. Но когда начались локдауны в связи с короной, мне пришлось оборудовать домашнее рабочее место, а запасы клавиатур были очень ограничены. Помимо всего прочего, их больше не выпускают (ну, я нашел что они еще есть под другим брендом, но всё же). Так пришла пора поискать что-нибудь новое, желательно более удобное.

Привыкание к разломанной потребовало времени -- и я всё еще не полностью адаптировался... -- в основном из-за моего навыка печати. Как я уже писал, я самоучка, и средние столбцы общие для обеих рук. Я могу нажать "y" как левой так и правой рукой, то же с другими средними кнопками -- в итоге я часто жал вместо "y" -- "t" или "n" вместо "b". Так же неприятно ткнуть в пустое место клавиатуры вместо нажатия на "7". Заметив эту проблему, я попытался найти клавиатуру у которых средние столбцы продублированы, но таких клавиатур на рынке просто нет. После изучения доступного инструментария я понял, что создание клавиатуры своей мечты гораздо проще чем я думал. А если можно -- почему бы и не попробовать? Будет весело!

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 42

USB монитор из Futaba GP1160A02A

Reading time 11 min
Views 23K
Programming microcontrollers *Old hardware DIY

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

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

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

Про один из таких дисплеев, изготовленный по этой технологии и будет рассказано в этой статье, а именно про дисплейный модуль Futaba GP1160A02A.

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

Читать далее
Total votes 264: ↑264 and ↓0 +264
Comments 43

Пишем телеграм-бота на Rust, предварительно спаяв сетевую карту

Reading time 11 min
Views 17K
Rust *Programming microcontrollers *Circuit design *Manufacture and development of electronics *DIY

Что делать, если ваш микроконтроллер не умеет работать с сетью, а бота для телеграма написать хочется? Конечно же, сделать свой сетевой адаптер на логических микросхемах!

Читать далее
Total votes 147: ↑146 and ↓1 +145
Comments 23

Пишем свой ROM BIOS

Reading time 12 min
Views 16K
Timeweb Cloud corporate blog Abnormal programming *Assembler *Old hardware
Tutorial

Со стародавних времён хотел попробовать создать собственный ROM BIOS, который будет записан в отдельную микросхему и будет выполнять какие-то полезные действия. Например, ROM BIOS установлен в видеокартах (по крайне мере старых), контроллерах дисков и много где ещё — это фактически расширения обычного BIOS. Понимаю, что это всё старьё и тягаться с возможностями современного UEFI бессмысленно, но мне очень хотелось создать свой собственный образ, который находится физически в отдельной микросхеме и работает при старте системы. Поэтому пришлось даже для этих целей найти старый комп.

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

В этой статье мы с вами разберём создание своего ROM BIOS, дальше я расскажу про тонкости и нюансы, напишу низкоуровневый «Hello world», сделаю настоящий интерпретатор BASIC ROM, который стартует при включении компьютера, как в первых IBM PC.
Читать дальше →
Total votes 141: ↑140 and ↓1 +139
Comments 68

Первое знакомство с nRF52832, его оригинальным SDK и средой разработки SEGGER. Мигалка светодиодом Bluetooth

Reading time 5 min
Views 4.5K
Wireless technologies *C *Programming microcontrollers *
Tutorial

nRF52832 дешевый и доступный микроконтроллер с поддержкой Bluetooth/

В статье ниже постарался рассказать как сделать BLE UART устройство мигания свтеодиодом.

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 17

Когда TCP-сокеты отказываются умирать

Reading time 10 min
Views 18K
Configuring Linux **nix *
Sandbox
Translation

Когда TCP-сокеты отказываются умирать

В поисках причин, почему установленные соединения не разрываются в некоторых случаях, я набрёл на отличную статью в блоге Cloudflare. Которая в итоге помогла найти не только решение моей проблемы, но и помогла лучше понять как работают таймауты TCP соединений в Linux.

Читать далее
Total votes 66: ↑66 and ↓0 +66
Comments 5

Как я делаю опенсорсную статусную панель «я занят»

Reading time 8 min
Views 25K
GTD *Personnel Management *Manufacture and development of electronics *

Прототип моего проекта светодиодной таблички, которая показывает что я занят — Busy StatusBar

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

Поэтому я решил сделать табличку, которая полностью заменяет помидорный таймер и одновременно показывает окружающим, что я занят и время через которое я освобожусь. Важно было ее максимально легко активировать, за одну секунду — нажал кнопку и загорается статус BUSY с обратным отсчетом. Прошивку и API думаю сделать полностью открытую, чтобы все могли прикручивать устройству свои интеграции, например плагины для тайм-трекеров.

В статье я расскажу как ищу дизайн и эргономику устройств, делаю железо и весь путь от идеи, до подготовки к серийному производству. Покажу текущий прототип на базе ESP32.

Приглашаю всех желающих поучаствовать в разработке.
Читать дальше →
Total votes 157: ↑154 and ↓3 +151
Comments 195

Stm32 + USB на шаблонах C++. Продолжение'. Делаем MSC

Reading time 12 min
Views 4.5K
C++ *Programming microcontrollers *

В продолжение темы применения современного C++, а именно шаблонов, в программировании микроконтроллеров рассматриваю реализацию еще одного популярного класса USB - Mass Storage, а также вопрос создания композитного устройства.

Читать далее
Total votes 19: ↑16 and ↓3 +13
Comments 10

МК-61: история, эмуляция, устройство

Reading time 21 min
Views 31K
JavaScript *History of IT Old hardware
Sandbox

Расцвет эпохи программируемых калькуляторов в нашей стране пришёлся на середину 80-х годов. Потом на смену относительно сытым и благополучным временам пришла эпоха бандитского капитализма, когда стране стало не до выпуска своей высокотехнологичной продукции бытового назначения, вот уже сменились поколения, но ностальгия по тем временам, когда мы бессонными ночами пытались сократить код программы хотя бы на пару байтов, чтобы уместить задуманную функцию, выискивали всё новые и новые недокументированные возможности, придумывая способы, как их можно использовать на практике, сочиняли целые циклы рассказов в качестве фона для наших игровых программ, не даёт забыть свой МК-61 со 105 байтами программной памяти. Поэтому хочу написать заметку о том, что собой представляли и как работали эти самые программируемые калькуляторы. Даже если эта тема сегодня периодически и поднимается, то не настолько часто, чтобы приесться уважаемому читателю, так что надеюсь поведать что-то новое.

Читать дальше →
Total votes 74: ↑71 and ↓3 +68
Comments 153

Расширенное использование SSH

Reading time 10 min
Views 8.6K
Cloud4Y corporate blog System administration *IT Infrastructure *Server Administration *
Translation

Протокол SSH v.2 является важной составляющей безопасных компьютерных сетей. Он криптографически надёжен, быстр, универсален и широко распространён. Многие крупные облачные провайдеры даже не пытаются заменить его каким-либо альтернативным, собственным решением, что подчёркивает его силу. 

В этой статье я хочу продемонстрировать некоторые интересные и универсальные возможности протокола SSH и его реализации OpenSSH. 

Читать далее
Total votes 26: ↑23 and ↓3 +20
Comments 6

Подключаем алфавитно-цифровой экран к VGA

Reading time 5 min
Views 13K
RUVDS.com corporate blog Interfaces *Periphery DIY Electronics for beginners
Tutorial

Нет, это не шутка. В действительности к VGA, DVI, HDMI можно подключать различные устройства, и даже питать их. И это очень удобный способ работы с различными устройствами и нестандартное использование обычного интерфейса.

Ларчик просто открывается, всё дело в том, что в интерфейсе VGA (а также в других видеоинтерфейсах) присутствует ещё одна шина данных I²C, которая доступна для использования и её легко можно применить в своих самоделках.
Читать дальше →
Total votes 129: ↑127 and ↓2 +125
Comments 46

Отучиваем Google Chrome убивать ресурс SSD накопителя

Reading time 4 min
Views 78K
Lumber room
Sandbox
Предыстория

Как-то примерно год назад (в 2010 г.) появился у меня компьютер, который можно было брать с собой на диван — ноутбук то есть. Ноутбук выбирался чисто для работы, одним из требований при выборе была неплохая производительность. Процессор Intel Core i3 показался достаточным по производительности.

Но, поначалу шустрый ноутбук все больше и больше начинал меня нервировать своей медлительностью. Не то чтобы он тупил, подвисал и тому подобное — нет, он просто равномерно медленно работал. Особенно это было хорошо заметно если поработаешь за «полноразмерным» компьютером с шустрым винчестером, а потом пересядешь за ноутбук. Виной тому был медленный винчестер ноутбука. Причем это проблема не конкретно моего ноутбука, это проблема всех ноутбуков, потому что в них стоят медленные винчестеры со скоростью вращения 5400 об/мин.
Читать дальше →
Total votes 93: ↑55 and ↓38 +17
Comments 76

12 Способов Отладки и Диагностики FirmWare

Reading time 6 min
Views 4.1K
TDD *C *Programming microcontrollers *DevOps *Developing for Arduino *
Tutorial

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

Для аналогии буду каждому методу отладки метафорично приводить в соответствие аналогию из медицины.

Читать далее
Total votes 20: ↑17 and ↓3 +14
Comments 21

Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом

Reading time 14 min
Views 4.7K
Timeweb Cloud corporate blog Information Security *Open source *GitHub *Development for Linux *
Translation

polkit – это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав a GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Раскрытие уязвимости было скоординировано с командой по поддержке polkit, а также с командой по обеспечению безопасности в компании Red Hat. О раскрытии этой уязвимости было объявлено публично, патч для нее был выпущен 3 июня 2021 года, и ей был присвоен код CVE-2021-3560.

Эта уязвимость позволяет непривилегированному пользователю, работающему на локальном ПК, получить root-доступ к командной оболочке системы. Такой эксплойт несложно осуществить при помощи нескольких стандартных инструментов командной строки, как показано в этом коротком видео. В данном посте будет объяснено, как устроен этот эксплойт, а также показано, где именно в исходном коде находится этот баг.

История уязвимости CVE-2021-3560 и какие дистрибутивы она затронула

Рассматриваемый баг достаточно старый. Он вкрался в код более восьми лет назад в коммите bfa5036 и впервые мог использоваться в версии 0.113 программы polkit. Однако, во многих популярных дистрибутивах Linux эта уязвимая версия не использовалась до относительно недавнего времени.

Немного специфической историей этот баг обладает в Debian и его производных (например, в Ubuntu), так как Debian использует форк polkit, в котором есть своя особенная схема нумерации версий. В форке Debian этот баг появился в коммите f81d021 и впервые попал в дистрибутив в версии 0.105-26. В стабильном релизе Debian 10 (“buster”) используется версия 0.105-25, таким образом, уязвимости в нем нет. Но некоторые производные Debian, в том числе, Ubuntu, основаны на нестабильной версии Debian, а она уязвима.

Читать далее
Total votes 24: ↑22 and ↓2 +20
Comments 3

Почему в С++ массивы нужно удалять через delete[]

Reading time 4 min
Views 13K
PVS-Studio corporate blog Programming *C++ *

Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.


delete_or_delete_for_array_ru/image1.png

Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Comments 33

70+ бесплатных инструментов для компьютерной криминалистики (форензики)

Reading time 8 min
Views 26K
Бастион corporate blog Information Security *Open source *Software

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

Давайте пройдемся по просторам GitHub и посмотрим, какие инструменты для сбора и анализа цифровых доказательств доступны всем желающим.

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

Читать далее
Total votes 37: ↑36 and ↓1 +35
Comments 2

99+ бесплатных инструментов для анализа зловредов

Reading time 10 min
Views 19K
Бастион corporate blog Information Security *Open source *Software

Знай своего врага ― одна из максим, которой руководствуются специалисты по информационной безопасности. Она касается и зловредов. Существуют сотни инструментов, которые помогают исследовать вредоносное ПО. К счастью, многие из них бесплатны и имеют открытый исходный код. 

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

Читать далее
Total votes 45: ↑44 and ↓1 +43
Comments 1

Частые ошибки начинающих СВЧ разработчиков

Reading time 3 min
Views 16K
Manufacture and development of electronics *Electronics for beginners

Всем привет! Меня зовут Олеся, я СВЧ инженер-разработчик. В этой необычной для моего профиля статье я расскажу о частых ошибках* начинающих СВЧ инженеров.

Обложка взята с Википедии (ссылка)

*личное мнение автора. В статье лишь рекомендации.

далее
Total votes 45: ↑43 and ↓2 +41
Comments 42

Information

Rating
59-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Middle