
Пользователи Windows 10 сообщают о многочисленных проблемах после обновления системы KB4535996. Среди них — проблемы с загрузкой, сбои, снижение производительности, а также недоступность инструментов разработчика. Читать полностью »

Пользователи Windows 10 сообщают о многочисленных проблемах после обновления системы KB4535996. Среди них — проблемы с загрузкой, сбои, снижение производительности, а также недоступность инструментов разработчика. Читать полностью »
Всем привет.
Мы, Виктор Антипов и Илья Алешин, сегодня расскажем о своем опыте работы с USB-девайсами через Python PyUSB и немного о реверс-инжиниринге.

Идея данной публикации сегодня была под вопросом, но видимо механизм мотивации, описанный в статье, всё же работает.
Однажды среди бизнес-уроков Николая Мрочковского услышал про интересную технику работы с собственным временем и целями. Называется она "Таблица жизни".
Идея заключается в том, что на листике рисуется (распечатывается) собственная жизнь со статистической продолжительностью в виде квадратиков, каждый из которых равен одной неделе.Читать полностью »
Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием.
Основная OS у меня Linux, но иногда приходится собирать исполняемые файлы и для Windows. И естественно что перегружаться в Windows только для сборки exe не особо хочется. С языками C и C++ проблем нет, давно существует кросскомпилятор MinGW, который прекрасно с этим справляется. Про Python и Java даже упоминать не стоит, кроссплатформенность в них изначально. Но в прошлом году я решил попробовать такой пока что новомодный язык, как Rust. При сборке исполняемого файла при помощи включённого в дистрибутив Rust пакетного менеджера cargo вроде как достаточно задать ключ --target, при помощи которого указать результирующий процессор, архитектуру и ABI и при сборке из Linux в результате получить exe, который будет являться стандартным исполняемым файлом для Windows. Но пытаясь так сделать:
cargo build --target x86_64-pc-windows-gnu
я получил только сообщения об ошибках линкера:
error: linking with `gcc` failed: exit code: 1
[...]
= note: /usr/bin/ld: unrecognized option '--nxcompat'
/usr/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile `foobar`.
Если кому интересно как я это поборол и теперь спокойно могу кросскомпилировать программы на Rust для Windows, не покидая Linux, добро пожаловать под кат.

Microsoft продолжает поддерживать старые версии своих разработок как минимум в плоскости безопасности, в данном случае это относится к IE9 и Windows 7. Компания в середине февраля 2020 года выпустила патчи для всех пользовательских версий ОС Windows 7/8.1/10, а также для серверных версий Windows Server 2008/2012/2016. Эти обновления безопасности закрывают критическую уязвимость CVE-2020-0674, обнаруженную ранее в Javascript-движке браузеров Internet Explorer 9 и Internet Explorer 11, изменяя механизм работы обработчика сценариев объектов в памяти.
Читать полностью »
Ниже представлена не простая расшифровка доклада с семинара CLRium, а переработанная версия для книги .NET Platform Architecture. Той её части, что относится к потокам.
Что такое поток? Давайте дадим краткое определение. По своей сути поток это:
Очень часто часто слышишь такое мнение, что потоки в .NET — они какие-то абсолютно свои. И наши .NET потоки являются чем-то более облегчённым чем есть в Windows. Но на самом деле потоки в .NET являются самыми обычными потоками Windows (хоть Windows thread id и скрыто так, что сложно достать). И если Вас удивляет, почему я буду рассказывать не-.NET вещи в хабе .NET, скажу вам так: если нет понимания этого уровня, можно забыть о хорошем понимании того, как и почему именно так работает код. Почему мы должны ставить volatile, использовать Interlocked и SpinWait. Дальше обычного lock дело не уйдёт. И очень даже зря.
Давайте посмотрим из чего они состоят и как они рождаются. По сути поток — это средство эмуляции параллельного исполнения относительно других потоков. Почему эмуляция? Потому, что поток как бы странно и смело это ни звучало — это чисто программная вещь, которая идёт из операционной системы. А операционная система создаёт этот слой эмуляции для нас. Процессор при этом о потоках ничего не знает вообще.
Задача процессора — просто исполнять код. Поэтому с точки зрения процессора есть только один поток: последовательное исполнение команд. А задача операционной системы каким-либо образом менять поток т.о. чтобы эмулировать несколько потоков. Читать полностью »
На Хабре не так много статей, посвященных операционной системе Qubes, а те, что я видел мало описывают опыт применения. Под катом надеюсь это исправить на примере использования Qubes в качестве средства защиты (от) среды Windows и, попутно, оценить количество русскоговорящих пользователей системы.


Схема утечки данных через Web Proxy Auto-Discovery (WPAD) при коллизии имён (в данном случае коллизия внутреннего домена с названием одной из новых gTLD, но суть та же). Источник: исследование Мичиганского университета, 2016
Майк О'Коннор, один из старейших инвесторов в доменные имена, выставляет на продажу самый опасный и спорный лот своей коллекции: домен corp.com за $1,7 млн. В 1994 году О'Коннор купил множество простых доменных имен, такие как grill.com, place.com, pub.com и другие. В их числе был и corp.com, который Майк хранил на протяжении 26 лет. Инвестору уже исполнилось 70 лет и он решил монетизировать свои давние вложения.
Вся проблема в том, что corp.com — потенциально опасен как минимум для 375 000 корпоративных компьютеров из-за безалаберной настройки Active Directory во времена построения корпоративных интранетов в начале нулевых на базе Windows Server 2000, когда внутренний корень указывался просто как «corp». До начала 2010-х это не было проблемой, но с ростом числа ноутбуков в деловой среде, все больше и больше сотрудников стали выносить свои рабочие компьютеры за пределы корпоративной сети. Особенности реализации Active Directory приводят к тому, что даже без прямого запроса пользователя к //corp, ряд приложений (например, почта), стучатся по знакомому адресу самостоятельно. Но в случае внешнего подключения к сети в условной кафешке за углом это приводит к тому, что поток данных и запросов льется на corp.com.
Сейчас О'Коннор очень надеется, что домен выкупит сама Microsoft и в лучших традициях Google сгноит его где-нибудь в темном и недоступном для посторонних месте проблема с такой фундаментальной уязвимостью Windows-сетей будет решена.
Читать полностью »
Недавно случайно узнал, что BitBucket, где лежат мои Mercurial-репозитории, прекращает поддержку Mercurial: новые репозитории создавать уже нельзя, а существующие будут удалелы с 1.06.2020. Возможные варианты действий: перейти на Git, выбрать один из других сервисов, или настроить хостинг Mercurial на своём сервере. Сервер у меня есть, отказываться от Mercurial и менять привычки как-то не хочется, альтернативы BitBucket мне тоже не приглянулись — поэтому выбрал последний вариант. Задача вроде несложная, вот только сервер у меня под Windows, и, кажется, в процессе настройки я умудрился наступить на максимум возможных граблей. Надеюсь, эта статья поможет кому-нибудь избежать этого и сэкономить время.
Порой так хочется заглянуть какому-нибудь вирусописателю в глаза и спросить: зачем и почему? С ответом на вопрос «как» мы справимся сами, а вот узнать, чем думал руководствовался тот или иной создатель вредоносного ПО, было бы очень интересно. Тем более, когда нам попадаются такие «жемчужины».
Герой сегодняшней статьи – интересный экземпляр шифровальщика. Задумывался он, по всей видимости, как очередной «вымогатель», но его техническая реализация больше похожа на чью-то злую шутку. Об этой реализации сегодня и поговорим.
К сожалению, проследить жизненный цикл этого энкодера практически невозможно – слишком уже мало статистики по нему, так как распространения он, к счастью, не получил. Поэтому оставим за скобками происхождение, методы заражения и прочие упоминания. Расскажем лишь о нашем случае знакомства с Wulfric Ransomware и о том, как мы помогли пользователю спасти его файлы.
Читать полностью »