Ну он S3 не тестил, только C3/C6, но я посмотрел бутромы - есть те же фрагменты кода, где можно создать успешный глитч и прыгнуть в контроллируемый участок (в теории, офк).
Да, я пролистал слайды, интересно. Я прикидывал тот же глитч использовать как и Courk для c3/c6, но будем посмотреть после того, как найду время отладить систему)
С увеличенной частотой ацп получилось уменьшить число сэмплов? А то вымораживает ждать несколько часов пока 500-600к насобираю, чтоб обнаружить что получил ерунду)
Тоже собрал такую плату (как есть, без модификаций железа - благо гербер и бом есть, только gateware подправил), но увы руки у меня кривые и пока получилось только спалить ADC. Надо как-то вернуться к проекту раз есть ещё удачные примеры взлома.
Тогда в статье есть неоднозначность: "Согласно спецификации, все USB HID устройства по-умолчанию активируют «Report Protocol». "
Я не помню была ли у меня проблема с какими-то устройствами без принудительной установки протокола, но думаю что код у меня не возник из ниоткуда, и всё же что-то там глючило.
Норм талмуд. Почти нет фактических ошибок, так по мелочи. В своё время тоже занимался такой ерундой)
Могу разве что добавить, что автор хоть и упомнял смену протокола для HID устройств, но почему-то в коде этого не сделал. Желательно принудительно отправить SetProtocol, чтоб устройство точно работало в Boot Protocol режиме.
LLVM не знает этого. Но в нём есть блок "Scalar evolutions" (https://www.npopov.com/2023/10/03/LLVM-Scalar-evolution.html), который определяет некоторые характеристика цикла, в том числе и способен представить значение result в виде рекуррентной формулы.
В мире эксплоитов это действительно средний уровень. Бесхитростный heap grooming и парочка race condition'ов. Не самый простой механизм эксплуатации, но есть уязвимости, которые требуют куда больших усилий.
Ну он S3 не тестил, только C3/C6, но я посмотрел бутромы - есть те же фрагменты кода, где можно создать успешный глитч и прыгнуть в контроллируемый участок (в теории, офк).
Да, я пролистал слайды, интересно. Я прикидывал тот же глитч использовать как и Courk для c3/c6, но будем посмотреть после того, как найду время отладить систему)
А, ну прикольно тогда. Я больше на S3 смотрю в качестве цели.
Ну у первоисточника всё чётко разложено, разве что интересно про оптимизации почитать.
С увеличенной частотой ацп получилось уменьшить число сэмплов? А то вымораживает ждать несколько часов пока 500-600к насобираю, чтоб обнаружить что получил ерунду)
Тоже собрал такую плату (как есть, без модификаций железа - благо гербер и бом есть, только gateware подправил), но увы руки у меня кривые и пока получилось только спалить ADC. Надо как-то вернуться к проекту раз есть ещё удачные примеры взлома.
https://github.com/jtang613/GhidrAssist - такой агент немного помогает. Но как обычно, чудес ждать не стоит и нужно знать какие вопросы задавать)
Тогда в статье есть неоднозначность:
"Согласно спецификации, все USB HID устройства по-умолчанию активируют «Report Protocol». "
Я не помню была ли у меня проблема с какими-то устройствами без принудительной установки протокола, но думаю что код у меня не возник из ниоткуда, и всё же что-то там глючило.
Норм талмуд. Почти нет фактических ошибок, так по мелочи. В своё время тоже занимался такой ерундой)
Могу разве что добавить, что автор хоть и упомнял смену протокола для HID устройств, но почему-то в коде этого не сделал. Желательно принудительно отправить SetProtocol, чтоб устройство точно работало в Boot Protocol режиме.
Ну и на практике у меня некоторые клавиатуры не заводились (не отправляли данных "Interrupt IN") пока я не дергал
GetDescriptor(HID_Report)Не, в данном случае это не peephole оптимизация, а всё круче)
LLVM не знает этого. Но в нём есть блок "Scalar evolutions" (https://www.npopov.com/2023/10/03/LLVM-Scalar-evolution.html), который определяет некоторые характеристика цикла, в том числе и способен представить значение
resultв виде рекуррентной формулы.В мире эксплоитов это действительно средний уровень. Бесхитростный heap grooming и парочка race condition'ов. Не самый простой механизм эксплуатации, но есть уязвимости, которые требуют куда больших усилий.
У Кена не только серия твитов есть про этот баг, но и полноценная статья - https://www.righto.com/2024/12/this-die-photo-of-pentium-shows.html
Универсальной платы ft232h хватает чтоб через JTAG программировать stm32.
На армах еще pointer authentication полезно использовать.
open source - берешь да паяешь)
Вот такой вариант из самоделок рассматривал - https://www.crowdsupply.com/centylab/pocketpd
Мой SBC на i8080 показывал 112 dhrystones ;)
https://habr.com/ru/articles/938070/
Возможно там есть привязка к сканерам (сверху есть плашка с упоминанием этой технологии).