Бесплатно скачать Adobe Flash Player

Флещь опасносте!11 или снова смерть декомпиляторам?

О новом Flash Player 9.0.124 мы уже писали: он поддерживает новую политику безопасности. А что за политика? Большая политика. Речь идет о глобальной AS-уязвимости Flash Player всех версий, кроме самой последней — 9.0.124. И похоже, что флэш-декомпиляторам может прийти крышка от старых добрых манипуляций с байткодом.

Подробно на все вопросы отвечает статья от Nox Noctis: Тотальная уязвимость Flash Player.

Вы не смотрите, что я пишу в шутливом тоне. Это я от волнения. Дело на самом серьезное, читать и понимать статью — срочно.

Писал: Rost, 18 Апрель 2008 14:08

Комментарии:

то что один человек скомпилил, другой завсегда декомпилить сможет... =)

Moulin Cook - 18 Апрель 2008 17:12

Не знал что манипуляции с байткодом декомпилерам уже пофиг

Fernando Costa - 18 Апрель 2008 17:16

Любителей bytecode cloacking нужно расстреливать в детстве из рогатки. Сделать код недекомпилируемым можно и без этого.

PS Рост, а предложение в заголовке -- оно на каком языке? ;)

Max - 18 Апрель 2008 18:09

Не понял, а при чём тут декомпиляторы?

Dan - 19 Апрель 2008 8:11

Особых причин радоваться не вижу. Да, нашли уязвимость - можно делать bytecode tricks. В следующем апдейте плеера адоб уязвимость закрывает - "защищенные" флешки перестают работать. Кому такое надо?

Ivan Azarov - 19 Апрель 2008 13:06

Если прочитать внимательнее, то можно увидеть, что флешки не должны переставать работать с новыми версиями. Там почти это и написано. Честно говоря, не читал статью Нокса(счас исправлюсь) - использовал для этих целей оригинал.
А, вообще, достаточно перепутать типы тегов в SWF-файле и ниодин декомпилер не отдекомпилит. Защитится методов уйма, смотреть нужно только на важность и значимость информации и алгоритмов, которые прячете.

a_[w] - 20 Апрель 2008 0:50

Погорячился с комментарием - всё может быть и по всякому. Я не учёл момента, что не знаю, как адобовцы решили эту проблему. :)))

a_[w] - 20 Апрель 2008 0:58

Уязвимость не в байт-коде, а в теге DefineSceneAndFrameLabelData.
Она позволяет записать некоторые заранее заданное значение в некоторую заранее заданную область памяти (в адресном пространстве Flash-плеера).

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

Поэтому Марк использует обходной манёвр - с помощью данной уязвимости модифицирует одну из таблиц, используемую верификатором.

Исправляется уязвимость путём закрытия любого из двух багов в обработке тега DefineSceneAndFrameLabelData.
Их действительно два: первый состоит в том, что целочисленное значение проверяется как знаковое, а используется как беззнаковое. В результате отрицательное число проходит проверку, но при использовании превращается в большое число.
Второй состоит в том, что нет проверки на NULL после вызова mem_Calloc().
Исправление любого из этих багов закроет уязвимость.

При чём тут декомпиляторы и протекторы?

Dan - 20 Апрель 2008 11:31



Подписаться на новости (RSS)




Примечания:
Статус документа
: в процессе
   2002-2009 Производство: Ростислав Сирык · О проекте · Подписка на новости (RSS)