В Windows Active Directory существует протокол Kerberos, который считается безопасным и неуязвимым к Relay-атакам. Или всё-таки...? В статье автор погрузился в глубины аутентификации Windows, DCOM и рассказал об инструменте RemoteKrbRelay.
Системное программирование *
Обеспечение работы прикладного ПО
Новости
От PuTTY до МС22: сравниваем SSH-клиенты
На сегодняшний день SSH-клиентов написано множество: от встроенных в ОС терминалов до отечественных решений вроде МС22. Я решил протестировать популярные варианты и сравнить, какой будет лучше.
Небезопасность Debian
В июне 2023 года Red Hat приняла спорное решение изменить способ распространения исходного кода Red Hat Enterprise Linux (RHEL). В социальных сетях разгорелись бурные обсуждения, оставившие многих в недоумении относительно последствий этого решения. Возникло множество вопросов о будущей жизнеспособности вторичных сборок RHEL, затрагивающих такие дистрибутивы, как Rocky Linux, AlmaLinux, Oracle Linux и другие. Каждый из них впоследствии сделал заявления, пытаясь успокоить свои сообщества.
Тем не менее, многие в сообществе открытого ПО расценили решение Red Hat как откровенно подлый ход.
Всё больше людей заявляют, что они перейдут (или уже перешли) на Debian, ища убежища от того, что они считают жадным корпоративным влиянием. Я полностью понимаю это чувство. Однако есть проблема, о которой я хочу поговорить: безопасность.
Адаптируем фаззинг для поиска уязвимостей
Фаззинг — очень популярная методика тестирования программного обеспечения случайными входными данными. В сети огромное количество материалов о том, как находить дефекты ПО с его помощью. При этом в публичном пространстве почти нет статей и выступлений о том, как искать уязвимости с помощью фаззинга. Возможно, исследователи безопасности не хотят делиться своими секретами. Тем интереснее рассмотреть эту тему в данной статье.
Истории
Путешествие Embox на AMUR
Всем привет. Embox продолжает своё путешествие по отечественным микропроцессорам. В этой серии мы опишем путешествие на AMUR (MIK32). Кто не знает, это — полностью отечественный микроконтроллер К1948ВК018 на архитектуре RISC‑V, который производится в РФ на мощностях компании МИКРОН, входящей в ГК «Элемент».
Программирование на C в Linux на примере создания командной оболочки: часть 2
Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.
В первой части мы задали базовую структуру кода, разобрались с чтением вывода и созданием процессов. А в этой части нашей задачи будет дойти с альфа-стадии на бета-стадию — то есть реализовать прочий важный функционал, такой как: минимальная поддержка плагинов; автодополнение; подсветка синтаксиса; переменные окружения, новые встроенные утилиты.
Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!
Программирование на C в Linux на примере создания своей командной оболочки
Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.
Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.
В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества
Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...
Multicast DNS и DNS-SD
Multicast DNS и DNS-SD являются ключевой составной частью стека Zero-configuration networking (zeroconf) и отвечают в нем за службу имен и автоматический поиск устройств в пределах локальной сети.
Технология zeroconf, позволяющая собрать работающую локальную сеть с нулевыми усилиями по администрированию и конфигурации, известна уже давно. Еще в 1980-х AppleTalk, локальная сеть для компьютеров и устройств Apple, позволяла просто соединить устройства проводами и сразу начать работать.
AppleTalk не выдержал конкуренцию с TCP/IP в эпоху Интернета, но идея сети, которая работает сама, не умерла. В мире TCP/IP Apple продвигает ее под именем Bonjour (ранее Rendezvous).
mDNS/DNS-SD являются одними из ключевых технологий в устройстве современного стека печати и сканирования. Кроме того, они могут использоваться в "облаке", позволяя отдельным компонентам облачного сервиса найти друг друга при условии, что они подключены к одной локальной сети, реальной или виртуальной.
В этой статье я расскажу, как вся эта конструкция устроена под капотом. Эта информация может быть полезна системным и сетевым программистам, которым приходится работать с соответствующими API, администраторам сетей да и просто для лучшего понимания того, как устроены современные сети.
ZX Murmulator OS
ZX Murmulator - одноплатный ультрадешевый микрокомпьютер на основе платы Raspberry Pi Pico (далее "пика"), которая, в свою очередь, основана на микроконтроллере - RP2040.
RP2040 - одна из наиболее известных двухъядерных реализаций ARM Cortex-M0+ с 264 КБ встроенной SRAM памяти и от 2-ух до 16-ти МБ flash-памяти подключаемых по QSPI интерфейсу, распаянной на плате пики. Данный микроконтроллер легко гонится до 400 МГц без какого либо радиатора, не смотря на свои штатные 133. Что позволяет запускать на нём достаточно прожорливые задачи.
Правка скриптов автогенерации cubeMX/cubeIDE
На примере добавления дополнительных классов USB (Media Transfer Protocol (MTP) и Smart Card (CCID)) показать каким образом можно вносить изменения в скрипты автоконфигурации для ускорения создания последующих проектов, а также для исправления существующих ошибок в них, чтобы не держать в голове, какие в каком случае постоянно вносить правки для исправления тех или иных ошибок.
Подсистема управления общими блоками SoC для ЗОСРВ «Нейтрино»
Современнные Системы-на-Кристалле (SoC) содержат в себе десятки различных контроллеров, вариативность которых меняется в зависимости от поколения или ревизии чипов того или иного производителя. Особо выделяются контроллеры системного тактирования (Clock) и сброса (Reset), объем функциональности которых охватывает все оставшиеся контроллеры более узкого назначения.
В этой статье мы расскажем о новой разработанной подсистеме управления такими блоками в контексте операционной системы реального времени "Нейтрино". Затронем небольшую предысторию её создания, общую архитектуру с примерами кода и пример использования.
Путешествие сквозь секреты прошивок: от BIOS/UEFI до OS
Вы когда-нибудь задумывались, что происходит, когда вы нажимаете кнопку питания на компьютере? За той краткой паузой, прежде чем экран загорится, скрывается сложный процесс. В этой статье мы погрузимся в увлекательный мир прошивок (firmware) и исследуем, как разные компоненты взаимодействуют во время загрузки системы. Поняв эти связи, вы получите четкое представление о том, как основные элементы приводят вашу систему в действие. Мы сосредоточимся на Intel архитектуре x86, хотя многие принципы применимы и к другим архитектурам.
Swift на FreeBSD
Новый, модный и красивый язык разработки от Apple прямо на ваших глазах будет с особым цинизмом пропатчен, собран из исходников и запущен на FreeBSD. Опять.
Ближайшие события
На что способен инженер, загнанный в угол (или как устроен Display Port у Aspeed AST2600)
Дано:
Серверная плата с самым свежим чипом от Aspeed. На плате распаяны два видео-разъема, идущих напрямую с чипа: VGA и DisplayPort. Видео через древний аналоговый VGA-разъём воспроизводится замечательно, а вот современный быстрый и цифровой DP работать не хочет. Не то чтобы совсем не хочет... так, редкие нестабильные промаргивания картинки.
Задача:
1. Починить выводимое на Display Port изображение.
2. Вчера
Вы спросите, зачем нам понадобился именно DP? Все сервера испокон веков работали через VGA, и никто от этого не страдал.
Ответ простой: Мы просто решили сделать лучше и удобнее. VGA древний и его уже ставят по причине "всегда ставили, куда без него"? Мы же делаем НОВУЮ серверную платформу на годы вперед. Нужно сказать, что мы пока не отказались полностью от VGA и технически он всё ещё остается доступен одновременно с DP (как VGA использовать, расскажем в другой раз). Но монитор без разъема VGA попадается всё чаше, а в будущем все мониторы останутся без VGA. DP поддерживает hot-plug. DP поддерживает высокие разрешения и frame-rate. И в конце концов, DP поддерживается чипом ASPEED. А раз железо позволяет, то "А почему бы и ДА!?". В конце концов, для олдов остаются доступны переходники DP-VGA. Главное, не увлекаться и не получить такое:
Анализ виртуальной машины на примере VMProtect. Часть 2
В первой части статьи мы рассмотрели общий вид работы конвейера виртуальной машины, а также немного коснулись возможных подходов для анализа виртуальной машины.
В этой части статьи не приводится гарантированного способа снятия виртуализации, я просто хочу поделиться опытом анализа ВМ который позволяет более-менее понять что-то о работе ВМ и может быть полезен при анализе схожих реализаций.
Пишем «Hello, World!» на Си для OpenWRT
Мне стало интересно, как можно скомпилировать код на языке Си для OpenWRT на мой роутер.
В интернете инструкции имеются, но расплывчатые и то им уже по 6-8 лет. Поэтому, в этой статье собрана актуальная информация по компиляции.
Программируем микроконтроллер STM32 на Rust
Rust 1.80.0: типы LazyCell, LazyLock, проверяемые имена и значения cfg, эксклюзивные диапазоны в шаблонах
Команда Rust рада сообщить о новой версии языка — 1.80.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.80.0 вам достаточно выполнить команду:
$ rustup update stable
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta
) или nightly (rustup default nightly
). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Как я стал Сисадмином
Расскажу историю от своего имени, меня зовут Евгений Николаевич Рычков, и вообще я стал сначала фулстек-разработчиком. Но история именно про то, как я в итоге стал сисадмином, и даже сам не сразу это осознал.
Все очень сложно, это типичная история, когда ты нетипично закончил не только престижный ВУЗ, красующийся в рейтинге по России и миру, но и ездил по крутым грантам, таким как Eranet Mundus и Erasmus, стажировался зарубежом, получил гос. премию за вклад в развитие науки и экономики Красноярского края.
Xv6: увеличим размер страниц виртуальной памяти с 4Кб до 2Мб
Научим xv6 работать с виртуальными страницами размера 2 Мб, узнаем, как компоновщик создает образ памяти программы и научим файловую систему xv6 справляться с большими файлами.
Пример: Пусть программа занимает 4 Мб памяти. Размер страницы - 4 Кб. Программа займет (1024 * 1024 * 4) / (1024 * 4) = 1024
страницы памяти. ОС избавит процессор от лишней работы, если увеличит размер страницы до 2 Мб - тогда программа займет 2 страницы.