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

Да - да, вот с этим девизом я и ринулся в бой.

Вместо предисловия

Пожалуй с этой картинки должно начинаться любое повествование о boost, Loki, самостоятельных, да и так же поставляемых с компиляторами реализациях стандартной библиотеки C++.

Да-да, и если вы думали что разработчики стандартной библиотеки для того же g++, clang, Visual Studio или, прости господи, C++ Builder (бывший Borland, а нынешний Embarcadero) — гуру, что не городят костылей, не ломают стандарт под свой компилятор и не пишут велосипедов, то, скорее всего, вы не так активно используете стандартную библиотеку C++ как вам казалось.

Статья написана как рассказ, и содержит много «воды» и отступлений, но я надеюсь, что мой опыт и получившийся код будет полезен тем, кто столкнулся с похожими проблемами при разработке на C++, особенно на старых компиляторах. Ссылка на GitHub с результатом на сегодня для нетерпеливых и нечитателей:

https://github.com/oktonion/stdex (коммиты и конструктивная критика приветствуются)

А теперь, обо всем по порядку.
Читать полностью »

Под катом расположен перевод вступительной части документа Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking (Статья Project Zero) от Mateusz Jurczyk.

В переведенной части документа:

  • специфика языка программирования C (в рамках проблемы раскрытия памяти)
  • специфика работы ядер ОС Windows и Linux (в рамках проблемы раскрытия памяти)
  • значимость раскрытия памяти ядра и влияние на безопасность ОС
  • существующие методы и техники обнаружения и противодействия раскрытия памяти ядра

Хотя в документе пристально рассматриваются механизмы общения привилегированного ядра ОС с пользовательскими приложениями, суть проблемы можно обощить для любой передачи данных между различными доменами безопасности: гипервизор — гостевая машина, привилегированный системный сервис (демон) — GUI приложение, сетевые клиент — сервер и т.д.

КДПВ

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

Введение

Определение скорости подъёма и спуска летательных аппаратов легче воздуха (ЛАЛВ) до настоящего времени является практически важной задачей, возникающей при проектировании таких аппаратов.

Большое количество публикаций посвящено ЛАЛВ, например, только на нашем ресурсе приведены две очень интересные статьи [1,2], касающиеся истории развития на примере конкретных конструкций дирижаблей и стратостатов. Однако очень мало расчётов динамики вертикального полёта таких устройств, позволяющих хотя бы ориентировочно определять скорости подъёма и спуска ЛАЛВ.

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

Все указанные задачи были основаны на равенстве двух сил: силы веса и выталкивающей силы. Газы считались идеальными и их параметры вычислялись по закону Менделеева Клапейрона. Однако, даже простой учёт третьей силы сопротивления воздуха уже приводит к системе дифференциальных уравнений, которая аналитически не решается. Необходимо так же учитывать изменение плотности атмосферного воздуха с высотой подъёма и температурой.

Кроме этого, если нужно рассмотреть не только подъём, но и зависание шара и его спуск на землю, то совсем уж не детская задача получается. Надеюсь, что рассмотрение решения подобной задачи средствами Python не только будет способствовать расширению знаний по физике, но и популяризации самого языка программирования Python. Что я и пытаюсь делать в своих публикациях на этом ресурсе.

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

Добрый день, уважаемые читатели.

Реестр — это одна из самых заметных и значительных систем Windows. Вряд ли найдется человек, который не слышал о нем. Занимаясь программированием под Windows уже около 20 лет, я думал, что знаю о нем все. Но время от времени появляется что-то новое, что показывает мне, как я был неправ. Поэтому сегодня я хочу рассказать вам о необычных способах работы с реестром, которые я встречал, исследуя руткиты, и которые удивили меня.

Три коротких истории о реестре Windows - 1

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

Введение

В этой статье мы попробуем разобраться чем на практике отличается механизм epoll от портов завершения (Windows I/O Completion Port или IOCP). Это может быть интересно системным архитекторам, проектирующим высокопроизводительные сетевые сервисы или программистам, портирующим сетевой код с Windows на Linux или наоборот.

Обе эти технологии весьма эффективны для обработки большого количества сетевых соединений.

Они отличаются от других методов по следующим пунктам:

  • Нет ограничений (кроме общих ресурсов системы) на общее количество наблюдаемых дескрипторов и типов событий
  • Масштабирование работает достаточно хорошо — если вы уже мониторите N дескрипторов, то переход к мониторингу N + 1 займёт очень мало времени и ресурсов
  • Достаточно легко задействовать пул потоков для параллельной обработки происходящих событий
  • Нет никакого смысла использовать при единичных сетевых соединениях. Все преимущества начинают проявляться при 1000+ соединений

Если перефразировать всё вышесказанное, обе данные технологии созданы для разработки сетевых сервисов, обрабатывающих множество входящих соединений от клиентов. Но в то же время между ними есть существенная разница и при разработке тех же сервисов её важно знать.
Читать полностью »

Всем доброго времени суток! image

Меня зовут Станислав, и я люблю писать код. Это моя первая статья на Хабре, на написание которой меня сподвигло несколько факторов:

  • Недостаток статей технического плана в хабе ReactOS
  • Недавнее возвращение Geektimes на Хабр
  • Возможность собрать ReactOS в ReactOS
  • Довольно интересный случай исправления проблемы в ReactOS, в котором я принимал непосредственное участие

Позвольте представить вам виновников данного торжества (исправленного бага, который мешал запуску Git в ReactOS) — хорватский разработчик Hermès Bélusca-Maïto (далее просто Гермес, с ником hbelusca), и собственно я (с ником x86corez).

История начинается со следующих сообщений из IRC-канала разработчиков ReactOS:

Jun 03 18:52:56 <hbelusca> Anybody want to work on some small problem? If so, can someone figure out why this problem https://jira.reactos.org/browse/CORE-12931 happens on ReactOS? :D
Jun 03 18:53:13 <hbelusca> That would help having a good ROS self-hosting system with git support.
Jun 03 18:53:34 <hbelusca> (the git assertion part only).

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

Информацию о состоянии окружающей среды или, например, некоторого объекта управления можно получать, измеряя текущие значения параметров, характеризующих те или иные свойства среды или объекта. Для получения, обработки и передачи такой информации техническими средствами, значение измеряемого параметра необходимо преобразовать автоматическими измерительными устройствами в сигнал измерительной информации. Для этого реализуют информационно-измерительный канал (ИИК), как совокупность технических средств, каждое из которых будет выполнять свою определённую функцию, начиная от восприятия измеряемой величины и заканчивая получением измерительной информации в форме, удобной для восприятия человеком или для дальнейшей её обработки. И всё бы хорошо, да вот по пути следования информации на полезный сигнал y(t) измерительной информации накладывается помеха e(t) – случайная функция времени, которая может моделировать и случайную погрешность измерительного преобразователя, и электрические наводки в соединительных проводах, и случайные пульсации измеряемого параметра, и другие факторы.
Читать полностью »

Привет! Мы продолжаем нашу экспериментальную серию статей, наблюдая за которой вы можете в реальном времени влиять на ход создания игры на UWP. Сегодня мы поговорим о постоянно возникающем в рядах разработчиков вопросе — «Где хранить данные?». Присоединяйтесь и делитесь своими мыслями в комментариях!

А где вы храните данные? - 1Читать полностью »

Зимой и летом одним цветом? Поиск сезонности в данных - 1

Однажды мы решили посмотреть, какие сезонные интересы есть у пользователей 2ГИС в разных городах. Всплески интереса к цветам, новогодним подаркам и шинам — вполне ожидаемы. Мы решили ими не ограничиваться и пойти дальше, проверив все сферы деятельности во всех 113 городах присутствия.

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

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

Можно ли «хакнуть» ASP инфраструктуру? - 1

Как говорят специалисты по информационной безопасности «Ломают всё, всех и всегда». При этом, атаки на ASP.NET — вещь достаточно редкая. Поэтому всегда крайне любопытно узнавать про это что-то новое. Под катом рассказ специалиста отдела информационной безопасности Rambler Group Алексея Морозова о сильных и слабых сторонах данной технологии.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js