Как стать автором
Поиск
Написать публикацию
Обновить
102.55

Windows *

Разработка под операционные системы от Microsoft

Сначала показывать
Порог рейтинга
Уровень сложности

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров62K

После написания программы ее можно модифицировать и добавить графический интерфейс — с Python это проще, чем кажется. Для программирования красивого и функционального GUI иногда достаточно простого знания html и css.

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →

Тайная жизнь COM: погружение в методы Hijacking

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.7K

Привет, хабр!


Сегодня я продолжу рассказывать о Component Object Model (COM). В прошлой статье мы разобрали различные аспекты хранения COM-объектов в реестре, а также изучили стратегии, которыми может пользоваться злоумышленник для выбора объекта с целью последующей атаки COM Hijacking.

COM Hijacking - это атака, позволяющая атакующему перехватить выполнение легитимного COM-объекта и заменить его на свой вредоносный, например на шелл, который будет устанавливать связь с C2 сервером. Атакующий выбирает, как правило, часто выполняющийся COM-объект, таким образом, осуществляется закрепление в системе.

Сегодня мы рассмотрим основной этап атаки - это способы перехвата и подмены COM-объекта на вредоносный.

Читать далее

Аудит событий безопасности ОС Windows. Часть 1. Настройки аудита

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров24K

Журналирование событий информационной безопасности является важным элементом системы защиты информации. Нам необходимо знать какое событие когда произошло, когда какой пользователь пытался зайти в систему, с какого узла, удачно или нет, и так далее. Конечно, некоторые события ИБ сохраняются в журналах ОС при использовании настроек по умолчанию, например, не/удачные входы в систему, изменения прав доступа и т. д. Однако, настроек по умолчанию и локального хранения логов недостаточно для эффективного мониторинга и реагирования на события ИБ.

В этой статье мы посмотрим, как можно организовать эффективный аудит узлов под управлением ОС Windows, а в следующей статье настроим централизованный сбор событий с нескольких узлов и попробуем с помощью Powershell автоматизировать обработку собранных событий.

Читать далее

Аудит пользователей AD с помощью Powershell

Время на прочтение4 мин
Количество просмотров20K

Домен Active Directory может содержать в себе сотни и даже тысячи учетных записей и для управления всеми этими аккаунтами администратору требуется значительное количество времени. Даже, если у нас уже все аккаунты разнесены по группам, ко всем группам применены политики и настроены права доступа, все равно могут возникнуть ситуации, когда по тем или иным причинам нам необходимо найти полную информацию о пользователе.

Для решения этих задач нам может помочь PowerShell, инструмент, который помимо прочего, позволяет легко проводить аудит учетных записей пользователей Active Directory.  Для этих целей мы будем использовать один из самых популярных командлетов Active Directory PowerShell - Get-ADUser. С помощью этого командлета мы можем получить как указанный пользовательский объект, так и выполнить настраиваемый поиск для получения нескольких пользовательских объектов.

Читать далее

Тайная жизнь COM: как устроен Component Object Model в Windows и стратегии выбора объекта для атаки

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров13K

Анализируя отчеты по разбору вредоносного ПО приходишь к выводу, что одним из популярных методов для закрепления в системе является COM Hijacking (T1546.015). Примером такого вредоносного ПО является Fancy Bear или Jumplump. Таким образом, становится очень важно команде Blue Team уметь детектировать данный вид атаки. Поэтому было принято решение выпустить серию статей, посвященных технологии Component Object Model, разбору атаки COM Hijacking и ее детектированию.

Читать далее

Как Visual Basic.NET отлично помогает решать инженерные задачи, связанные с Word и Excel

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6K

Как язык Visual Basic .NET отлично помогает решать рутинные инженерные задачи, связанные с Word и Excel.

Читать далее

ProxiFyre: Open Source SOCKS5 Проксификатор для Windows

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров25K

Один из проверенных временем и надёжных методов, не требующий сложной специализированной инфраструктуры, — это туннелирование TCP-соединений с использованием SSH. Этот протокол является критически важным для стабильности работы интернета, и вероятность его массовой блокировки выглядит крайне малой. Вероятно, наибольшими трудностями, с которыми мы можем столкнуться, являются ограничения на скорость соединения. Уникальной особенностью SSH является встроенный SOCKS5 прокси-сервер, который предоставляет функционал аналогичный VPN с возможностью реализации split tunneling на уровне отдельных приложений.

Читать далее

Что в имени тебе моём? Часть 2

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров990

Как известно, интерпретируемые и компилируемые языки имеют преимущества и недостатки относительно друг друга. Одним из таких преимуществ/недостатков является сохранение связи имени переменной из исходного текста с соответствующим объектом программы во время выполнения.

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

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

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

Читать далее

Спустя 28 лет: Windows 11 добавляет поддержку WinRAR. Почему именно сейчас и что будет дальше?

Время на прочтение3 мин
Количество просмотров29K
2bb9062555f5b2bf7e5a5f8d92dfb841ec6919e8-kopiya-1684908523-3

На днях корпорация Microsoft заявила о том, что в скором времени в Windows 11 будет добавлена нативная поддержка архивов RAR, 7-Zip и ряда других популярных форматов. По словам представителей компании, это нововведение позволит пользователям ОС не использовать «сторонние утилиты», включая тот же WinRAR. Но, как всегда, есть нюансы — работа с некоторыми форматами не будет полноценной. Да и внедрение новой функции будет реализовано не так быстро, как хотелось бы. Подробности — под катом.
Читать дальше →

Поиск аномалий при запусках процессов Windows с помощью рекомендательных систем

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.6K

В SIEM-системах есть множество написанных экспертами правил, которые помогут отследить подозрительное поведение. Однако существует много сценариев атак, которые нельзя описать строгими правилами, а значит, эффективно отслеживать.

Учитывая объем данных, обрабатываемый SIEM-системой ежедневно, а также специфические задачи анализа этих данных (целью которого является поиск действий злоумышленников), применять машинное обучение сегодня необходимо и чрезвычайно эффективно.

О том, как правильно использовать «магию» машинного обучения, какой алгоритм фактически самостоятельно «понимает» функциональные обязанности каждого пользователя и предназначение конкретной программы и при чем здесь рекомендации товаров в интернет-магазине, рассказываем в посте.

Далее

Приручение WinAPI

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.9K

Позапрошлую заметку я начинал словами «вот уже 10 лет прошло…», а эту можно было бы начать «вот уже 20 лет прошло…». Хотя там речь шла лишь о выравнивании стека, а здесь – о целой организации взаимодействия программы с WinAPI. Помнится, здесь недавно в комментариях кто-то наивно удивлялся: зачем вы приводите устаревший и никому не интересный способ программирования через WinAPI? А как же иначе программа вообще может взаимодействовать со средой Windows, как не через вызовы ее стандартных функций? Через имеющиеся надстройки над WinAPI не все можно сделать.

Конечно, было бы прекрасно все время оставаться в рамках парадигмы используемого языка программирования и чтобы «на фотографии не торчали уши фотографа», т.е. чтобы в исходных текстах никак не проявлялись бы особенности взаимодействия со средой. Например, в большинстве языков есть понятие файла. Чтобы открыть файл не обязательно явно описывать стандартную функцию из WinAPI CreateFile или OpenFile, поскольку компилятор переведет встроенный в язык оператор открытия или прямо к обращению к этой функции или к вызову системной библиотеки, которая где-то внутри себя и вызовет требуемую функцию. В любом случае программист не обязан знать, как именно это реализовано в Windows.

В системной библиотеке языка PL/1-KT, который я использую, имеется обращение лишь к 28 функциям WinAPI и это вполне покрывает «обычные» возможности языка и можно было бы не заботиться о явных вызовах. Но увы, часто этого мало. И хотя нормальные люди ходят в двери, а не в окна (ах, какая свежая, искрометная шутка!), приходится в программах явно обращаться к функциям типа CreateWindow или CloseWindow. А это уже ну никак не входит в понятия языка.

Читать далее

Этот «iPhone» работает на Windows — что может китайский айфон на винде в 2023?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров16K
image


А вы помните, каким предметом статуса был первый iPhone в своё время? Люди брали ради него кредиты, покупали «серые» аппараты без гарантии, просили друзей купить им яблочный смартфон из США. Конечно, далеко не каждый мог себе позволить оригинальный iPhone в то время, поэтому предприимчивые китайцы начали делать самые разнообразные подделки, которые затем попадали и в СНГ. Айфоны с телевизорами, с 3-симками, с QWERTY-клавиатурами: чего только не придумывал китайский сумрачный гений. Но особенно выделился сегодняшний представитель: это полноценный смартфон на Windows Mobile! Только вдумайтесь — китайцы сделали реплику iPhone на настоящей винде — одним из основных конкурентов iOS тех лет! Сегодня мы с вами: попробуем «отреставрировать» девайс, заменим АКБ, заценим «iOS» и посмотрим, на что годится такой коммуникатор в наше время!
Читать дальше →

Самые опасные драйверы для Windows

Время на прочтение10 мин
Количество просмотров9.6K


Драйверы — неотъемлемая часть операционной системы, но связанные с ними уязвимости часто недооцениваются. Windows очень легко загружает на уровень ядра практически любые драйверы: подписанные/неподписанные, старые/новые. Если вредоносный код распространяется таким образом, то его трудно обнаружить.

Старые 32-битные драйверы обычно шли без цифровой подписи. Но даже введение обязательной подписи не решило проблему полностью. Во-первых, злоумышленники могут использовать украденные сертификаты. Во-вторых, они используют для своих целей официально сертифицированные драйверы от доверенных издателей: Lenovo, ASRock, Asustek, Dell и др. Такие «троянские» драйверы присутствуют на многих компьютерах, но антивирусы не считают их угрозой.
Читать дальше →

Ближайшие события

Microsoft переписывает код ядра и некоторых библиотек Windows на языке Rust. Но зачем?

Время на прочтение4 мин
Количество просмотров48K
microsoft-is-rewriting-core-windows-libraries-in-rust-v0-Nsy2e3-Z9k4-XXJv-6k-XV9d4a-Mmj-VKb-Th-Cj-Sh

Недавно стало известно о том, что команда разработчиков Windows 11 занимается новым типом работы — переписывает ряд модулей ядра и системных библиотек операционной системы на Rust. При этом работа уже в разгаре, это не просто анонс проекта или планы на будущее — реализация идет полным ходом. Зачем корпорации все это понадобилось?
Читать дальше →

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров21K

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

Все это привело меня к закономерному выводу, что сначала нужно изучить формат FB2. А потом подумать, как прочитать его стандартными способами и вывести на экран. После того, как я немного разобралась со структурой FB2, начала догадываться, почему нет готовых библиотек. Дело в том, что этот формат довольно простой, и нет особой необходимости писать для него отдельную библиотеку. Можно довольно быстро наваять свой код, который будет читать практически все файлы FB2. И вы сможете убедиться в этом, если дочитаете статью до конца.

А раз все так просто, зачем я пишу эту статью? Для этого у меня есть две причины. Во-первых, это моя первая проба пера на Хабре. А во-вторых, возможно, это сэкономит кучу времени другому такому же новичку, как я. Ну, или пригодится какому-нибудь студенту, который пишет реферат.

Читать далее

Странный мир путей файлов в Windows

Время на прочтение6 мин
Количество просмотров77K

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →

Обучение C++, UTF-8 с первой программы

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров29K

Мне понадобилось провести несколько вводных уроков по языку программирования C++. В интернете есть много разнообразных учебных пособий для начинающих. Но почти во всех из них символьные и строковые литералы в примерах и упражнениях даются на английском языке, начиная со знаменитой первой программы «Hello, world!».

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

Возникает вопрос, почему при наличии таких возможностей авторы современных учебников и руководств по C++ для начинающих не используют эти возможности с самого начала, с первой программы. Мне кажется, русскоязычным ученикам было бы удобнее и интереснее использовать в своих первых программах литералы на русском языке, а также эмодзи. Может быть, авторы учебников просто застряли в прошлом веке?

Читать далее

10 болей Windows-разработчика, портирующего на Linux

Время на прочтение9 мин
Количество просмотров7.6K

За последний год многим разработчикам пришлось осваивать работу с Linux, погружаться в тему кросс-платформенности и портирования существующих продуктов в новую инфраструктуру. Несмотря на то что часть наших продуктов написана под Linux, мы не стали исключением, и нашему RnD в прошлом году тоже пришлось значительно перестраивать свою работу.

Споры о том, под какой ОС проще кодить – бесконечны, примерно как дискуссии об Android vs iOS или PlayStation vs Xbox. Поэтому начинать мы ее не будем, хотя очень хочется.

В посте рассказываем исключительно об опыте нашей компании: на какие грабли наступили и в каких местах обожглись, работая над портированием продуктов с Windows на Linux. И все это собрали в 10 основных пунктов-болей наших разработчиков под катом. 

Читать далее

Дорожная карта навыков разработчика на C++

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров74K

Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость. 

В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.

Отправляемся

Руководство по Кросс-Платформенному Системному Программированию для UNIX и Windows: Уровень 1

Время на прочтение68 мин
Количество просмотров13K

С помощью этого учебного материала мы научимся писать кросс-платформенный код на Си, используя системные функции популярных ОС (Windows, Linux/Android, macOS и FreeBSD): управление файлами и файловый I/O, консольный I/O, пайпы (неименованные), запуск новых процессов. Мы напишем свои небольшие вспомогательные функции поверх низкоуровневого системного АПИ (API), для того чтобы наш основной код, используя эти функции, мог работать на любой ОС без изменений. Этот учебный материал — начального уровня. Я делю сложные вещи на части, чтобы примеры кода здесь не были слишком заумными для тех, кто только что начал программировать на Си. Мы обсудим различия между системными АПИ и разберёмся, как создать кросс-платформенный программный интерфейс, который скрывает все эти различия от пользователя этого интерфейса.

Читать далее

Вклад авторов