Перейти к содержанию
    

esaulenka

Свой
  • Постов

    1 454
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Сообщения, опубликованные esaulenka


  1. 2 hours ago, vervs said:

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

    Неживы.

    Quote

    10 сент. 2023 г. — Немецкий автоконцерн BMW отменил услугу подписки на подогрев сидений

     

    А реверсят и дорабатывают всё подряд. Управление двигателем (увеличение мощности или её имитация, снижение экологических норм), добавление всяких плюшек, которые в штатной комплектации не предусмотрены, допиливание всякой мультимедии (включение ютубов/нештатных карт / чёрт-знает-чего-ещё). Но да, рынок сильно больше, чем десяток супер-приборов. Но и специалисты там получше встречаются, уж извините.

     

     

    2 hours ago, vervs said:

    при возврате всё будет видно

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

  2. 39 minutes ago, vervs said:

    вряд-ли кто-то из владельцев некоторых авто полезет взламывать активацию подогрева руля и прочих круиз контролей

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

     

     

    4 hours ago, TOG said:

    шифрует DATA с помощью пароля Собственника(PASSWORD),  например так:  ARENDA_CODE = AES(DATA,  PASSWORD);

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

    • Upvote 2
  3. On 6/10/2024 at 9:58 AM, TOG said:

    Хочу спросить у форума, как лучше сделать этот сервис получения кодов продления ? Может быть на сайте, или в телеграмм-боте, или в android, ios приложении ?

    Задача недостаточно хорошо поставлена. У вас этих арендодателей много ведь будет? Т.е. у каждого будет свой (условно) десяток приборов и свой набор арендаторов?

    Тогда, если мы идём в веб (на стороне единственного производителя), потребуется делать какие-то личные кабинеты, разграничивать права и проч. С нулевым опытом будет тяжело.

     

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

    А дальше - почитайте про ассиметричную криптографию. Половинка ключа - в устройстве, половинка - в генераторе. У каждого - свой собственный. На чём генератор писать - спросите у арендодателя, авось у него комп с виндовсом-то найдётся. Вопрос сводится к "как написать приложение под виндовс с парой кнопок и подключить к нему крипто-библиотеку с RSA".

  4. 11 minutes ago, mplata said:

    А какой период у Вас выбран?

    Ну так код же есть, там всё стандартно-библиотечное.

    Я не настолько самоуверен, чтобы свои крипто-алгоритмы изобретать 🙂

     

    https://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine

    https://ru.wikipedia.org/wiki/Вихрь_Мерсенна#Параметры_32-битного_генератора_MT

     

    И да, период обозначает количество итераций, когда алгоритм начнёт в точности повторять выданную последовательность. И он ДОСТАТОЧНО большой, чтобы никогда не увидеть подобного в реальной жизни, это авторы алгоритма гарантируют.

     

  5. On 5/11/2024 at 5:36 PM, jcxz said:

    весь диапазон периода Мерсенна разбивается на куски размером

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

     

    Я не математик ни разу, но это легко доказывается на практике.

    Spoiler
    #include <random>
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <chrono>
    
    
    int main()
    {
        auto start_time = std::chrono::system_clock::now();
    
        //using rand_gen_t = std::mt19937_64;
        using rand_gen_t = std::mt19937;
    
        std::random_device rd;
        rand_gen_t rndgen{ rd() };
    
        std::vector<rand_gen_t::result_type> rndlist;
        for (size_t i = 0; i < 1000'000'000; ++i)
            rndlist.push_back(rndgen());
    
        std::sort(rndlist.begin(), rndlist.end());
    
        size_t count = 0;
        for (size_t i = 0; i < rndlist.size() - 1; ++i)
            if (rndlist[i] == rndlist[i + 1])
            {
                //std::cout << "found the same value " << rndlist[i] << " at " << i << "\n";
                ++count;
            }
        std::cout << "found " << count << " pairs\n";
    
        std::cout << "Time spent " << 
            std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now() - start_time).count() << " seconds \n";
    
    }
    

     

    Для Мерсенна с 32-битным выходом среди миллиарда (!) значений совпадений... немало:

    found 107892738 pairs
    Time spent 160 seconds

    Для 64-битного варианта совпадений у меня не было, но это не значит, что их не будет в принципе.

     

     

     

  6. On 5/10/2024 at 6:48 PM, blackfin said:

    Вероятность такого совпадения равна: 2128

    Это вероятность получить некое наперёд заданное значение. А вероятность получить пару одинаковых хэшей гораздо выше. Подробности в википедии, "парадокс дней рождения".

  7. 1 hour ago, Arlleex said:

    за каким таким хэ борланд выдумал что-то свое взамен штатно имеющегося.

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

    Кто у кого скопировал (особенно с учётом факта, что дельфи и си-шарп создал один и тот же человек), я не знаю.

     

    54 minutes ago, Forger said:

    порога входа малограмотных бейсиководов

    Билдер довольно странная штука, имхо. Идея "а давайте сделаем дельфи для тех, кто любит и умеет C++" привела к какой-то странной смеси - тут делаем по-дельфовски, а тут - по-сиплюсплюсному. Но это я билдер готовить не умею, да.

     

    Ну и снижение порога входа - не так и плохо. Тут вон постоянно раздаются стоны, что сиплюсплюс очень сложный (Он и мне сложный, я все возможности не только не использую, но даже и не знаю. К сожалению).

  8. 15 hours ago, alag57 said:

    Надо запустить Кейл под администратором

    Што?!

    Ничего не надо запускать "под администратором", кроме особо тех случаев, когда надо влезть куда-то в систему (что-то доустановить, какой-то трафик перехватить и т.д.). Компилятор к этим "особым случаям" явно никак не относится.

     

    А вот проверить права на каталог проекта стоит. Может, там банально readonly стоит.

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

     

    У кого-нибудь есть опыт работы с произвольным бинарником в симуляторе?

    В хелпе чуть-чуть описано, но, насколько я понял, они хотят ELF, raw binary загрузить нельзя.

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

     

    PS IAR V850, если что. Если кто-то знает другой _удобный_ симулятор под эту платформу - такие предложения тоже принимаются.

  10. 13 hours ago, EdgeAligned said:

    И если он работает косячно, то почему это вдруг нельзя сказать, что он плохо работает?

    Потому что это дискредитация уникального аналоговнета. А там и до дискредитации честнейшего волеизявления недалеко.

     

    13 hours ago, EdgeAligned said:

    разработчик о них знает, но не может решить уже на протяжении нескольких лет

    А он есть, этот разработчик? Бауманка - это не что-то единое целое, это довольно разветвлённая структура (с довольно громким именем, к тому же). Лет н-цать назад, когда я имел какое-то отношение к этому славному заведению, там были десятки всяких учреждений "Рога-Копыта-Инно-Тех при МГТУ им. Н.Э.Баумана". Вряд-ли ситуация сильно поменялась.

     

    13 hours ago, EdgeAligned said:

    И я почти не сомневаюсь, что разработчик ничего не исправит

    Я тут погуглил - работа кипит! https://www.rbc.ru/politics/07/04/2022/624445459a79475dcc07347b

     

    (и совсем уж оффтоп) Спасибо за проведённый экзитполл среди пользователей электроникса. Не то чтоб неожиданно, но всё равно интересно.

     

  11. 1 hour ago, Forger said:

    а вообще по практике кто-нить когда нить пытался передавать параметры в  такие функции (), заранее зная, что они их проигнорируют?

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

    Но сам по себе этот факт - только докопаться на собеседовании. Или уровень аргументов типа "GCC - инородный" выяснить...

  12. 29 minutes ago, dimka76 said:

    А как использовать эти аргументы внутри функции ?

    Это у K&R надо спрашивать, зачем оно такое придумывалось 🙂

    Но вот такое должно нормально собираться:

    // myfile.h
    int myfunc();
    
    // myfile.c
    int myfunc(int x)
    { return x + 3; }
    
    // main.c
    #include "myfile.h"
    ...
      myfunc("hello!", 123);

    Зачем оно сейчас, кроме как побольнее в ногу стрельнуть, я не знаю.

    Но вывод из этого всего простой - "параметр" void в сишном коде лучше не убирать.

     

  13. 8 minutes ago, Forger said:

    раз пошла "вкусовщина": void внутри тоже можно не писать, уже устаревший атавизм )

    В сях int my_func()  означает "функция, которая принимает любые аргументы". Атавизм, но никуда не денешься... В плюсах, действительно, можно (и нужно) не писать.

    31 minutes ago, vvppvv said:

      ((void(*)(void)) 0)

    Уберите всю эту порнографию, пожалуйста. Есть же каноничный NULL (или nullptr).

      

    40 minutes ago, vvppvv said:

    // Функция передачи "SPASE"

    SPACE, если уж "о вкусах" разговор зашёл.

     

  14. 4 minutes ago, MrYuran said:

    Это спецGCC для разной дичи типа STM8

    Заглянул в итоге в даташит на этот RTD2662. Там унутре какой-то потомок 51-го ядра. STM8 - собственная разработка ST, с интелом ничего общего не имеющая.

    Но походу дела это оно, да. И 8051 там - default target.

    • Like 1
  15. 31 minutes ago, Turgenev said:

    хотелось спросить напрямую. Я не понимаю, как это делается на гитхабе

    Общепринятый способ - написать issue. Точнее, поискать по уже созданным, и в случае необходимости - написать ещё.

    https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues

    Можно, конечно, в git log посмотреть емейл автора (со мной пару раз так связывались), но лучше писать в общедоступное место.

     

    31 minutes ago, Turgenev said:

    Но в папке output_native нет файлов прошивки - hex, bin. Хотя они указаны как цели make файле.

    В обсуждаемом мейкфайле два таргета - native (эмулятор (?), работающий на ПК) и firmware (собственно, прошивка для железки).

    У вас есть только cygwin-gcc, который умеет собирать только под win64. firmware должно собираться неким sdcc (я довольно далёк от контроллеров дисплеев, и без гугла не скажу, что это такое).

    Можете попробовать 'make firmware' чтобы получить ворох ошибок об отсутствии второго компилятора.

     

    UPD:

    31 minutes ago, Turgenev said:

    Но в папке output_native нет файлов прошивки - hex, bin. Хотя они указаны как цели make файле.

    А почему должно было помочь? Вот если бы вы запустили 'make program' или 'make all', можно было б увидеть разницу. А так - вообще ничего не поменялось.

    Ну и ещё раз. Почитайте описание Makefile. По сути своей, он очень простой (по крайней мере, пока всякие нехорошие товарищи не пытаются делать простым инструментом сложные вещи, превращая скрипт во что-то нечитаемое).

    • Like 1
  16. 2 hours ago, MrYuran said:

    может, и не это

    С вероятностью 99% - не это.

    Тот же автор в соседнем проекте использует https://github.com/KerJoe/RTDMultiProg/tree/master/interfaces/ch341

    К слову, цифирки "341" втречаются только в мейкфайле. Т.е. есть некоторая вероятность, что оно там по ошибке (например, планировался функционал для связи ПК - девайс, но не сложилось). Я бы попробовал выкинуть, для начала.

     

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

    • Like 1
  17. 58 minutes ago, Turgenev said:

    Установил gcc-13.2.0-64.exe

    18 minutes ago, Turgenev said:

    fatal error: sys/ioctl.h: No such file or directory

    Для целей "научиться общаться с make'ом" рекомендую нагуглить какой-нибудь другой пример. Желательно чтоб там прямо в описании было написано, что это makefile examples, а не вот это вот "an unsuccessful attempt".

    Для целей "глубоко разобраться в отличиях POSIX и WinAPI" рекомендую гуглить в сторону "cannot find sys/ioctl.h on MinGW compiler". Но это трудный путь, я сам туда далеко не ходил.

     

    • Like 1
  18. On 1/20/2024 at 8:17 PM, sst78rus said:

    Спасибо, почитал User Manual, есть режим прошивки по UART.

    Полистал user manual. Какой-то кривой этот BSL. С большой вероятностью, он подразумевает загрузку собственного загрузчика в RAM и работу уже через него. CAN BSL вообще только так и работает.

     

    Попробуйте, действительно, ULink. Возможно, стоит искать оригинал - у меня 100% уверенность, что китайцы свои клоны на совместимость с 8051 не проверяли. Мне кажется, с рук приобрести будет несложно - для современных чипов проще JLink (или его клон) использовать. На моей позапрошлой работе он в шкафу валялся, никому не нужный.

     

    On 1/20/2024 at 1:32 PM, sst78rus said:

    Все что удалось узнать - https://github.com/Sergey1560/sas

    Ну и сделайте НОРМАЛЬНЫЕ фото платы. По имеющимся, например, отследить подключение ног TMS / MBC - глаза сломаешь.

     

    И вообще - что вы там хотите увидеть? Угол / скорость вы уже нашли. Контрольную сумму, наверное, можно и так подобрать. Команду установки нуля можно добыть из программы диагностики (https://gitlab.com/py_ren/pyren). А кофе варить эта штука всё равно не научится...

  19. 10 hours ago, Arlleex said:

    Как по феншую в C++ сделать такой трюк?

    Можно придумать, как по-феншую сделать трюк типа `upd_bit(MY_REG).set(SET_MSK).clr(CLR.MSK)`.

    А ваша задача в исходном звучании не решается, имхо. Надо эти set() / clr() в общую область видимости выносить.

     

    Можете обернуть всё это в `namespace HwRegsWrapper { ... };` и в своих драйверах дописать `using namespace HwRegWrapper;`, тогда в остальных местах эти имена не будут мешаться.

    • Upvote 1
  20. On 1/8/2024 at 8:15 AM, Harbinger said:

    А "закладки" бывают, да ещё какие. Например, дополнительное процессорное ядро с неизвестной системой команд. :crazy: Во всяком случае не соответствует ни одной из 77 архитектур, перелопаченных в процессе "раскопок".

    Оу. А где можно ознакомиться с этими исследованиями? Или они ещё более секретные, чем это дополнительное ядро?

  21. On 10/17/2023 at 9:50 AM, MrYuran said:

    Повернешь ключ, а движок продолжает работать. Пока педаль тормоза не нажмешь.

    А это говносигналка с говнозапуском, будь она неладна.

    Мне кажется, этот форум - не лучшее место, чтобы публично заявлять "я не читаю документацию". Это стандартное поведение алгоритма запуска, называется "программная нейтраль". В большинстве моделей автовключение программной нейтрали (при поднятии ручника, подозреваю) можно отключить в настройках.

  22. Мы тут с @Toxa555 чуть-чуть продвинулись с этим вопросом. Как минимум, читать он этот процессор умеет. Следующий вопрос - писать.

     

    Так вот, коллеги, у кого-нибудь есть опыт добавления нового процессора в J-Flash ? В их вики всё подробно написано - надо написать XML-ку с описанием процессора (это называется Device Support Kit) и скомпилировать ram-loader (это называется Segger Flash Loader). Загвоздка в том, что в стандартном комплекте никаких примеров нет, и для получения этого саппорт кит они предлагают написать в поддержку.

    Я нашёл, правда, какие-то loader'ы в комплекте segger SDK (когда-то старая версия пробегала здесь на форуме). Но xml-ок всё равно нету...

     

  23. 36 minutes ago, Toxa555 said:

    Все проекты с аналогичным samsung идентичны

    Вам не нужен "идентичный самсунг". Надо применить голову и из этого списка https://www.segger.com/supported-devices/search/samsung найти процессор с внутренней флешкой (в понимании сеггера. Прочерк в таблице означает внешнюю флешку), ядром ARM7 и одинаковыми адресами регистров контроллера флеш (IFC_xxx  в терминах даташита).

     

    39 minutes ago, Toxa555 said:

    Я же привёл пример, что адреса с Reserved читает, соответственно пустые

    Э-э... где я это пропустил?

     

    40 minutes ago, Toxa555 said:

    Если вы сначала смотрели тему по ссылке которую вы мне скинули, у автора тоже не читал живой блок с разными манипуляциями

    Я не очень внимательно читал. В частности, мне лень там регистрироваться, и картинки мне не показывают. Но я не могу сказать, что действия автора правильные. В частности, он зачем-то пытался засунуть штатный бутлоадер как ram-code прошивальщика. Они оба, конечно, программы для процессора, даже называются одинаково "loader", но больше никаких схожих частей не имеют. Ну и привычка излагать непонятные вещи своими словами, в процессе преиначивая половину, тоже не сильно способствует пониманию...

     

    Да, у вас есть дамп от максимально похожего блока? Я бы посмотрел...

×
×
  • Создать...