| |
| Я наконец обзавёлся машинкой для стрижки волос, так что скоро снова буду брито лыс...
Поход за круглыми очками запланирован на ближайшее время ^^' | |
|
| Гипотеза Егорова-Есилевича Сумма мер качества исходного кода компилятора и качества кода, этим компилятором пораждаемого, ограничена константной. | |
|
| Отличительной чертой открытых проектов под win, кажется, является тот факт, что для их сборки требует делать два притопа и три-два прихлопа. Вот понадобилось собрать FDM... Так хоть святых выноси: стараобрядческий C++ код (чего стоит использование int as a default type и переменных объявленых в цикле for, за его пределами), плюс пришлось еще пришлось скачать фих-знает-сколько-метров SDK. Вовремя у нас скорость увеличили, ничего не скажешь. | |
|
| С утра снегопад, вечером лужи по-колено... | |
|
| Посмотрел "Быть Джоном Малковичем" (да-да-да, я тормоз). Ну что я вам скажу. Сия лента встанет на полочку рядом с K-PAX, Kundun, Shine, The Fountain, Pi. Бежать и искать, качать и смотреть... Всем-всем, кто еще более тормоз чем я | |
|
| Запас я кефира с сухарями и сел смотреть Monochrome Factor. Ибо чувак с тростью и белой косой меня заинтересовал... И о ужас! Ужас! Там вовсе не девушка главный герой, как я наивно полагал... Это парень... При этом чувак с косой его.... Целует! Минимум дважды! А-а-а-а-а! Ну почему нигде не было написано, что это самый настоящий ай-ай-ай (ой-ой-ой, в терминологии alphyna)?.. Название заиграло новыми красками в контексте увиденного... Смотреть пожалуй не буду... Мало ли кого там еще этот чувак с косой соберётся поцеловать... | |
|
| Понадобилось тут в Java сделать преобразование String[]→String... Где мой foldl, table.concat, ну или в крайнем случае std::accumulate... И после этого они еще называют это нормальным языком программирования? | |
|
| Когда умирает кто-то из близких, то испытываешь чувство, которое я не возьмусь выразить на бумаге. Когда умирает кто-то из незнакомых, чаще всего ничего не испытываешь. Где-то между двумя этими состояниями я нахожусь сейчас. Уходя из ИСИ заметил траурную бумажку на проходной: умер директор института гидродинамики СО РАН Владимир Михайлович Тешуков... В моей памяти он останется таким, как я его запомнил на экзамене по МССж зимой 2006 года: седым терпеливо усталым человеком в сдвинутых на нос очках...
Rest in Peace, Владимир Михайлович. | |
|
| Увидел у grundik потрясающее (и отчасти срывающее крышу) творение Norman МcLaren'а под названием Canon. Для справки: В музыке каноном называется полифоническое произведение, в котором основная мелодия сопровождается подобными ей, вступающими через некоторый промежуток времени после её начала. | |
|
| Некто Mark Dowd из IBM описал на 25 страницах статьи Application-Specific Attacks: Leveraging the ActionScript Virtual Machine как возможно эксплуатировать уязвимость в Flash Player, который в одном месте не проверяет удачность попытки выделения памяти. Если описать сделанное им кратко, то получается примерно следующее: - Мы заставляем Flash Player при загрузки специально приготовленного SWF файла попросить слишком много памяти, аллокатор отказывается и возвращает NULL.
- Проверки на NULL не делается, Flash Player пытается записать некоторый DWORD по некоторому адресу (NULL + offset);1
- Мы подбираем offset и DWORD так, чтобы особым образом подкрутить внутренние структуры ABC-верификатора2
- Верификатор особым образом сходит с ума и начинает считать некоторые ранее незнакомые3 ему инструкции - хорошими. Внутри таких инструкций оказывается возможным спрятать от верификатора мешанину из "нехороших" инструкций, манипулирующих со стэком, и (sic!) нативного x86 кода.
- После того как код прошел верификацию он запускается, при этом стэк виртуальной машины размещается на обычном стэке процессора4. Размер у него предвычеслен на этапе компиляции и проверен на этапе верификации. Ну а поскольку верификатор был слегка не в себе, он пропустил байткод, который пишет и читает за пределами стэка виртуальной машины, т.е. прямо из обычного стэка. Далее подмена адреса возврата и дело в шляпе.
Тут важно отметить, что подмена делается аккуратно, shellcode получает подмененный адрес возврата и может завершиться нормально, не вызывая падения Flash Player'а, т.е. незаметно для пользователя. Вообщем я нахожусь в легком шоке от изящности сей махинации.. -- 1 — На эти числа есть ограничения, но подробнее о них вы можете прочитать в самой статье; 2 — ABC - это байткод, который исполняется виртуальной ActionScript машиной. Верификатор проверяет некоторые свойства кода переданного на вход виртуальной машины, например, типы операндов и что самое важное максимальную глубину стэка; 3 — Тут важно заметить, что верификатор выбрасывает исключение, если обнаруживает незнакомую инструкцию, а интерпретатор просто пропускает их. 4 — вспоминается GNUшный alloca ^^'
| |
|
|