воскресенье, 31 января 2016 г.

Мутная ситуация с EMET

Вчера, заглянув в комссомольский поток коллективного бессознательного, наткнулся на упоминание EMET 5.5: Олег Дивов делился впечатлениями о новой версии, а на странице с описанием красовался номер 5.5 Final (5.5.5871.31892). Поленившись искать официальную информацию, я там же скачал дистрибутив.

У меня была установлена версия 5.2, причем стояла она как-то неконкретно: время от времени система (Win7x64) при загрузке проваливалась в BSOD без видимых тому причин и без создания каких-либо дампов... Единственная закономерность: BSOD почти гарантированно возникал после манипуляций с шаблонами в правилах EMET. При этом выполнять восстановление системы не требовалось, повторная попытка загрузиться проходила благополучно. Кстати, в связи с этим рекомендация: между удалением одних правил EMET и добавлением новых выполняйте перезагрузку.

Итак, я установил EMET 5.5. Первая странность — не пожелал изменяться режим DEP. При попытке его изменить выскакивало сообщение о невозможности приостановить BitLocker, который я вообще не использую.

Странность вторая, как будто положительная, но интуиция подсказывает, что радоваться тут рано... Исчезли прежние конфликты с функцией EAF. Т.е. все программы, раньше вылетавшие от EAF со свистом, нормально запустились. Это и Firefox, и TotalCommander, и много чего. Да, в описании указано некое «улучшение производительности EAF/EAF+». Но, во-первых, заявлено улучшение именно «производительности», а во-вторых, Олег Дивов в комментариях сообщает, что опции EAF/EAF+ на нее действительно влияют... в сильно отрицательную сторону. У меня же — вообще никакого эффекта. Напрашивается вопрос: а работают ли эти функции?

Третья странность — конфликт с CIS. Я писал, что анализ командной строки в CIS перестает работать для программ, защищенных функциями Caller, SimExecFlow или StackPivot. В EMET 5.2 достаточно было отказаться от этих функций, чтобы анализ командной строки вновь заработал. В EMET 5.5 — нет. Когда я добавил TotalCommander в правила EMET, из него стали беспрепятственно запускаться любые скрипты, причем отключение функций не снимало проблему. Лишь удаление TotalCommander'а из правил EMET вернуло контроль над командной строкой.

Наконец, я понял, что неплохо бы почитать официальную документацию, а не тыкаться вслепую. Что ж, открываем страницу EMET и... пытаемся найти там упоминание «финала». Упс, где же он?! Обнаруживаются только упоминания беты 5.5 и ссылка на версию 5.2. Вбиваем «EMET 5.5 final» в DuckDuckGo — видим лишь мутные форумы.

Так был ли финал? Кажется, о нем даже в Microsoft не знают... Справедливости ради, надо отметить еще одну странность: на официальной странице EMET ссылка на версию 5.2 не рабочая. По крайней мере, у меня. То ли у MS проблемы с сайтом, то ли финал таки был, но ему дали задний ход...

Update: Что изменилось через день. На официальной странице EMET по-прежнему актуальной версией значится 5.2, и ссылка на нее теперь заработала. Однако страница загрузки EMET 5.5 на сайте MS тоже, оказывается, существует, причем слова «beta» на ней нет; мануала к версии 5.5 не прилагается. Ждем развития событий.

Update: Забыл сообщить, что еще через пару дней версия 5.5, наконец, засветилась на официальной странице. Та же самая сборка, но уже с мануалом. Пока сказать нечего: я остался на 5.2 из-за конфликта с анализом командной строки.