Рубрика «разработка под windows»

Привет! Сегодня, 22 мая, день рождения Windows 3.0. 28 лет назад (представляете?) была выпущена первая версия Windows, завоевавшая широкую популярность среди пользователей. Мы решили немного понастольгировать и написали статью о значимых ПК-версиях системы. Начнем с единички и придем к десятке, но их там больше десяти. Подробнее под катом.

А какая Windows была первой у тебя? День рождения Windows 3.0 - 1Читать полностью »

Windows Hello

Windows Hello – это технология биометрической аутентификации пользователя по отпечатку пальца, сетчатки глаза, трёхмерному сканированию лица и даже по венозной схеме ладони.

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

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

  • Проверить возможность использования Windows Hello.
  • Проверка пользователя с помощью Windows Hello, что позволяет связать авторизованного Windows пользователя с нашим клиентом.
  • Кэширование созданного ранее ПИН-кода по идентификатору пользователя в защищённой области.
  • При последующих запусках приложения с авторизованным пользователем, автоматически запускается процедура аутентификации пользователя посредством Windows Hello. В случае успешной аутентификации из защищённой области запрашивается кэшированный ПИН-код.

Давайте рассмотрим каждый шаг подробнее на примерах кода.
Читать полностью »

Фильтр Калмана. Первый взгляд - 1

Введение

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

Требуемые знания: знакомство с матричной алгеброй, нормальным многомерным распределением, ковариацией матриц и т. д.
Читать полностью »

imageДанная публикация является разбором особенностей контейнерной виртуализации Docker под системой Windows.

Она не претендует на роль исчерпывающей и по мере необходимости будет обновляться и дополняться.

За практическим руководством с нуля советую обратиться к этой публикации.

Содержание

Читать полностью »

Disclaimer

  • Эта публикация является переводом части документа «Bypassing Mitigations by Attacking JIT Server in Microsoft Edge» от Ivan Fratric (Google Project Zero). Переведена та часть, в которой находится описание механизма ACG и его применение в браузере Microsoft Edge. За рамками этого перевода осталось более подробное описание внутренностей JIT в Chakra (Microsoft Edge JavaScript Engine) и векторов атаки на него (с описанием найденных уязвимостей, исправленных к моменту публикации документа).
  • По роду своей профессиональной деятельности я не являюсь ни техническим писателем, ни (тем более) переводчиком. Но содержимое документа мне показалось очень интересным в плане изучения внутренностей Windows. Соответственно, я открыт к конструктивным замечаниям и предложениям по улучшению перевода.

С выпуском Windows 10 Creators Update Microsoft начала использовать новый механизм безопасности в Microsoft Edge: Arbitrary Code Guard (ACG). Когда ACG применяется к процессу (в частности в процессу Microsoft Edge), в целевом процессе становится невозможным выделить новую исполняемую память или изменить существующую исполняемую память. Соответственно, исполнение произвольного кода для злоумышленника становится более сложной задачей.

Для достижения более высокой производительности современные браузеры используют JIT компиляцию (Just-In-Time) JavaScript-кода, но такой подход не совместим с ACG. Поэтому в Microsoft Edge был реализован следующий подход: JIT был выделен в отдельный процесс, относительно процесса содержимого (Content Process). Процесс содержимого посылает JIT процессу байт-код JavaScript, а JIT процесс компилирует его в машинный код и проецирует этот машинный код обратно в процесс содержимого.
Читать полностью »

В один прекрасный вечер, понадобилось мне написать небольшое приложение, требования к которому, на первый взгляд, выглядели не такими уж и сложными:

  • работа с кое-какими железяками;
  • наличие GUI;
  • умение работать в Windows XP и выше (не спрашивайте, зачем);
  • один исполняемый файл (для Windows);
  • крайне желательна версия под macOS;
  • проверка наличия обновлений на удалённом сервере по HTTPS.

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

Собираем Qt 5.6 (MSVC) с OpenSSL и поддержкой Windows XP - 1

Люблю эту картинку.

Disclaimer: статья от чайника для чайников. За задетые чувства профессионалов C++ и магистров жизненного цикла продуктов я не отвечаю.

Читать полностью »

7-9 мая в Сиэтле прошла ключевая конференция Microsoft для разработчиков. Мы постарались собрать все ключевые анонсы в небольшую серию статей.

40 анонсов Build 2018. Часть 1. Hardware & Dev Tools - 1

В этом выпуске:

  • О чем думает Сатья?
  • Perception-Powered Intelligent Edge Dev Kits
  • Превью Project Brainwave
  • Dev Tools & DevOps
  • Заметки event-менеджера

Читать полностью »

Notepad в windows 10 начал понимать юниксовый перевод строки, а не только формат windows.

С проблемой «каши» вместо удобочитаемого текста десятилетиями сталкивались те, кто пытался открыть в среде Windows текстовые документы подготовленные на других операционных системах. Теперь же все в одночасье изменяется. И это изменение столь же мало, сколь и эпично по своим практическим результатам и идеологическим последствиям. Microsoft вновь пытается играть в кросс-интеграцию и поддержку открытых стандартов.

Долгие годы Windows Блокнот мог нормально отображать только те текстовые документы, которые содержали символы начала новой строки в формате Windows End of Line (EOL) — «возврат каретки» (CR) и «подача на строку» (LF). На деле это приводило к тому, что Notepad не смог правильно отобразить содержимое текстовых файлов, созданных в Unix, Linux и macOS, где в качестве признака конца строки использовался только символ LF.

Например, вот скриншот Notepad, пытающегося отобразить содержимое текстового файла Linux .bashrc, который содержит только символы Unix LF EOL:

image

А вот скриншот недавно обновленного «Блокнота», отображающего содержимое того же самого файла UNIX / Linux .bashrc, но с правильными переносами:

image
Читать полностью »

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.

Egram

Статья затрагивает достаточно базовые концепции разработки на Avalonia. Тем не менее, мы не будем писать "Hello, World". Вместо этого предлагается рассмотреть реальное приложение. Изучим как общую архитектуру приложения, так и отдельные компоненты.

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

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

Читать полностью »

В жизни embedded разработчика, часто возникает потребность взаимодействия с серийным портом
И пускай RS-232 почти полностью вытеснен современными интерфейсами, UART похоже никуда не собирается уходить

Большинство модулей (WI-FI, IoT и др.), демоплат/одноплатников работают или имеют на борту UART

JavaFx, простой терминал COM порта - 1
Читать полностью »