Всем привет! На связи Алексей Гаврилов, DevOps-инженер компании «Флант». Эта статья предназначена для довольно искушённых пользователей Linux. Я покажу, как устанавливать Debian или его аналоги стандартным установщиком в Secure boot. Эту установку я проверил на AWS ARM64 и в Selectel Cloud. Также конечные скрипты работают на служебном Lenovo ThinkPad T14 и личном L380 Yoga.
Рубрика «загрузчик»
Как сделать безопасную загрузку с полностью зашифрованным диском на Linux без загрузчика на UEFI
2024-08-19 в 5:55, admin, рубрики: Debian, devops, EFI, efiboot, open source, Secure Boot, SecureBoot, UEFI, безопасность, загрузчикПривет!
Мы, сервисные инженеры, сталкиваемся с GRUB2 ежедневно. А вот когда стало любопытно посмотреть на загрузчик комплексно, то в интернете и в учебнике Linux нашли лишь несколько команд: как заново проинсталлировать загрузчик и обновить текущую конфигурацию. «А почему так мало?», — была наша первая мысль. Решили восполнить пробел — так появилась эта статья. А для иллюстрации попросили нейросетку изобразить, «как выглядят эпичные проблемы с GRUB» -- вот что вышло.
Создание своего UEFI приложения
2024-03-08 в 7:37, admin, рубрики: EFI, gdt, GUID, hello world, UEFI, загрузчикВступление
Привет! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Недавно увлёкся низкоуровневым программированием на Ассемблере и C/C++.
И вот, в какой-то момент я решил для саморазвития создать свой простенький загрузчик на ассемблере, который будет загружать ядро написанное на C и на экран будет выводится что-то по типу "Hello World!". Перечитал кучу статей по этой теме на Хабре, и на некоторых других ресурсах. Спустя десяток ошибок у меня всё получилось, и я был искренне счастлив.
Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?
2024-01-05 в 8:01, admin, рубрики: Atmega, attiny, avr, bodyawm_ништячки, C, c++, cc, dll, elf, esp32, esp8266, exe, executable, gcc, gnu ld, ld, linker, pic, timeweb_статьи, xtensa, бинарные файлы, загрузчик, исполняемый файл, компоновщик, микроконтроллеры, микропроцессоры, программа, программы, системное программированиеЗачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать полностью »
Веб-консоль для загрузчика U-Boot
2023-08-29 в 9:53, admin, рубрики: lwip, u-boot, WebSocket, загрузчик, роутерВ данной статье я расскажу, как совместил U-Boot и TCP/IP стек LWIP, и c использованием LWIP написал веб-консоль на WebSocket, очень простой DHCP-сервер и HTTP-сервер. Код лежит на репозиториях U-Boot и LWIP.
Всё началось, когда мне подарили для экспериментов роутер Xiaomi Mi Wi-Fi Router 3C.
16-битная ОС на fasm + Cи. Часть 1
2022-06-01 в 2:42, admin, рубрики: C, ассемблер, загрузка ос, загрузчик, операционная система, Си, системное программированиеДанная статья в большей степени является не руководством и не мануалом, а просто моими заметками. Идея этой статьи собрать множество особенностей и знаний в одно целое, надеюсь, она кому-то пригодится =)
Что происходит с ОЗУ при загрузке компьютера
Когда вы нажимаете кнопку старта на компьютере(или замыкаете контакты на материнке) BIOS проверяет оборудование и загружает первый сектор жесткого диска(512 байт), который помечен как загрузочный, по адресу 7C00h (h - hex) и начинает выполнять программу которая лежит в этих 512 байтах. От сюда следует, что у нас в распоряжеии есть только 512 байт.
Взламываем ТВ-приставку, чтобы получить плацдарм для хакерских атак
2021-11-03 в 7:48, admin, рубрики: android, IoT, безопасность iot, Блог компании Бастион, взлом, гаджеты, загрузчик, Интернет вещей, информационная безопасность, Производство и разработка электроники, Разработка под android, тв-приставки, целевые атакиПривет! Меня зовут Роман, я занимаюсь безопасностью IOT-устройств.
Мы в Бастион регулярно отрабатываем те или иные сценарии атак и устраиваем эксперименты. Об одном из них я расскажу прямо сейчас.
Пишем загрузчик на Ассемблере и С. Часть 2
2021-01-09 в 13:16, admin, рубрики: bootsector, mbr, ruvds_перевод, Блог компании RUVDS.com, загрузчикВ предыдущей статье я рассказал о процессе загрузки, а также продемонстрировал написание загрузочного кода на C и ассемблере, в том числе с вложением инструкций последнего в код первого. При этом мы написали несколько простых программ для проверки работоспособности внедренного в загрузочный сектор кода. В этой же статье мы рассмотрим процесс сегментации и чтения данных с дискеты в ходе загрузки, а также их вывод на экран.
Здесь я ограничусь написанием программы на ассемблере и ее копированием в загрузочный сектор образа дискеты 3.5”, после чего мы, как и в прошлой статье, протестируем записанный загрузочный код при помощи эмулятора bochs. Для реализации этих задач я задействую службы BIOS, что позволит нам лучше понять их функционирование и более уверенно работать в реальном режиме (Real Mode). Читать полностью »
Пишем загрузчик на Ассемблере и C. Часть 1
2021-01-07 в 13:00, admin, рубрики: assebler, bootsector, C, mbr, ruvds_перевод, Блог компании RUVDS.com, загрузчик, Лайфхаки для гиков, ненормальное программированиеЭта статья представляет собой ознакомительный материал о написании загрузчика на С и Ассемблере. Сразу скажу, что здесь я не буду вдаваться в сравнение производительности итогового кода, созданного на этих языках. В этой работе я просто вкратце изложу процесс создания загрузочного флоппи-образа путем написания собственного кода с последующим его внедрением в загрузочный сектор устройства. Все содержание будет разделено на цикл из трех статей, так как сразу сложно изложить всю нужную информацию и о компьютерах, и об устройствах загрузки, и о написании самого кода. В первой части я поясню наиболее общие аспекты компьютерной науки и суть процесса загрузки, а также обобщу значение и важность каждого этапа, чтобы упростить их понимание и запоминание. Читать полностью »
Пишем операционную систему. Часть 1. Загрузчик
2020-05-30 в 23:59, admin, рубрики: OSDev, ассемблер, загрузчик, операционные системы, Программирование, с нуля, системное программированиеВсем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.
Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это: