Как стать автором
Обновить
0
0

Embedded programmer

Отправить сообщение

Вы б матчасть подтянули бы, а?..

C - тащит за собой необходимый для исполнения минимум

Не тащит, если специально попросить. Ни разу не пробовал подобное для больших машин, но регулярно делаю прошивки под МК, которые содержат ТОЛЬКО то, что лежит в каталоге sources проекта.

C - не видит кода целиком, а ассемблирует каждую команду по отдельности без контекста.

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

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

Зачем?! Если для скорости - в 99% случае компилятор сам не будет генерировать лишние обращения к памяти. Единственный смысл, какой могу придумать - стартап код в какой-то странной железке, которой надо инициализировать память. И вот до этого момента надо иметь гарантию, что туда никто не полезет.

Ни один компилятор на планете не распараллелит расчёты для эффективного использования набора SIMD команд.

М-м-м, какое прекрасное обобщение. Главное - его ни доказать, ни опровергнуть нельзя. Но что-то мне кажется, это вообще не про обсуждаемую операционку (или оно там прямо в ядре видео кодирует?).

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

Здравствуйте.

Ну, если честно, не рефакторить, а читать, анализировать и вставлять какие-то затычки. Это не запредельно сложно (особенно в разрезе "фирмваре дампов" - тут ситуация с оптимизирующими компиляторами СИЛЬНО хуже, чем в "большом" мире).

Извините, что я тут опять с техническими подробностями.

Вот тут очень интересно подробности описаны: https://www.rtl-sdr.com/unlocking-almost-any-vehicle-with-an-sdr-or-arduino/comment-page-159/ (8 лет назад, если что).

У меня только вопрос, может знает кто. Кто-то реализовал описанное на флиппере, или это какая-то другая атака? (не слежу за развитием, особенно всяких неофициальных веток).

Мы про штатный ключ авто, а не брелок внешней сигнализации. Где вы видели штатный штатный ключ, у которого радиоканал дальше 20..50 метров работает? А если говорить про системы smartkey/handsfree, так там дальность больше метра-двух так и вовсе ВРЕДНА, им надо довольно чётко понимать "владелец внутри / владелец рядом с дверью / владелец где-то далеко".

К слову, у нештатных охранных систем с безопасностью всё СИЛЬНО лучше, россия тут реально впереди планеты всей. И радиоканал там двухсторонний, и шифрование приличное (мы делали AES). Батарейку только жрёт, AAA на пару-тройку месяцев максимум.

Почему-то так получается, что немецкие инженеры и в 2012, и в 2002 сразу делали хорошо (ну, в 2002 - не очень хорошо по нынешним меркам, но сильно лучше, чем ничего), а корейские и японские делали "на отвяжись" (и в 2024 году продолжают делать с минимальными изменениями - дыра на дыре в этих "уникальных проприетарных решениях").

Уж не знаю, менталитет это такой, или законодатели хорошо по голове дают...

А железо там копеечное выходит, сильно меньше сотни баксов: сам блок иммобилайзера + считыватель + ключи. Всё остальное - софт, а его в любом случае писать надо для тех юрисдикций, где оно обязательно (см. https://en.wikipedia.org/wiki/Immobiliser )

невелика сложность.

Сделайте, а? Просто, надёжно, чтоб связь устанавливалась за секунду-две, и чтоб от батарейки лет пять работало.

Впрочем, BLE уже есть, и он ПОЧТИ удовлетворяет требованиям. Почему не адаптировали к авто - я не знаю.

Вот там человек пришет, что он приделал к своей клавиатуре получение команд от хоста "включи лампочку хххЛок", которые ST в своей типовой библиотеке не сделал.
Полистайте первоисточник: https://usb.org/sites/default/files/hid1_11.pdf
Там в конце есть AppendixB, в котором протокол типовой клавиатуры приведён. И в нём нет возможности достать из клавиатуры статус этих лампочек. Это только хост может скомандовать. Когда захочет.

Не сильно-то он это сжимает. Никто просто не догадался написать такую оптимизацию: https://godbolt.org/z/rsbaWx8Tr

А вот clang умеет делать из этого switch-case: https://godbolt.org/z/MnYse7PPc

настоящий профессионал умеет рисовать целых 7 перпендикулярных линий!

Подниму тему. Понадобилось вспомнить пароль, который я ввёл год назад в Far NetBox. Как оказалось, шифрование там ещё хуже - тупо побайтовый ксор с фиксированной константой. Ну, и ещё чуток мусора добавляется вокруг, но его отлично визуально видно.
Вот тут всё понятно: https://github.com/FarGroup/Far-NetBox/blob/d64ef80a04a239d8d0b9c0277620c13533991c95/src/core/WinSCPSecurity.cpp#L62-L88 (внимание! индексация массовов - в паскаль-стиле, начиная с единички).

std::string FarNetBoxDecrypt(std::string pass)
{
    auto decryptChar = [](std::string& pass)
    {
        static const std::string hex = "0123456789ABCDEF";
        if (pass.length() < 2) return '\0';
        char res = (hex.find(pass[0]) << 4) + (hex.find(pass[1]) << 0);
        res ^= 0x5C;
        pass = pass.substr(2);
        return res;
    };

    std::string res;
    while (pass.length() >= 2)
        res += decryptChar(pass);
    return res;
}

 доступа к номерам карт у вас не будет

Зато будет доступ к clipped PAN. Это четыре последние цифры номера, их видно на каждом чеке оплаты, и это значение никак не зашифровано.
Для решения задачи "проверить факт оплаты автобусного билета" этих 4 цифр вполне достаточно.

Выглядит очень красиво. Какой-нибудь сложный код, лениво дрыгающий ножкой, отлаживать должно быть сильно удобнее.

Вот только я одно не понял - у вас там ведь нет прерываний? А идеи, как их поддержать, есть? Иначе вообще непонятно, зачем это всё - любой сколь сложный код 1-в-1 на ПК перенести не получится...

Качайте файлы с сайта Воронежского завода полупроводниковых приборов.

Сарказм, да.

... и синей изолентой приматывают. Только это неправильная промышленность...

И гена там стоял 70 ампер

На жигулях-классике штатно ставили Г221 (42А) и Г222 (50 А). Что, впрочем, всё равно много больше, чем "0.1C".

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

Ну это не так, конечно. Нету там никаких балансов. И вообще на карте баланса нет.
Начать можете прямо с википедии: https://en.wikipedia.org/wiki/Digital_card

Ну так это ж важный и интересный факт - что Visa/MC не стали окончательной тыквой не из-за пластика Мир, а из-за НСПК, что не одно и то же.

Не скажу за товарища @HEXFFFFFFFF, но у вас КРАЙНЕ мало деталей. Статью можно было бы вообще сократить до "платёжные карты - это кусочки пластика, и когда релокант Вася прикладывает такой кусочек к терминалу, терминал бибикает, и бармен Гиви поит его вкусным кофеем", ничего б не поменялось.

Хорошая техническая статья должна быть с деталями и отсылками на какие-то дополнительные материалы, а не вот это вот всё.

Минус не ставил, если вам это важно.

Потыкал godbolt. gcc-arm заменяет N / 2 на сдвиг при любом уровне оптимизации и никогда НЕ заменяет N * 0.5 (что, в принципе, логично). Зато умеет менять N / 2.0f на N * 0.5f при -O1 и выше.

ошибка реализации библиотечной функции в arm_math.h из CMSIS, revision: v1.4.4

Справедливости ради, ARM поправил это место:
https://github.com/ARM-software/CMSIS-DSP/blob/80bf36c676570fdc078a34dd72aeeb1ecdf7a8ad/Include/dsp/controller_functions.h#L735-L746

Когда именно, искать лень - ваша CMSIS-DSP была выпущена, если не ошибаюсь, в 2015 году.

Информация

В рейтинге
4 555-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность