LINUX.ORG.RU

sandsifter — ПО для поиска скрытых инструкций x86

 , , , ,


5

7

Domas (@xoreaxeaxeax) опубликовал программное обеспечение для поиска скрытых инструкций и «багов» процессоров на архитектуре x86 путём генерации и отправки различных наборов «нелогичных» инструкций и анализа реакции на них. С предварительными результатами исследования можно ознакомиться в PDF-документации. Код на Python открыт и опубликован на GitHub, там же можно найти презентацию (с мероприятия Black Hat 2017) и скриншоты (gif).

>>> Подробности

★★★★★

Проверено: jollheef ()
Последнее исправление: sudopacman (всего исправлений: 10)

Ответ на: комментарий от anonymous

эмм... ну уточню.. решение уравнений гидродинамики

я честно говоря хз как там можно ЭФФЕКТИВНО юзать авх.

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

Slackware_user ★★★★★
()
Последнее исправление: Slackware_user (всего исправлений: 1)
Ответ на: комментарий от timdorohin

процессор - это большой резистор, вряд ли какая-то инструкция может внезапно уменьшить его сопротивление на порядки

Harald ★★★★★
()
Ответ на: комментарий от Harald

берем ключ, берем в управляющей цепи триггер через программируемую перемычку... берем медную шину...

дальше продолжать?

Slackware_user ★★★★★
()
Последнее исправление: Slackware_user (всего исправлений: 1)
Ответ на: комментарий от Harald

Берём и грузим в ложащемся в кэш цикле avx-ом все исполнительные блоки. Так в стресс тестах делают, нагрев в разы больше чем просто в реальных приложениях.

anonymous
()
Ответ на: комментарий от i-rinat

Ну это немного тухловато. На инженернике нашли комбинацию байт, которая вешает процессор. Штатный случай, по сути, для выявления таких вещей у штеуда целая лаборатория есть, и именно для этого и выпускаются инженерники. Чего б поинтереснее рассказали...

anonymous
()
Ответ на: комментарий от cvv

Да. -2 это SMM, а печально известный ME называют кольцом -3. Понятное дело, что это неофициальные названия.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Не слышал о таких названиях раньше :-)

cvv ★★★★★
()

для поиска скрытых инструкций и «багов»

Как баги искать понятно. Как он будет искать скрытые инструкции?

NextGenenration ★★
()
Ответ на: комментарий от anonymous

На инженернике нашли комбинацию байт, которая вешает процессор. Штатный случай, по сути, для выявления таких вещей у штеуда целая лаборатория есть, и именно для этого и выпускаются инженерники.

Честно говоря, сомневаюсь, что штатный. Я бы ожидал, что такие баги будут отлавливаться ещё на стадиях дизайна. Всё-таки ждать до готового кремния, чтобы начать тестить логику, это странно. И дорого, наверное.

Разве что в модели всё нормально, а баг проявляется только в кремнии. Тогда это эпик-баг. Но тоже явно не штатная ситуация.

i-rinat ★★★★★
()
Ответ на: комментарий от pftBest

Так баги будут проявляться и при виртуализации

anonymous
()

под win не скомпилировать, жаль

anonymous
()
Ответ на: комментарий от Harald

достаточно им пережечь шину питания камня. хотя бы одну.

Slackware_user ★★★★★
()
Ответ на: комментарий от anonymous

Везде, см закон Амдала. Например тупо браузер/офис/ide/игоря.

Мда... Это правда... Браузеры нынче хавают поболее некоторых шутеров. Ну так, если в них впихнули виртуальную среду исполнения с прекомпилятором, базой данных и библиотеками сетевого взаимодействия.

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

А убедить высокое начальство, не понимающее ничего, что не обозначено ценниками, — дело очень «эффективных» менеджеров. В общем-то, их главное предназначение — выколачивать деньги. А задавать вопрос, как же всё то же самое раньше прекрасно работало на «третих пнях», считается неприличным — сразу заклеймят противником «прогресса».

Десктопы+рабстанции+консоли?

Серверов, маршрутизаторов, программируемых свитчей, различных контроллеров, мобильных устройств и ноутбуков — в разы больше, чем упомянутого. Ещё про моноблоки не забываем.

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

Если б дать за ним посидеть и потом подарить мало бы кто отказался.

Сидел. Нафиг он? Отказался. Ещё доводы?

Хотя конечно новые процы поэнергоэффективнее, никуда не денешся.

Это ещё большой вопрос, насколько они эффективны. На работе Эльбрус-4С+ в среднем тянет уровень Core2Duo, но это всё при частоте в 800 Мгц, на которой разве что «третьи пни» крутились.

krotozer
()
Ответ на: комментарий от anonymous

Выбираю по ТХ. Отсеиваю все процессоры, выделяющие больше 90 ватт, вдумчиво читаю разницу в архитектурах, собираю из таблиц тестов с крутыми камушками значения для интересующих в свою собственную таблицу, и выбираю уже из них.

Сейчас сижу на AMD Phenom FX 6300 HexaCore 4000 MHz и вполне доволен им. Единственный случай, когда его не хватает, — архивация в 7-Zip LZMA2 или TAR XZ, но там и Xeon выпуска 2015 года страшно тупит.

krotozer
()
Ответ на: комментарий от Khnazile

Но при примерно одинаковом количестве зондов ryzen лютое говно в плане производительности в бытовых задачах

Не могу спорить, Ryzen на практике не тестировал.

krotozer
()
Ответ на: комментарий от anonymous

Эм, core2duo уже 11летнее дно, их и аналоги просто выкидывают.

Есть такое понятие, как «поэтапное развитие архитектуры», которым занимаются люди учёные, а не менеджеры среднего звена. Т.е. те, благодаря кому все эти технологии вообще существуют.

А если сейчас сравнивать закрытую разработку, доступную для покупки только юрлицам и военным, с топовыми «штеудами», то это Вам, товарищ, в лечебно-профилактическое заведение с мягкими стенами надо) Так можно любой лабораторный образец сравнивать с рыночным аналогом)

Речь-то не о конечном продукте, а об энергоэффективности самой архитектуры. Интел тянет за собой уже перешедший все разумные пределы пласт обратной совместимости на аппаратном уровне, чтобы тупо не проиграть рынок тем же ARM-поделкам. К слову, в Эльбрусе есть режим бинарной трансляции x86-кода, который пусть и несколько медленнее нативного режима пашет, зато на архитектуру проца не влияет почти никак. А что делает «штеуд»? Городит огород и демонстрирует навыки рядового Черезтризаборавысоконогозадерищенко. Ну, прям, ВЫСОКИЕ, мать их, технологии! XD))) Это всё не упоминая, откуда они слямзили «свой» HyperTreading...

krotozer
()
Ответ на: комментарий от krotozer

Не могу спорить, Ryzen на практике не тестировал.

Если бережешь свои деньги, могу рекомендовать не пробовать до выхода второй ревизии архитектуры zen в следующем году. Через меня уже несколько моделей текущих процев прошло, с разной памятью и платами, ни одна приятно не удивила.

Сам очень жду нормальный десктопный apu с одним cxx-блоком и видеоядром vega. Т.к. релиз десктопных apu запланирован на 18 год, есть надежда, что они выйдут сразу на zen+ и не будут полным провалом.

Khnazile ★★★★★
()
Ответ на: комментарий от krotozer

Твои рассуждения уровня домохояйки есть чем подкрепить? Например i7-7920hq, 45вт, быстрее твоего эльбруса(если как ты говоришь он как кор2дуо) в 6+ раз, бгг.

anonymous
()
Ответ на: комментарий от i-rinat

Разве что в модели всё нормально, а баг проявляется только в кремнии.

А если в модели и кремнии все нормально, а вот микрокод/таблицы декодирования - лажа.

Kuzz ★★★
()
Ответ на: комментарий от Kuzz

Скорее всего, микрокод проверяют на той же модели, которую гоняли перед реализацией в кремнии. Да, это не то же самое, что работа в реальном процессоре. Но зато в модели доступна такая информация о внутреннем состоянии, которую никакими MSR наружу не выведешь.

i-rinat ★★★★★
()
Ответ на: комментарий от Harald

как посчитал?

На полной мощности процы жрут до 130 Вт, а напряжение питания составляет порядка 1.1–1.3 В.

i-rinat ★★★★★
()
Ответ на: комментарий от Harald

Посмотри сколько в тестах в рендере процы жрут и какое на них напряжение. Тащемт и 200ампер будет на топовых на серверном сокете.

anonymous
()
Ответ на: комментарий от Khnazile

Если бережешь свои деньги, могу рекомендовать не пробовать до выхода второй ревизии архитектуры zen в следующем году.

Согласен, это — очень толковый совет. Одна из причин, почему не покупаю самое современное железо, если даже финансы позволяют.

Сам очень жду нормальный десктопный apu с одним cxx-блоком и видеоядром vega.

А к этому всё и идёт. Между прочим, у AMD даже больше шансов такое выпустить, чем у Intel. Если только те не скупят NVIDIA. =)

Сейчас всё чаще видеокарты начинают нагружать расчётами. И речь вовсе не о майнинге. Кодирование/декодирование видео. В одном случае даже аудио. Архивация частично задействует, хотя это не самая оптимальная задача для видеопроцессора. Криптографию на видеоадаптер сваливают. Сейчас, ведь, настоящий бум на трансляцию шифрованных данных потоком. Я уж не говорю про нейросети.

krotozer
()
Ответ на: комментарий от krotozer

В видеокартах для видео отдельный asic.

anonymous
()
Ответ на: комментарий от anonymous

Например i7-7920hq, 45вт, быстрее твоего эльбруса

Опять двадцать пять... Эльбрус — не рыночный процессор! Снизь частоту Core i7 до 800 МГц, отключи HyperTreading, тогда ещё хоть как-то можно сравнивать. Эльбрус сравнивать с текущими рыночными предложениями нельзя!

Опять для самых ГЛУХИХ: я сравниваю не конечный продукт, а его архитектуру! И это — не повод говорить, что Эльбрус лучше. Это лишь показатель эффективности архитектуры Intel.

Умеет Intel за один такт объединив в единый блок все АЛУ провести операцию над крупным вещественным числом? Умеет? Нет, конечно... Он никогда этого и не умел. Так что, великий офисно-диванный эксперд, повесь свои претензии на гвоздик и любуйся ими в гордом одиночестве.

krotozer
()
Ответ на: комментарий от i-rinat

Это будет еще и медленнее. Так что может не получиться покрыть все возможные команды со всеми возможными операндами.
Особенно весело может быть в ситуациях, вроде такой:
Ширина шины (внешней) адреса 48 бит, регистры - 64.
Значит, выставив старший бит адреса в 1 в операции копирования из регистра в память получаем запись в служебный регистр, номер которого - младшие биты адреса.
И вот как поведет себя декодер, если в 1 поставить не старший, но не доступный в железе бит, или номер - больше.

Kuzz ★★★
()
Ответ на: комментарий от krotozer

Чего это нельзя? Я сравниваю производительность/потребление, те энергоэффективность. А ты пытаешься как нибудь раскорячится, чтобы оправдать убогость вашего поделия, да ещё и выдать за преимущество.

anonymous
()
Ответ на: комментарий от anonymous

Ну или ryzen 1700, 65вт, быстрее твоего поделия в 11раз, бгг.

Мда... Ты сейчас выдал своё невежество, школьник, с потрохами...

Никто не сравнивает производительность семпла. Сравнивается производительность архитектур МЦСТ VLIW и Intel EM64T.

Может сначала читать научишься, что тебе пишут? Или мозг включать хоть иногда!

krotozer
()
Ответ на: комментарий от krotozer

У тебя ничего не сравнивается, ты просто выдаёшь ничем не подкреплённые рассуждения уровня домохозяйки. А твой пост с бульканьем всё более укрепляет твой образ как школьника.

anonymous
()
Ответ на: комментарий от Kuzz

И вот как поведет себя декодер, если в 1 поставить не старший, но не доступный в железе бит, или номер - больше.

А разве это не должно фикситься на уровне компилятора?

Думаю, тут может быть вызвана к действию макрокоманда, что за примерно четыре такта провернёт операцию, но да, это медленнее.

krotozer
()
Ответ на: комментарий от krotozer

Понятно, что компилятор должен давать правильные инструкции, как в спеке описано. Но здесь же речь о поиске вот таких «скрытых» или «бажных».

А вообще, сейчас система команд у х86 головоломно сложна. Да и еще есть куча нюансов, вроде внутренних состояний процессора, out of order execution, колец защиты, режимов и как это все сочетается.

Kuzz ★★★
()
Ответ на: комментарий от anonymous

Чего это нельзя? Я сравниваю производительность/потребление, те энергоэффективность.

По энергоэффективности текущие сэмплы пока проигрывают в силу тех-процесса. Учитывая, что конечные чипы производятся по договору на TSMC, США наложили запрет на продажу лицензии и технологии производства ниже 90 нм, а собственный техпроцесс ещё в разработке.

И что теперь? Это отменяет раскоряченную архитектуру Intel? По сему выходит, что ARM никуда не годится и ничего не может, ага) И весь мир сошёл с ума, раз не сидит на твоих любимых Штеудах) Один ты умный, а остальные — дебилы, ага)

вашего поделия

Вашего, это чьего? Ты с кем меня путаешь, мальчик?

krotozer
()
Ответ на: комментарий от Kuzz

Это будет еще и медленнее.

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

Значит, выставив старший бит адреса в 1 в операции копирования из регистра в память

Вообще-то там расширение со знаком, так что 0xffffffffffffffff это допустимый адрес. Но по сути да, там легко спрятать что-нибудь.

как поведет себя декодер, если в 1 поставить не старший, но не доступный в железе бит, или номер - больше.

Нормально себя поведёт. Легко проверить:

#include <stdio.h>
int main(void) {
    printf("%d\n", *(int*)0xf2ffffffffffffff);
}

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

У тебя ничего не сравнивается, ...

А я обязан тебе что-то тут разжёвывать, не имея техдоков процессора на руках?

Понятно. Пациент болен и не пригоден к диалогу. Гуляй.

krotozer
()
Ответ на: комментарий от krotozer

Нет пруфов — всё что ты рассказываешь воспринимается на уровне анекдота. Пока что реальные процы у таких плохих интел с амд просто как технологии инопланетян, относительно эльбрусоподелия.

anonymous
()
Ответ на: комментарий от Kuzz

Но здесь же речь о поиске вот таких «скрытых» или «бажных».

Ну, тут многое упирается в микрокод, зашитый в кристалл. Так поведение ревизий может отличаться.

А вообще, сейчас система команд у х86 головоломно сложна.

Ну, учитывая, что это RISC, обёрнутый в CISC. Всё равно что кусок алгоритмов завернули в проц.

Тут, ведь, стоит учитывать, что в момент исполнения микрокода некоторые регистры оказываются заняты, что накладывает ограничение на параллельное исполнение других микрокоманд. Собственно, падение производительности HT. Чтобы такое спрогнозировать на уровне компилятора, нужно в несколько проходов имитировать поведение процессора. Не проще ли тогда отказаться от CISC вообще?

Целью проекта наверняка был поиск пресловутых «закладок» вслепую. Ну и заодно — поиск ошибок.

krotozer
()
Ответ на: комментарий от krotozer

А задавать вопрос, как же всё то же самое раньше прекрасно работало на «третих пнях», считается неприличным — сразу заклеймят противником «прогресса».

Безусловно, раньше для того чтобы играть в кризис или смотреть видео в 4K хватало первопней. Не то что сейчас(сарказм)

Всё это племя неандертальцев теперь моду задаёт и всеми правдами/неправдами тянет любые прикладные задачи на свой инструментарий

А крестофилы чем в это время занимались? Почему не пишут сайты на крестах? Неужели вымерли?

На работе Эльбрус-4С+ в среднем тянет уровень Core2Duo

В году 2017ом. Ещё и жрёт как кипятильник.

но это всё при частоте в 800 Мгц, на которой разве что «третьи пни» крутились.

Какой смысл в каждой теме упоминать про эти 800 МГц? У вас там даже 2000 не наступил? Это что, единственное чем вы можите гордится? У интела например есть процессоры на 18 ядер и 3,3 ГГц.

NextGenenration ★★
()
Ответ на: комментарий от krotozer

А если сейчас сравнивать закрытую разработку, доступную для покупки только юрлицам и военным, с топовыми «штеудами», то это Вам, товарищ, в лечебно-профилактическое заведение с мягкими стенами надо) Так можно любой лабораторный образец сравнивать с рыночным аналогом)

Ты ведь сравниваешь

Речь-то не о конечном продукте, а об энергоэффективности самой архитектуры

Уже есть мобильные эльбрусы?

NextGenenration ★★
()
Ответ на: комментарий от krotozer

Снизь частоту Core i7 до 800 МГц, отключи HyperTreading, тогда ещё хоть как-то можно сравнивать.

Допустим. Интел можно взять в магазине через дорогу. Эльбрус через дорогу явно взять нельзя.

NextGenenration ★★
()
Ответ на: комментарий от anonymous

Можно сделать манёвр сравнения зеонов времён кор2 и нынешних же.

anonymous
()
Ответ на: комментарий от NextGenenration

Нужно от этого болезного требовать чтоб на эльбрусе поднял частоту до 4.5. До него же не дойдёт, что его архитектура такого не позволит, даже если будет соответствующий техпроцесс.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.