Мікроконтролери: від основ до архітектур та інструментів розробки

Детальний гайд по світу мікроконтролерів для початківців. Розбираємо архітектури, серії STM32, середовища розробки та основи програмування вбудованих систем.
Детальний гайд по світу мікроконтролерів для початківців. Розбираємо архітектури, серії STM32, середовища розробки та основи програмування вбудованих систем.
Ця стаття розповідає неймовірну історію технологічної революції — від громіздких вакуумних ламп до винаходу транзистора та інтегральної схеми. Дізнайтеся, як програма «Аполлон» та її бортовий комп’ютер стали каталізатором для створення мікропроцесорів, сучасної програмної інженерії та заклали фундамент для всього цифрового світу, яким ми його знаємо сьогодні.
Вже майже рік ми співпрацюємо з Hack in the Box одразу в декількох напрямках. В кінці листопада відбулася офлайн конференція у Абу Дабі (ОАЕ) де ми презентували бейдж та читали дводенний тренінг по IoT Security. Про ці активності і розповідаємо тут :)
Минулорічний бейдж отримав навпрочуд позитивні відгуки відвідувачів конференції. Створилася спільнота поціновувачів та проекти на його апаратній базі. Рівень очікувань сформовано, вйо до реалізації 😎 Цього року концепція бейджу дещо змінилася. Ми прийняли рішення не використовувати готові dev boards, а розробити повністю усю плату з нуля.
Несподівано, нас знову запросили на BugCrowd CarHacking BugBash. Цього разу хакерська оргія відбулася в самому серці автопрому — в Детройті.
Бюджет українських конференцій із кібербезпеки не дозволяв виділити на розробку хардварного бейджу кошти співмірні із іноземними конференціями. Для порівняння, розробка та виробництво 500 бейджів для однієї європейської конференції у 2018 році коштували $13000. Ми мали бюджет в 4 рази менший.
Хід виконання програми стає набагато очевидніший при використанні контекстних назв змінних та функцій. Для зіствалення пам’яті зі змінними програми бажано мати таблицю символів, котра є лише у розробників. Частково цю інформацію можна отримати створивши власний проект на базі SDK виробника
Повноцінною атакою з використанням такої вразливості можна назвати RCE — remote code execution
. Для цього в буфер записується shellcode а в stack pointer вказівник на сам буфер. Результат — виконання коду, що записано в буфер.
Історія почалася з приватного повідомлення від Блюма (Igor Blumental) з посиланням на реєстрацію на мегасекретну подію. Ніяких деталей, просто потрібні люди з навичками пентеста автомобільного заліза, прошивок, мереж та протоколів.