Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Анатомия POS-терминала: от разведки на диване до обхода антивскрытия

Время на прочтение11 мин
Охват и читатели11K

Привет, Хабр! На связи Иван Глинкин, специалист по аппаратному реверс-инжинирингу из команды Бастиона. Сегодня поделюсь интересным кейсом разбора платежного POS-терминала. Когда-то эти маленькие черные коробочки были крепким орешком для хакеров. Однако отвертка, паяльный фен, логический анализатор и, конечно же, пытливый ум исследователя творят чудеса. К тому же сами разработчики и даже регуляторы порой дают в руки исследователям все козыри, будто только и ждут успешного взлома устройств. 

Эта статья — не просто очередной «сказ про то, как железку взломали», а попытка вывести универсальную методологию аппаратного реверс-инжиниринга на основе исследования конкретного устройства. Мы пошагово пройдем весь путь: от сбора информации в открытых источниках до физического вскрытия, обхода защиты и перехвата «секретных переговоров» между чипами.

Итак, часть первая: вскрытие и разведка боем. Поехали!

Читать далее

Дорогие джуны, не делайте так. Коллекция плохих привычек в HTML и CSS

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели21K

Привет, Хабр!

Давно я ничего не писал для джунов. А ведь HTML и CSS не стали проще для них. Всё так же есть сложности, и мне надо как-то помочь людям.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Невидимая оборона 386: как защищены входы и выходы процессора

Уровень сложностиСложный
Время на прочтение19 мин
Охват и читатели11K

Я давно занимаюсь реверс-инжинирингом процессора Intel 386 и недавно наткнулся на любопытные схемы узлов выводов ввода/вывода (I/O). Поскольку эти выводы взаимодействуют с внешним миром, им угрожают особые опасности: статическое электричество и защёлкивание (latch-up) способны разрушить кристалл, а метастабильность — вызвать серьёзные сбои. Эти узлы ввода-вывода полностью отличаются от логических схем процессора 386, и мне попалась ранее не описанная схема триггера, так что я вступаю на неизведанную территорию. В этой статье я подробно разбираю, как именно узлы ввода-вывода защищают 386 от «драконов», способных его уничтожить.

Читать технический разбор 386

Kubernetes на пальцах: самое простое объяснение, что это такое

Время на прочтение7 мин
Охват и читатели41K

Вы наверняка знаете, Kubernetes просто повсюду. От разработчиков, тестировщиков, DevOps-инженеров и системных аналитиков ожидают умения работать с этим инструментом. Даже продакт-менеджеры иногда интересуются, что это такое.

Если вы только начинаете знакомство с Kubernetes и хотите понять, с чего начать, эта статья для вас. Разберем, какие задачи он решает, какие у него основные объекты и как можно управлять кластером без сложных команд в терминале. Подробнее читайте внутри.

Читать далее

Мой опыт: украденный iPhone и фишинг

Время на прочтение3 мин
Охват и читатели15K

Расскажу про случай, когда после кражи у меня iPhone столкнулся с фишингом — хотели выманить данные для разблокировки телефона и входа в iCloud. Не думаю, что ситуация уникальная, но метод фишинга похож на тиражируемый — поэтому решил поделиться. Предупрежден, значит вооружен.

Читать далее

Как мы нашли баг в компиляторе Go

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели15K

Каждую секунду в дата-центры Cloudflare в 330 городах отправляется 84 миллиона HTTP-запросов. Из-за этого даже самые редкие из багов возникают достаточно часто. На самом деле, именно наши масштабы позволили нам недавно обнаружить в компиляторе Go на arm64 баг, вызывающий состояние гонки в генерируемом коде.

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

Читать далее

Платотерапия: как я собрал свои Arduino UNO и Digispark с нуля

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели15K

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

Эта статья — рассказ о том, как я собрал клоны Arduino UNO и Digispark, сделал три разные платы расширения своими руками и протестировал две из них, купленные в магазине.

Попробуем сделать Arduino UNO DIY — свой ответ Arduino UNO Q.

Читать далее

Забытые яйца

Время на прочтение11 мин
Охват и читатели9.4K

В уездном городе N, как и в любом другом населённом пункте нашей страны, есть рынок 1С. (так уж сложилось: где есть бизнес, там есть 1С). На рынке этом, не считая пары десятков мелких компаний, работают два крупных игрока – назовём их Альфа и Бета (сортировка – по времени создания компаний).

Как-то так всегда получалось, что между Альфой и Бетой был устойчивый баланс. 20 лет они шли нос к носу, не отрываясь друг от друга на сколько-нибудь значимое расстояние, ни по одному из показателей. Примерно одинаково клиентов, сотрудников, доходов, проектов. Поговаривали даже о сговоре – мол, чтобы не устраивать конкурентных побоищ, которые точно дойдут до грязных приёмов, руководители Альфы и Беты договорились о мирном сосуществовании.

Так и было, пока на пороге Беты не появился Максим.

Читать далее

6 Docker-фич для продвинутого использования

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели26K

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

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

Погрузиться

Как мы в Т-Банке ручное тестирование роботизировали

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели13K

Привет, Хабр! Мы команда из отдела разработки ПО для банкоматов Т-Банка: Александр, Владислав, Иван и Денис.

Расскажем о необычном, но интересном опыте автоматизации и роботизации тестирования банкоматного ПО в Т-Банке, для которого мы использовали коллаборативного робота.

Ручное тестирование нового ПО АТМ трудозатратно, требует много времени и ресурсов. Зачастую действия повторяются и QA выполняет одни и те же тест-кейсы. Нашей целью было высвободить ресурс QA, уйдя от рутинного ручного тестирования к более творческим задачам путем роботизации ручного тестирования.

Читать далее

Хватит страдать в Telegram. Мы сделали мессенджер, в котором удобно работать

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели117K

Мы с командой, как и многие, вели рабочие переписки в Telegram. Постоянно теряли задачи во флуде и мемах, забывали о договорённостях и тратили часы на поиски нужных сообщений.

Тогда мы решили взять лучшее от Telegram и сделали свой корпоративный мессенджер — который помогает фокусироваться на работе.

Читать далее

Bricks: от идеи до UI за 60 секунд

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели5.8K

Привет! Я — Дмитрий Гусев, Frontend-разработчик в команде Bricks в кластере Core Services в Авито, в статье подробно рассказываю, как и зачем мы внедрили механизм предварительного просмотра проектируемого интерфейса в реальном времени прямо в админку Bricks: зачем это понадобилось, как всё устроено под капотом и с какими неожиданностями столкнулись по пути.

Предварительно просмотреть!

Ubuntu 25.10 «Questing Quokka»: от бета-версии к финалу — что изменилось

Время на прочтение4 мин
Охват и читатели12K

Привет, Хабр! Пару недель назад мы разбирали бета-версию Ubuntu 25.10, которую Canonical назвала "Questing Quokka". Тогда система была на этапе заморозки пакетов, с акцентом на переход к Wayland и поддержку RISC-V. Теперь релиз вышел, и он стал стабильнее, доработаннее, с новыми возможностями, которые не просто дополняют бету, а делают ОС готовой для ежедневной работы. В статье посмотрим, что появилось в финальной версии, как доработали ключевые компоненты и сделаем общую оценку.

Читать далее

Ближайшие события

Система резервации на 600 заказов в секунду без буферизации и другой дичи

Уровень сложностиСложный
Время на прочтение23 мин
Охват и читатели10K

Я прочитал статью, и меня поразило, сколько сомнительных решений можно использовать для одной простой задачи.

В этой статье я расскажу, как правильно создать сервис для конкурентных обновлений остатков данных в базе данных. Буду использовать .NET, C#, Entity Framework и PostgreSql.

Читать далее

Обзор микросхемы DRV8870 (или Драйвер H-моста)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели13K

DRV8870 - это старая простая микросхема управления коллекторным DC-мотором с токами в обмотках до 3.5 Ампер от компании Texas Instruments. По сути это драйвер H-моста. Причем H-мост встроен прямо внутрь корпуса самой микросхемы. Это полностью интегрированное решение.

В этом тексте я произвел обзор микросхемы DRV8870. Посмотрим с какой стороны следует подходить к микросхеме DRV8870.

Читать далее

Почему батареи в некоторых телефонах живут так мало

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели48K

Тоже любите ставить телефон на зарядку ночью? А как часто вы заряжаете телефон днём? Вроде бы новый смартфон, а спустя год (а то и несколько месяцев) замечаете, что как будто заряда не хватает. Батарея — это буквально самая часто заменяемая деталь телефона. 

В статье разберём, почему заряда не хватает на весь день, как Li-ion-аккумулятор стал лидером, почему батарея умирает, что именно её разрушает и какая у этого природа. Детали под катом.

Читать далее

Как я переводил с английского документ от 1704 года без ChatGPT

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели26K

Сначала был звонок. «Здравствуйте, мне нужно перевести документ с английского на русский. Только он не совсем обычный». Разберемся, подумал я. А вечером увидел на почте это.

Читать далее

Мой первый вклад в ядро Linux

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели27K

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

Читать далее

Автоматизация без риска: как уберечь данные в АИС

Время на прочтение8 мин
Охват и читатели9.4K

Привет! Я Антон, инженер по информационной безопасности в Selectel. Под катом расскажу, как устроены автоматизированные системы, каким угрозам подвержены и какие меры действительно помогают защитить данные.

Читать далее

Создание полнофункционального (не-SPI) контроллера SD карт на FPGA чипе

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели13K

Здравствуйте меня зовут Дмитрий сегодня мы продолжим исследование FPGA плат и напишем полноценный контроллер SD карт (правильней их называть SDHC, потому что карты формата SD давно не продаются). Причем мы создадим полноценный контроллер задействующий все возможности шины SD, а не жалкий SPI аналог.

Читать далее