Обновить
167.14

Windows *

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

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

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

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


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

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

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


Драйверы — неотъемлемая часть операционной системы, но связанные с ними уязвимости часто недооцениваются. 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 мин
Количество просмотров79K

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Удивительное рядом. Как устроен буфер обмена в Windows и Linux

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров24K
Опенсорсная утилита CopyQ показывает содержимое буфера обмена на всех ОС и сохраняет историю

Буфер обмена — один из основных элементов GUI, но он сложен в реализации. Подводных камней настолько много, что вы больше никогда не сможете произнести слово «копипаст» с презрительным выражением. Есть тысячи приложений и форматов данных. Невозможно обеспечить полную конвертацию всего во всё.

В некоторых случаях данные вообще нигде не сохраняются по нажатию Ctrl+C. И по нажатию Ctrl+V будет возвращён NULL. Shit happens, как говорится…
Читать дальше →

Новые утечки. Что мы знаем о выходе Windows 12

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


Весь интернет уже готовится к выходу Windows 12. Вероятно, следующая версия будет во многом сосредоточена на поддержке работы с ИИ. На это намекает в том числе недавняя утечка от Intel, а также последние действия AMD и направление развития Bing.

Читать дальше →

Avalonia и котики и дизайн для разработчика

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

В эпоху невероятной популярности ChatGPT и OpentAI все кинулись играть с их инструментами и использовать API в своих продуктах. Я был в общих рядах и сделал продукт для тех, кому затруднительно воспользоваться официальным сайтом ChatGPT. Но в этой статье речь пойдет не о восхитительных продуктах MS, а о создании интерфейса с котиками на основе этого продукта.

Итак, у нас стоит задача: создать десктопный чат с GTP3, которым будет удобно пользоваться человеку, далекому от пк.

Читать далее

Сканер установленных перехватчиков в памяти процесса

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


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →

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

WPF: контролы лишенные внешнего вида и неразрешимая задача выбора конфигурации темплейта

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

Мне последнее время приходится заниматься интерфейсом приложения для анализа данных, визуальным представлением данных на разных слоях анализа, а также навигацией по слоям и по данным. Соответственно, пришлось разбираться c новомодным WPF, который продвигает концепцию реализующую возможность параллельной (независимой) работы дизайнеров, занимающихся внешним видом приложения и разработчиков, реализующих поведение приложения. Дизайнер, конечно, из меня не очень (мягко говоря), а вот с реализованной концепцией программирования внешнего вида элементов управления в приложениях, мне, кажется, удалось разобраться. Собственно, вот этим пониманием некоторых аспектов концепции я и хочу поделиться, в том числе для того, чтобы расширить это понимание по результатам критики и/или обсуждения.

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

Читать далее

Сам себя не потренируешь — никто не потренирует

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

Однажды мой коллега для кругозора заинтересовался темой построения треугольника Серпинского с помощью «игры в хаос». И познакомил с ней меня. Показал видео. Потом он сказал: «Ты же учишься программировать – попробуй написать программу, в которой это будет реализовано».

Читать

Добрый вечер, здравствуйте

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

Если вы программист, тестировщик или другой обитатель мира IT, то, возможно, ранее вы следили за деятельностью компании ABBYY, ведущего мирового разработчика решений в области интеллектуальной обработки информации и анализа бизнес-процессов. Весной 2022 года ABBYY приняла решение уйти из России, а мы — команда разработки и менеджмента бывшего российского офиса ABBYY — создали новую компанию Content AI. Мы посчитали важным сохранить многолетний архив этого блога, ведь в нем отражается путь не только одной компании, но и всей сферы AI российского IT.

И мы начинаем новую главу этой истории. 

Читать далее

Wine 8.0: что «выросло» в новой версии? Возможности и совместимость с ПО

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

На Хабре публиковалась новость о Wine 8.0, новый релиз был представлен спустя целый год разработки и трех десятков тестовых версий для «обкатки». Наконец, несколько дней назад разработчики представили стабильный релиз Wine 8.0. Работа действительно очень объемная — команда внесла почти 9 000 изменений.

В новой версии стабильно работает множество различного виндового софта. По словам разработчиков, это 5266 программ, но, конечно, на самом деле их может быть значительно больше, особенно если учитывать софт, который работает с проблемами, но все же работает. Давайте посмотрим на ключевые изменения нового релиза и того, что он может предложить пользователям.
Читать дальше →

Зачем нужен эмулятор retrowin32

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

Самый популярный вопрос о моём эмуляторе Windows retrowin32 (после «Зачем вообще это нужно?») — это вопрос о том, как он работает. Сегодня ответ кажется мне очевидным, но прежде чем я разобрался, он представлял для меня огромную загадку. Поэтому я постараюсь объяснить так, чтобы вам тоже стало понятно.
Читать дальше →

Как построить WaitGroup на основе 32-разрядного целого числа

Время на прочтение7 мин
Количество просмотров2.8K
image

В Go есть приятная утилита для синхронизации, именуемая WaitGroup, которую могут ожидать одна или несколько горутин. Это требуется для конкурентного завершения задач. В других языках обычно действует следующее соглашение по завершению задач: нужно объединять потоки, выполняющие работу. В Go горутины не имеют ни значений, ни дескрипторов, поэтому WaitGroup применяется вместо объединений. Собирание WaitGroup на основе типичных портируемых примитивов – путаное дело, в которое вовлечены конструкторы и деструкторы; также в процессе этой работы приходится управлять временами жизни. Однако, как минимум, под Linux и под Windows, можно построить WaitGroup из целого числа (инициализируемого в значении), во многом как при создании 32-разрядной очереди и 32-разрядного барьера.
Читать дальше →

Несоответствия исторических пластов Windows 11 — если копнуть, на дне сохранились даже элементы Windows 3.1

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


Спустя несколько лет Windows 11 доросла до более-менее нормального состояния, так что ею с удовольствием пользуется большинство людей. В сентябре вышло обновление Sun Valley (22H2) с давно назревшими изменениями в дизайне. Но достаточно ли их, чтобы устранить исторические несоответствия в UI?

Давайте посмотрим.

Примечание. В данном исследовании используется Windows 11 build 25267, последняя сборка Insider Dev на данный момент (01.01.2023 г).
Читать дальше →

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