Pull to refresh
4
0
Send message

Апдейт: добавили брейкпойнт до запуска приложения. При активной сессии отладки будет триггериться брейкпойнт после загрузки кода в память, но до его запуска. В этот момент можно расставить все нужные точки в самом коде приложения.

РТК, там на скоростных тарифах выдают ту самую белую динамику. Тариф "апгрейд 500" оказался буквально апгрейдом и по скорости, и по цене.

РТК на некоторых тарифах сейчас выдаёт белую динамику. Хоть по условиям тарифа она и не обещана. На такой тариф я и ушёл.

Они ещё и IPv6 выдают, но толку от него немного - он зацензурен по спискам РКН. Проще отключить на роутере и ходить в IPv6 через брокера 6in4. Есть даже с эндпойнтами в Москве, что даёт минимальное увеличение пинга. Но для 6in4, опять-таки, нужен "белый" адрес.

Я один из ушедших - в начале 2022 отключился от домашнего интернета Билайна. Пользовался им ещё с Корбины, года с 2007. Стабильность была более-менее, но где-то с 2021 года Билайн, без каких-то уведомлений, перестал выдавать белые динамические адреса. Просто всех домашних пользователей загнал за CGNAT и предложил купить статический адрес, если очень уж хочется. Опции динамического адреса не было даже за деньги.

Однако, какое-то время можно было получать белые адреса, как прежде, если ходить через устаревший L2TP вместо IPoE. Для этого надо было просить саппорт подключить такой доступ для своей учётки - но он периодически всё равно слетал. После чего надо было висеть на телефоне, прорываться через первую линию саппорта и просить вернуть доступ. А потом и этот вариант прикрыли, и по L2TP тоже стали выдавать "серые" адреса.

Пытаться удержать меня, древнего и постоянно платящего клиента, Билайн не стал - просто предложили подать заявление на расторжение договора в ближайшем офисе. Что и было сделано.

Он просаживает питание на микроконтроллере. Если это сделать кратковременно и в нужный момент, то контроллер не перезагрузится, но может неправильно выполнить что-то, чем был занят. Например, при чтении установленного где-то бита защиты прочитать не то значение, что заставит его работать, будто защиты нет.

Иногда это чтение режима делается один раз при запуске контроллера, тогда достаточно однократно подловить момент и длительность воздействия. При успехе контроллер загрузится без защиты. Иногда эта проверка делается чаще, как в данной статье - и тогда надо городить что-то в духе описанного.

Мы планируем некоторые улучшения со стороны отладки - ожидание аттача дебаггера и прочие мелочи.

Избавиться от usb пока не получится, rpc для заливки файлов через swd/дебаг-борду недоступен.

>После настройки среды необходимо добавить в файл конфигурации VS Code путь подключения библиотек чтобы их видел InteliSense в файлах приложений

Не надо так делать, IntelliSense работает с compile_commands.json, который генерится при сборке полной прошивки. Он оттуда возьмёт все необходимые пути до инклюдов (и не добавит лишние/приватные, как это делает приведённый пример).

Ещё есть ufbt - standalone сборщик приложений, с которым не нужно тащить и собирать всю прошивку целиком. Очень советую пользоваться именно им.

Делл спокойно разорвал. Купленный в январе 2022 год доп. гарантии на ноутбук превратился в тыкву и сообщение о "проблемах" с гарантией при проверке по service code.

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

Ни Valve Anti-Cheat, ни EAC, ни BattlEye не согласятся запускать игру в системе с отключённой проверкой подписи драйверов. И вылечить это добавлением параметра не получится. Ну, или с потерей онлайн-режима.

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

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

А ещё после отключения проверки подписи ни одна приличная игра с современным античитом не запустится.

Мне этот ваш бот getmatch уже больше года раз в 2 недели спамит вакансиями, предлагает нажать кнопку, чтобы "выбрать". И ещё ни разу не сработал, каждый раз пишет " ? getmatch временно вышел из строя. Всё будет в порядке: скорее всего уже чиним!". Мне уже интереснее, чем эти вакансии, заработает ли бот хоть когда-нибудь.

К - качество.

Публикация не наша, и инструменты в ней другие - там IDA+ST-шное железо и софт, у нас Ghidra и JLink. И там добыча прошивки хардкорнее. Но итоговое решение с патчингом адресов, фактически, такое же.

А перебор со знанием алгоритма U_ID можно было бы реализовать быстрее, ограничив диапазоны отдельных байт до размеров пластины.

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

1) в качестве "мозгов" стоит STM32F070F6P6, залоченный от чтения (RDP1);

2) после перепрошивки бейдж не теряет баланс;

3) у всех бейджей одна и та же прошивка.

Также был публично доступнен "банкомат" рядом с киоском мерча за оффкойны (валюту бейджей конференции), который отображал баланс приложенного бейджа. А ещё на бейдже были заботливо выведены и даже подписаны пины SWD - отладочного интерфейса под ARM.

Проследив выводы разъёма для "пополнения" до чипа, предположили, что на него выведен UART. Гипотеза подтвердилась с помощью USB-UART конвертера. Бейдж после включения постоянно шлёт в этот порт на 115200 бод посылками по 40 байт, которые меняются между включениями одного бейджа, но имеют между собой общее начало. А у разных бейджей посылки совершенно отличаются друг от друга.

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

У многих микроконтроллеров от ST с завода есть серийник, расположенный в ROM. Он формируется по координатам чипа на пластине с завода, а также номеру партии. Логично было бы предположить, что этот серийник и используется в качестве исходных данных для формирования пакета на UART. Пожертвовав во благо науки одним бейджем, понизив на нём RDP1 до RDP0 (попутно стерев с него прошивку механизмами безопасности чипа), нашли в ROM 12 байт айди. Впоследствии оказалось, что для чтения айди можно было бы и не понижать RDP, но было уже поздно.

С помощью CyberChef практически сразу выяснилось, что начало пакета - 12 байт - совпадают с SHA1(12 байт id). Более того, работала replay-атака на проверку баланса - заполучив пакет с бейджа, можно было выдать его же на "банкомат" и увидеть баланс оригинального бейджа.

С помощью пары других бейджей выяснили вариативность айдишнков. Из 12 байт менялось всего 4 - 0, 2, 4 и 10, причём диапазон удалось снизить всего до 5 миллионов айди, большинство которых лежало в самом начале диапазона (принадлежали к основной партии чипов). С помощью простейшего скрипта получилось "сбрутить" айди соседнего бейджа, для которого была известна только авторизующая посылка. Но полный алгоритм формирования посылки оставался неизвестным. Можно было бы, конечно, полагаться на случайность и недостаточную валидацию данных сервером баланса, но хотелось большего.

В ходе попыток чтения с помощью JLink по SWD разных бейджей в полевых условиях нам то ли повезло подглитчить питание чипа в момент его запуска (нет), то ли попался экземпляр без защиты, но очередной подопытный показал в утилите JMem валидное состояние флеша без запроса на стирание из-за RDP1. Сразу же сдампили с него прошивку, закинули в Ghidra + SVD loader. Обнаружили ожидаемое - SHA1 из PolarSSL, чтение 12 байт аппаратного айди и многое другое по формированию исследуемой нами подписи. БОльшая часть происходящего была упакована в одну функцию и анализу с наскока не поддалась.

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

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

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

На этом моменте мы обратились к железячным представителям оргов с вопросом, что бы они посчитали взломом экономики. Они сказали, что таковым будет считаться возможность представиться чужим бейджем и даже выдали 12 байт SHA1 от своего личного. По SHA1 и перебором по маске за несколько секунд нашли айди чипа, после чего он был зашит в "вылеченный" бейдж и представлен оргам. Которые подтвердили успех решения задачи и наградили всех причастных приличным количеством оффкойнов.

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

Ещё была "Орда: Северный Ветер" родом из 1999 г. - наш ответ Варкрафту. На удивление неплохая РТС.

У моих авто салонное оборудование и розетки имеют управляемое питание и отключаются от 12В через некоторое время после закрытия машины. Так что высаженные до состояния "мозги не включаются" авто можно через салонную розетку заряжать бесконечно долго.

А когда-то Intel ведь продал своё ARM-подразделение, XScale.

SAR-ы у современных трубок гораздо меньше, чем в эпоху древних звонилок.

Information

Rating
Does not participate
Registered
Activity