-
Постов
1 454 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Сообщения, опубликованные esaulenka
-
-
39 minutes ago, vervs said:
вряд-ли кто-то из владельцев некоторых авто полезет взламывать активацию подогрева руля и прочих круиз контролей
Рынок неофициальных услуг "перепишем настройки вашего блока, чтобы он был быстрее-выше-сильнее или адаптируем блок с барахолки на ваш конкретный авто" просто гигантский. Автопроизводители пытаются применять какие-то меры против этого, но никого это не останавливает.
4 hours ago, TOG said:шифрует DATA с помощью пароля Собственника(PASSWORD), например так: ARENDA_CODE = AES(DATA, PASSWORD);
Утечка пароля - и все устройства становятся бесплатными. Во-первых, нужно делать уникальные пароли для каждой железки. А во-вторых, ещё раз говорю, посмотрите на асимметричное шифрование. В этом случае добыча пароля из железки не позволит сгенерировать кодов на 100 лет вперёд.
-
2
-
-
On 6/10/2024 at 9:58 AM, TOG said:
Хочу спросить у форума, как лучше сделать этот сервис получения кодов продления ? Может быть на сайте, или в телеграмм-боте, или в android, ios приложении ?
Задача недостаточно хорошо поставлена. У вас этих арендодателей много ведь будет? Т.е. у каждого будет свой (условно) десяток приборов и свой набор арендаторов?
Тогда, если мы идём в веб (на стороне единственного производителя), потребуется делать какие-то личные кабинеты, разграничивать права и проч. С нулевым опытом будет тяжело.
Проще скинуть ответственность за генерацию этих кодов (и за безопасное хранение генераторов) на арендодателя. Т.е. это будет локальное приложение, в которое вы сможете добавлять новые устройства (строчкой в конфиге, файликом).
А дальше - почитайте про ассиметричную криптографию. Половинка ключа - в устройстве, половинка - в генераторе. У каждого - свой собственный. На чём генератор писать - спросите у арендодателя, авось у него комп с виндовсом-то найдётся. Вопрос сводится к "как написать приложение под виндовс с парой кнопок и подключить к нему крипто-библиотеку с RSA".
-
11 minutes ago, mplata said:
А какой период у Вас выбран?
Ну так код же есть, там всё стандартно-библиотечное.
Я не настолько самоуверен, чтобы свои крипто-алгоритмы изобретать 🙂
https://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine
https://ru.wikipedia.org/wiki/Вихрь_Мерсенна#Параметры_32-битного_генератора_MT
И да, период обозначает количество итераций, когда алгоритм начнёт в точности повторять выданную последовательность. И он ДОСТАТОЧНО большой, чтобы никогда не увидеть подобного в реальной жизни, это авторы алгоритма гарантируют.
-
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-битного варианта совпадений у меня не было, но это не значит, что их не будет в принципе.
-
On 5/10/2024 at 6:48 PM, blackfin said:
Вероятность такого совпадения равна: 2−128
Это вероятность получить некое наперёд заданное значение. А вероятность получить пару одинаковых хэшей гораздо выше. Подробности в википедии, "парадокс дней рождения".
-
1 hour ago, Arlleex said:
за каким таким хэ борланд выдумал что-то свое взамен штатно имеющегося.
Такая фишка уже миллион лет в си-шарпе есть. И это удобнее, чем заводить какой-то дополнительный тип и переопределять ему операторы.
Кто у кого скопировал (особенно с учётом факта, что дельфи и си-шарп создал один и тот же человек), я не знаю.
54 minutes ago, Forger said:порога входа малограмотных бейсиководов
Билдер довольно странная штука, имхо. Идея "а давайте сделаем дельфи для тех, кто любит и умеет C++" привела к какой-то странной смеси - тут делаем по-дельфовски, а тут - по-сиплюсплюсному. Но это я билдер готовить не умею, да.
Ну и снижение порога входа - не так и плохо. Тут вон постоянно раздаются стоны, что сиплюсплюс очень сложный (Он и мне сложный, я все возможности не только не использую, но даже и не знаю. К сожалению).
-
15 hours ago, alag57 said:
Надо запустить Кейл под администратором
Што?!
Ничего не надо запускать "под администратором", кроме особо тех случаев, когда надо влезть куда-то в систему (что-то доустановить, какой-то трафик перехватить и т.д.). Компилятор к этим "особым случаям" явно никак не относится.
А вот проверить права на каталог проекта стоит. Может, там банально readonly стоит.
-
Здравствуйте.
У кого-нибудь есть опыт работы с произвольным бинарником в симуляторе?
В хелпе чуть-чуть описано, но, насколько я понял, они хотят ELF, raw binary загрузить нельзя.
Вроде б можно из скрипта определить свои области памяти и загрузить туда свои данные, но как-то это нетривиально. Если кто-то видел статью на тему - было б замечательно.
PS IAR V850, если что. Если кто-то знает другой _удобный_ симулятор под эту платформу - такие предложения тоже принимаются.
-
13 hours ago, EdgeAligned said:
И если он работает косячно, то почему это вдруг нельзя сказать, что он плохо работает?
Потому что это дискредитация уникального аналоговнета. А там и до дискредитации честнейшего волеизявления недалеко.
13 hours ago, EdgeAligned said:разработчик о них знает, но не может решить уже на протяжении нескольких лет
А он есть, этот разработчик? Бауманка - это не что-то единое целое, это довольно разветвлённая структура (с довольно громким именем, к тому же). Лет н-цать назад, когда я имел какое-то отношение к этому славному заведению, там были десятки всяких учреждений "Рога-Копыта-Инно-Тех при МГТУ им. Н.Э.Баумана". Вряд-ли ситуация сильно поменялась.
13 hours ago, EdgeAligned said:И я почти не сомневаюсь, что разработчик ничего не исправит
Я тут погуглил - работа кипит! https://www.rbc.ru/politics/07/04/2022/624445459a79475dcc07347b
(и совсем уж оффтоп) Спасибо за проведённый экзитполл среди пользователей электроникса. Не то чтоб неожиданно, но всё равно интересно.
-
1 hour ago, Forger said:
а вообще по практике кто-нить когда нить пытался передавать параметры в такие функции (), заранее зная, что они их проигнорируют?
"Заранее знать" - это хорошее умение. Обычно большинство ошибок от невнимательности. Например, при рефакторинге убрали аргумент у функции, а в каких-то вызовах убрать забыли. Компилируется без проблем, работает, скорее всего, тоже. Но ошибка.
Но сам по себе этот факт - только докопаться на собеседовании. Или уровень аргументов типа "GCC - инородный" выяснить...
-
27 minutes ago, vvppvv said:
И это пробовал. Нет его в IAR EW AVR 7.30.5. компилятор ругается.
Это часть стандартной библиотеки: https://en.cppreference.com/w/c/types/NULL
Сделайте include <stdlib.h> или include <stddef.h>
-
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 в сишном коде лучше не убирать.
-
20 minutes ago, Forger said:
он есть тока в плюсах ))
https://en.cppreference.com/w/c/language/nullptr
Но да, поддержку этой "новинки" можно ожидать в IAR AVR лет через н-цать.
-
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, если уж "о вкусах" разговор зашёл.
-
4 minutes ago, MrYuran said:
Это спецGCC для разной дичи типа STM8
Заглянул в итоге в даташит на этот RTD2662. Там унутре какой-то потомок 51-го ядра. STM8 - собственная разработка ST, с интелом ничего общего не имеющая.
Но походу дела это оно, да. И 8051 там - default target.
-
1
-
-
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. По сути своей, он очень простой (по крайней мере, пока всякие нехорошие товарищи не пытаются делать простым инструментом сложные вещи, превращая скрипт во что-то нечитаемое).
-
1
-
-
2 hours ago, MrYuran said:
может, и не это
С вероятностью 99% - не это.
Тот же автор в соседнем проекте использует https://github.com/KerJoe/RTDMultiProg/tree/master/interfaces/ch341
К слову, цифирки "341" втречаются только в мейкфайле. Т.е. есть некоторая вероятность, что оно там по ошибке (например, планировался функционал для связи ПК - девайс, но не сложилось). Я бы попробовал выкинуть, для начала.
Но в любом случае. правильный подход - попросить автора добавить в исходный репозитарий саму библиотеку или хотя бы ссылку на неё вместо гаданий на гуще.
-
1
-
-
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". Но это трудный путь, я сам туда далеко не ходил.
-
1
-
-
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). А кофе варить эта штука всё равно не научится...
-
10 hours ago, Arlleex said:
Как по феншую в C++ сделать такой трюк?
Можно придумать, как по-феншую сделать трюк типа `upd_bit(MY_REG).set(SET_MSK).clr(CLR.MSK)`.
А ваша задача в исходном звучании не решается, имхо. Надо эти set() / clr() в общую область видимости выносить.
Можете обернуть всё это в `namespace HwRegsWrapper { ... };` и в своих драйверах дописать `using namespace HwRegWrapper;`, тогда в остальных местах эти имена не будут мешаться.
-
1
-
-
On 1/8/2024 at 8:15 AM, Harbinger said:
А "закладки" бывают, да ещё какие. Например, дополнительное процессорное ядро с неизвестной системой команд.
Во всяком случае не соответствует ни одной из 77 архитектур, перелопаченных в процессе "раскопок".
Оу. А где можно ознакомиться с этими исследованиями? Или они ещё более секретные, чем это дополнительное ядро?
-
On 10/17/2023 at 9:50 AM, MrYuran said:
Повернешь ключ, а движок продолжает работать. Пока педаль тормоза не нажмешь.
А это говносигналка с говнозапуском, будь она неладна.
Мне кажется, этот форум - не лучшее место, чтобы публично заявлять "я не читаю документацию". Это стандартное поведение алгоритма запуска, называется "программная нейтраль". В большинстве моделей автовключение программной нейтрали (при поднятии ручника, подозреваю) можно отключить в настройках.
-
Мы тут с @Toxa555 чуть-чуть продвинулись с этим вопросом. Как минимум, читать он этот процессор умеет. Следующий вопрос - писать.
Так вот, коллеги, у кого-нибудь есть опыт добавления нового процессора в J-Flash ? В их вики всё подробно написано - надо написать XML-ку с описанием процессора (это называется Device Support Kit) и скомпилировать ram-loader (это называется Segger Flash Loader). Загвоздка в том, что в стандартном комплекте никаких примеров нет, и для получения этого саппорт кит они предлагают написать в поддержку.
Я нашёл, правда, какие-то loader'ы в комплекте segger SDK (когда-то старая версия пробегала здесь на форуме). Но xml-ок всё равно нету...
-
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", но больше никаких схожих частей не имеют. Ну и привычка излагать непонятные вещи своими словами, в процессе преиначивая половину, тоже не сильно способствует пониманию...
Да, у вас есть дамп от максимально похожего блока? Я бы посмотрел...
Нужно сделать сервис аренды прибора
в Программирование
Опубликовано · Пожаловаться
Неживы.
А реверсят и дорабатывают всё подряд. Управление двигателем (увеличение мощности или её имитация, снижение экологических норм), добавление всяких плюшек, которые в штатной комплектации не предусмотрены, допиливание всякой мультимедии (включение ютубов/нештатных карт / чёрт-знает-чего-ещё). Но да, рынок сильно больше, чем десяток супер-приборов. Но и специалисты там получше встречаются, уж извините.
Если гарантирован возврат и прочие долговременные отношения при аренде, вся эта ерунда с кодами защиты решается юристами в договоре: "нарушите условия использования, перестанем дружить и возьмём неустойку".