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

Embedded programmer

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

@UranusExplorer, спасибо большое. Отдельное спасибо за баланс между "хау-ту без пояснений" и "сейчас я устрою лекцию, как оно устроено, а как пользоваться, сами разберётесь".

Это был явный знак проапгрейдить стародавний shadowsocks, который я не трогал со времён битвы с телеграмом.

Завёл аккаунт у Оракла, создал бесплатную виртуалку (для тех, кто знает где взять "настоящую" visa/mastercard - рекомендую). А вот дальше начались боль и страдания большого энтерпрайза.

Во-первых, все входящие соединения у них запрещены, их надо разрешать в ДВУХ местах - во внешнем файрволе через веб-морду оракла и внутри виртуалки через iptables. (если делать невнимательно - теряется доступ по ssh. Хорошо, что не было ничего ценного...).

Во-вторых, внешний адрес и адрес внутри виртуалки - не одно и то же, там где-то по пути какой-то NAT стоит. При этом xray пишет в лог невразумительное cannot bind port. (я в итоге в конфиге xray указал inbounds / listen = 0.0.0.0, пусть все интерфейсы слушает, мне не жалко).

В-третьих, почему-то мне не повезло пару раз с доменом, используемом для маскировки. Т.е. curl -bla -bla успешно отдаёт страничку, а при подстановке этого в xray соединение не устанавливается (с какой-то мутной диагностикой). Это пока не решил, www.microsoft.com из примера работает. Если кто-то подскажет, как и куда смотреть, буду благодарен, метод тыка довольно долгий.

Статьи написаны неким Deleted-user, доступ к профилю MiraclePtr закрыт. Надеюсь, у него самого всё хорошо.

Всё, я сдаюсь, вы победили.

Я довольно плохо знаю винапи, чтобы подобным заниматься. Экономить байты прошивки, чтобы купить младшие в линейке контроллеры с минимумом памяти - было. Экономить такты, чтобы в имеющееся изделие добавить приёмник хитрого протокола со скоростью 500кбит/с на чистом "ногодрыге" и таймерах, и ещё время остававить на выполнение основных задач - было. На плюсах, но с внимательным разглядыванием получившегося бинарника через objdump.

А этой фигнёй регистрацией оконного класса только по большой любви можно страдать.

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

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 не стали окончательной тыквой не из-за пластика Мир, а из-за НСПК, что не одно и то же.

Информация

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