пятница, 11 января 2019 г.

Зачем нужна красная зона? Я же могу просто использовать стек?

Это перевод Why do we even need to define a red zone? Can’t I just use my stack for anything? Автор: Реймонд Чен.

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

среда, 19 декабря 2018 г.

вторник, 20 ноября 2018 г.

Как однажды ядро Windows пыталось противостоять гамма-лучам, разрушающим кэш процессора

Это перевод For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache. Автор: Реймонд Чен.

Однажды вот такой код был добавлен в часть ядра, которая возвращает систему из энергосберегающего режима:
;
; Сбрасывает кэш процессора, чтобы все побочные гамма-лучи (я не шучу),
; которые могли изменить биты кэша S1, игнорировались бы.
;
; Это не шутка. Это просили производители процессора.
; Я серьёзно.
;
invd

суббота, 3 ноября 2018 г.

Что случилось со шрифтом Arial Unicode MS?

Это перевод What happened to the Arial Unicode MS font? Автор: Реймонд Чен.

Клиент хотел узнать, что случилось со шрифтом Arial Unicode MS. Раньше он устанавливался вместе с Microsoft Office, но был удалён из Microsoft Office 2016. По этому поводу было придумано множество различных теорий заговоров.

вторник, 2 октября 2018 г.

В трёх экземплярах, будьте добры

Это перевод Windows Confidential: In Triplicate, Please? Автор: Реймонд Чен.

Однажды клиент заметил, что размер файла, о котором сообщал Explorer, не меняется, пока приложение, которое обновляет файл, не закрывает файл окончательно. (Проблема была немного в другом, но мы не будем об этом).

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

При отключении службы планировщика заданий происходят всякие плохие вещи. Это плохо или нет?

Это перевод All sorts of bad things happen when we disable the Task Scheduler service, is that bad? Автор: Реймонд Чен.

Клиент при помощи групповой политики отключил службу планировщика заданий (Task Sheduler). После этого они обнаружили, что многие вещи перестали работать. Например, меню «Пуск» стало висеть в течение нескольких минут. Поиск прекратил работать. «Есть ли у вас идеи, что могло вызвать эти проблемы?»

среда, 25 июля 2018 г.

Отчёт об уязвимости, раздвигающий границы криптографии

Это перевод Pushing the boundaries of cryptography in a security vulnerability report. Автор: Реймонд Чен.

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

понедельник, 18 июня 2018 г.

Деревообработка - противоположность разработке ПО

Это перевод Woodworking, the opposite of software development. Автор: Реймонд Чен.

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

четверг, 20 апреля 2017 г.

Как создать "сигнальные" значения для указателей в Windows

Это перевод On generating sentinel pointer values in Windows. Автор: Реймонд Чен.

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