Просматривая очередное видео канала PRO Hi-Tech ознакомился с тестами "до и после" применения патча исправляющего данную проблему под Windows, где рассказывалось о возможном изменении в скорости работы. Как-то это уже серьезно подумал я и занялся RTFM. Действительно интересная тема. В кратце берется массив в виртуальной памяти представляющий собой 256 элементов равных PAGESIZE для текущей системы, используется как словарь, где номер индекса символизирует код байта который нужно прочитать из закрытого участка, далее происходит следующее: 1. Выполняется XOR регистра EAX/RAX, чтобы были нули. 2. Читается байт из закрытого участка памяти в регистр AL. 3. Сдвигаются биты EAX/RAX влево, чтобы байт превратился в смещение словаря (к нужному элементу размером PAGESIZE), тут думаю понятно почему расстояние между элементами PAGESIZE? 4. Считываются в какой-нибудь регистр данные из словаря по полученному смещению из предыдущего шага, таким образом расчет на попадание страницы с нужным индексом в кэш. По факту этот код не будет работать, естественно, но по задумке изменит внутреннее состояние CPU (выполнившись как-бы виртуально, процессор не передаст). Далее выполняется вычисление скорости обращения к каждому элементу словаря, самая быстрая обработанная ячейка будет иметь индекс того байта который нужно прочитать (трюк с кэшем). Для проверки данной информации собрал 3 - 4 различных PoC, некоторые переписал почти с нуля. В результате ничего рабочего не получилось. Пытался читать как PE-заголовок ядра, так и внутренние данные текущего процесса. Различные способы были испробованы. Кто-нибудь сумел что-то запустить хотя бы отдаленно работающее? Пока не понятно настоящая ли это угроза или громкая PR компания, возможно проблема не такая и актуальная, как например с коллизиями MD5, где авторы "забыли" упомянуть про MD5 Tail который не позволяет создавать предсказуемые коллизии для данных произвольного размера убивая практическое применение.
im., эм, а ничего что уже есть тема ? Зачем дублировать . Закрываю. Хотите обсуждать - обсуждайте там.