Долгое молчание

Я прошу прощение у читателей за долгое молчание. Оно связано с двумя вещами. Во-первых, вначале марта у меня случился неожиданный проект в новой для меня области, реализация которого отнимает много времени и закончить основную его часть нужно непременно до середины мая. А во-вторых, наше любимое украинское консульство в Сан-Франциско умудрилось потерять наши с женой паспорта как раз перед поездкой домой, чем основательно подпортило нам планы. Общение с консульством хотя и очень увлекательно, и крайне полезно для наращивания уникального жизненного опыта и толстой, нечувствительной к разным жизненным мелочам кожи, но при этом совершенно неконструктивно. Read On →

Анализ одной уязвимости в Flash

Томас Пташек (Thomas Ptacek) анализирует нечеловеческий эксплоит Марка Доуда (Mark Dowd), использующий уязвимость в Flash.

Эксплоит использует целочисленное переполнение, возникающее из-за того, что Flash runtime использует знаковое число, прочитанное из SWF файла, как беззнаковый размер выделяемого блока памяти. В итоге Flash пытается выделить несколько гигабайт памяти, получает в ответ NULL, но не проверяет его, а пишет 32-х разрядное число по смещению от полученного нулевого указателя. Марк вычислил, что если смещение X превышает 0x80000000 и при этом X+4 делится без остатка на 12, то результирующий адрес получается валидным. Записываемое 32-х битное значение получается из исходного 16-ти разрядного числа вычитанием значения еще одной переменной. Иными словами, ни указатель, ни записываемое значение не контролируются хакером полностью.

Тем не менее…

Read On →

Yuri's Planet

Сегодняшняя (у меня всё еще 12-ое число. :-) ) картинка на APOD: Yuri’s Planet.

ЧислоТрамвая

Попалось на глаза забавное - ЧислоТрамвая (ЧислоГрузовика, TruckNumber): ЧислоГрузовика - это размер наименьшей группы людей в проекте, которые если все вместе попадут под грузовик, то у проекта будут проблемы В оригинале: The TruckNumber is the size of the smallest set of people in a project such that, if all of them got hit by a truck, the project would be in trouble. и второй вариант определения, куда более фатальный ЧислоГрузовика - это размер наименьшей группы людей в проекте, которые если кто либо один из которых попадёт под грузовик, то у проекта будут проблемы. Read On →

Астрофорум медленно, но верно превращается в филиал Астрономической Картинки Дня.

Вчерашнняя фотография на Астрономической Картинке Дня: Большое Магелланово Облако (БМО). (c) Юрий Белецкий (ESO) Автор - Юрий Белецкий, он же Garmisch, завсегдатай Астрофорума. Причем на APOD его работы попадают уже не в первый раз. А именно этот снимок он выкладывал в форуме пару месяцев назад. PS. Вот такое вот можно снимать, если руки из правильного места ростут. :-)

В Москве коты зарабатывают больше 300 долларов

Не могу не поделиться. Это просто праздник какой-то: …У меня есть один знакомый из Вашингтона, который тоже пишет про роскошную жизнь в Америке типа - буду голосовать за Буша, он мне 300 баксов прислал и еще 600 обещал, про пособие… У нас это история про Жирика. В Москве даже кот зарабатывает больше. На стоимость своей квартиры, я в NYC могу две купить и содержать их лет десять. Поездку за лучшей жизнью я переболел еще лет 20 назад. Read On →

Задав вопрос, не забудьте выслушать ответ

Не так давно приходит письмо с вопросом и довольно длинным уже шлейфом ответов и форвардов. Вопрос (мой вольный перевод): «Как в расширении для WinDbg определить разрядность кода в 32-х битном процессе, запущенном под Wow64?» Я в вопросах разработки плагинов для WinDbg не в зуб ногой, но все что касается Wow64 так или иначе касается и меня тоже.

Сканирую «простыню». Первый же ответ на оригинальное письмо говорит, что команда «.effmach» позволяет переключаться между 32-х битным и 64-х битным кодом. Ответ автора вопроса не устроил, и она предположила, что для определения разрядности кода можно сканировать заголовок PE файла. В таком виде это письмо попадает ко мне.

Read On →

Отгадка

В комментариях к загадке ответ был дан почти сразу. Действительно, обработчик отложенной загрузки DLL попытается загрузить «version.dll» по имени, а не по полному пути. В результате загрузчик будет искать библиотеку, пользуясь правилами по умолчанию. Номер два в этом списке поиск DLL в system32, что при отключенном перенаправлении файловой системы, равноценно попытке загрузить 64-х битную DLL в 32-х битный процесс. Бум.

Read On →

Загадка

Вот эта программа печатает номер версии указанного пользователем модуля, который она берет из поля “FileVersion” ресурса VS_VERSION_INFO этого модуля. Имя модуля передается как первый параметр командной строки. Для работы с VS_VERSION_INFO используется стандартная библиотека version.dll.

(далее идет много кода)

Read On →

За последние две-три недели узнал много нового...

За последние две-три недели узнал много нового про архитектуру amd64. Во-первых, я наткнулся сначала на документ, а затем на аналогичный раздел в MSDN, где толково описаны не только соглашения о вызовах (этого добра везде навалом), но и дано детальное описание того, как должен выглядеть стек функции, как происходит раскрутка стека, что такое и зачем нужны пролог и эпилог функции. Полезный документ, особенно если нужно разобраться как работает stack unwinder.

Read On →