All streams
Search
Write a publication
Pull to refresh
49
0
Евгений @ser-mk

Разработчик, исследователь, аналитик

Send message
Ато вдруг это инструкция перехода?

Про инструкцию перехода я как-то и забыл)
Если не выключить прерывания, программа всегда останавливается на первой инструкции любого из наступивших прерываний. А если их выключить, он больше не попадает в DebugMon_Handler

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

Можно и на лету эскапировать и не потребуется двойной буфер, если уж память жалко.

Про простоту кода, это мое субъективное мнение, доказать я её не пытаюсь. Однозначно crc нужно всегда это да.

С escape-кодированием проще выходит код как-то)
Ведь в дата может быть:
«START, SIZE,START, SIZE,START, SIZE,START, SIZE...» =)

А несколько стартовых байт, по сути, не спасут от
«START, SIZE,START, SIZE,START, SIZE,START, SIZE...»

Про ограничить размер пакета, что вы имели ввиду?
А как быть с такой ситуацией, что приемник пропустил START байт, а в дата лежит такая последовательность байт «START, SIZE», ведь у нас без escape-кодирования.
Он этот пакет пропустит, дальше отправитель будет дублировать этот пакет и приемник уже ни один пакет принять не сможет.
Но в моей конфигурации breakpoint окончания операции не срабатывает по какой-то причине.

Можно вместо брейкпойнта и поллинг окончания операции сделать.

9 — шаг (не получилось реализовать)

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

Интересно сделано в IAR. Это у него так в доках прям написано? или вы реверсили его?
В папке st-link utility есть примеры

st-link utility это вот эту утилиту имеет ввиду
фото
image

Там в папке ExternalLoader подобное применяется, но я так понял это что бы прошивать внешние чипы памяти
А если отладчик будет работать еще и как booloader

А GDB разве позволяет грузить прошивку? Или вы отдельный протокол для этого будете делать?
Спасибо за статью!
#define dbgG ((dbg_t*)DBG_ADDR) // адрес задан жестко, в настройках линкера эта часть озу убирается из доступной

А в чем смысл было убирать в недоступную секцию?
Вроде бы очевидные вещи написаны, но тем не менее такой батхерт в комментариях. Другая культура требует другой подачи материала, тут ничего не поделаешь.
Спасибо за сервисы Grammarly и Linguix. А пользуетесь каким-нибудь sentence search сервисами типа ludwig.guru?
Часто при написании статей на английском нужно проверять корректность употребления фразы или что еще можно к ней добавить. Гугл пытается искать по смыслу, поэтому результат может вообще не содержать исходную фразу. ludwig.guru — прям делает то что требуется, но результат берет из общеупотребимой лексики и не ищет по специализированной литературе.
Так C-SPY это просто расширенная отладка. Или там уже assert можно задавать?
В нашем случае пузырек остается на месте, сжимаясь и расширяясь в такт ультразвуковой волне, и, испуская тысячи вспышек в секунду, порождает стабильное свечение.

Если вы как писали частота
Делим эту цифру на расстояние между излучателями в 65 мм, и получаем частоту в 22.270 Гц

То вроде бы никак не должно быть тысяч вспышек в секунду. Судя по частоте до 50-ти вспышек в секунду.
Интересно, мне казалось они уже в прошлом году были. В этом году хотели к ним присоединиться но они наш запрос что-то проигнорировали.

А фотографии стендов CloudBEAR и Syntacore это из стартап зоны?
результат работы ассоциации разработчиков и производителей электроники (АРПЭ)?

А вы видели в прошлом году стенд АРПЭ? Они берут один стенд для всех и мне интересно как выглядит это сборная солянка)
специально для этого написал ptracer

А у вас не осталось этого ptracer? Интересно взглянуть на прием.
Но вы тем не менее уже всех заинтриговали, если не собираетесь публиковать.
То напишите хотя бы в комментарии кратко. Вполне возможно это придаст мотивации.
Скорее всего атака предполагается на загруженный в память драйвер в процессе его работы, через какую-нить CVE.
А вы похоже имеете ввиду что бы подменять файлы в файловой системе. Но это устройство подключает внешние диски через USB, на которую обычно систему не ставят. И даже если подменять файлы на лету, ТО это не тривиальная задача на таком МК, к примеру работа с Ext4 на нем превратится в то еще испытание
Попробуем перенаправить вызовы (*stream).Write в функцию-прокси:
Примерно так
При попытке вызвать ngrok с данным хуком получаем краш следующего вида:

А здесь вы через LD_Preload делали хук?
А при чем тут кэширование? я так понимаю атак будет происходить через посылки SATA-протокола. Другой вопрос на сколько это удобно…
Интересное портирование у вас вышло!
А плата с DDR2 у вас типа такая?
click
image

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity