Индификация программы Labview

Простейшие вопросы в области инженерной разработки
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Индификация программы Labview

Сообщение JohnChaban »

Всем привет.
Можно ли в Labview задать или как то обозначить индификационный номер программы Labview (контрольная сумма и т.д.)?
Можно ли создать EXE файл и задать ему индификационный номер а потом посмотреть его как то где-то?
Спасибо за советы и ответы.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5602
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 34 раза
Поблагодарили: 113 раз

Re: Индификация программы Labview

Сообщение IvanLis »

JohnChaban писал(а): 22 апр 2025, 12:03 Всем привет.
Можно ли в Labview задать или как то обозначить индификационный номер программы Labview (контрольная сумма и т.д.)?
Можно ли создать EXE файл и задать ему индификационный номер а потом посмотреть его как то где-то?
Спасибо за советы и ответы.
Как правило, при приеме/сдаче программы оформляется соответствующий Акт.
В Акт, в том числе можно вписать хеш и алгоритм его вычисления для каждого отдельного файла.
Это позволяет подтвердить подлинность файлов при решении спорных вопросов.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение JohnChaban »

Мне программная часть нужна.
Я пока нашел как сделать автомтическое задание версии при формировании EXE файла.
А как понять что знаит контрольная сумма самого VI?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5602
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 34 раза
Поблагодарили: 113 раз

Re: Индификация программы Labview

Сообщение IvanLis »

JohnChaban писал(а): 22 апр 2025, 13:58 Мне программная часть нужна.
Я пока нашел как сделать автомтическое задание версии при формировании EXE файла.
А как понять что знаит контрольная сумма самого VI?
Контрольная сумма считается от EXE
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение JohnChaban »

А есть программный код посмотреть?
Аватара пользователя
seromax
beginner
beginner
Сообщения: 16
Зарегистрирован: 09 сен 2022, 11:59
Версия LabVIEW: 18
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Индификация программы Labview

Сообщение seromax »

JohnChaban писал(а): 23 апр 2025, 07:20 А есть программный код посмотреть?
Я обычно делаю через Total Commander "Файлы"->"Посчитать CRC суммы".
Создается файлик "Имя экзешника.sfv" с контрольной суммой.
Пробовал разные vi'ки с подсчетом crc (хотел автоматизировать), но чего-то не зашло.
При сравнении подсчета сумм из ТС и из vi получаются разные значения.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение JohnChaban »

Я нашел вот это
Вложения
Data_validation_functions.llb
(101.64 КБ) 118 скачиваний
Юрий
leader
leader
Сообщения: 550
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 13 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение Юрий »

Посмотрите тут. Там дано кое чего из теории, по крайней мере - ссылки. В самих виайках есть текстовая информация. Надеюсь, что поможет понять почему у разных производителей разные контрольные суммы. Вам же следует определиться с параментрической моделью, в том числе и с полиномом и использовать её во всех своих разработках.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение JohnChaban »

Нет это немного не то.
Надо именно CRC VI
Юрий
leader
leader
Сообщения: 550
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 13 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение Юрий »

JohnChaban писал(а): 24 апр 2025, 07:43 Нет это немного не то.
Надо именно CRC VI
А чем подсчёт CRC файла с расширением .vi отличается от подсчёта любого другого файла, например, с расширением .txt?
ujin1
developer
developer
Сообщения: 256
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 19 раз
Поблагодарили: 40 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение ujin1 »

JohnChaban писал(а): 24 апр 2025, 07:43 Нет это немного не то.
Надо именно CRC VI
https://github.com/tomsoftware/VI-Explorer-VI
Подсчет MD5 сумм файла vi.
Изображение
ujin1
developer
developer
Сообщения: 256
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 19 раз
Поблагодарили: 40 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение ujin1 »

JohnChaban писал(а): 22 апр 2025, 12:03 Всем привет.
Можно ли в Labview задать или как то обозначить индификационный номер программы Labview (контрольная сумма и т.д.)?
Можно ли создать EXE файл и задать ему индификационный номер а потом посмотреть его как то где-то?
Спасибо за советы и ответы.
Можно в коде куда-нибудь константу вставить. Потом ее как нибудь проверить в программе на совпадение ее хэш суммы. Типа "магическое число"
https://ru.wikipedia.org/wiki/%D0%9C%D0 ... %B8%D0%B5)
Изображение
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1422
Зарегистрирован: 03 фев 2010, 00:42
Награды: 8
Версия LabVIEW: 6.1 - 2025
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение AndreyDmitriev »

ujin1 писал(а): 25 апр 2025, 18:52
JohnChaban писал(а): 22 апр 2025, 12:03 Всем привет.
Можно ли в Labview задать или как то обозначить индификационный номер программы Labview (контрольная сумма и т.д.)?
Можно ли создать EXE файл и задать ему индификационный номер а потом посмотреть его как то где-то?
Спасибо за советы и ответы.
Можно в коде куда-нибудь константу вставить. Потом ее как нибудь проверить в программе на совпадение ее хэш суммы
Тут есть два подводных камушка. Во-первых, при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма. Во-вторых, вставка контрольной суммы в код будет автоматом менять общую контрольную сумму, это безотносительно языка программирования, надо будет очень постараться, чтоб зашитая сумма совпала с собственной суммой исполняемого файла.
Я не знаю, какую цель преследует коллега JohnChaban и что значит "задать индификационный номер"? Если речь идёт о том, чтобы подтвердить аутентичность исполняемого файла, то для этого вообще говоря есть сертификаты, которыми файл подписывается. Если же считать "контрольную сумму", то я бы посоветовал в качестве "цифрового отпечатка" взять классический хэш sha256. Зашивать его в программу не надо, а надо просто положить рядом с программой. А чтобы злоумышленник не подменил исполняемый файл и хэш вместе с ним, то делается неxитрый трюк — при вычислении хэша добавляется "соль" — это секретная последовательность байтов, в рантайме это будет выглядеть вот как-то так:
Изображение
Теперь мы вначале генеряем экзешник, а затем открываем среду разработки и генеряем вдогонку ключ к нему:
Изображение
можно post build action использовать, тогда это будет автоматически происходить:
Изображение
Вот и всё. Как бы злоумышленник не менял исполняемый файл, он не сможет подобрать новый хэш не зная соли (хотя реверс-инжиниринг никто не отменял). Ну а сам "индификационный номер" выглядит как-то так: "bae91d991f2786c4fe817db2b0d64dc65b93c1c1d2015926eebdeca851ccd3c4".
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение JohnChaban »

А где можно скачать последние программы целиком?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1422
Зарегистрирован: 03 фев 2010, 00:42
Награды: 8
Версия LabVIEW: 6.1 - 2025
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 78 раз
Контактная информация:

Re: Индификация программы Labview

Сообщение AndreyDmitriev »

JohnChaban писал(а): 27 апр 2025, 15:32 А где можно скачать последние программы целиком?
Это сниппеты, которые вы можете сохранить как png и перетащить на диаграмму, там код внутри. Но это только в LabVIEW 2025. sha256 начиная с какой-то версии просто библиотечные функции, они встроены в LabVIEW, но точно не в 2014, как у вас в профиле. Если по какой-то причине надо непременно в 2014, то я мог бы сконвертить это дело в предыдущую версию (там все исходники есть), но навскидку там пара элементов, что в старой LabVIEW не поддерживаются, придётся повозиться. Лучше б вам обновиться до последней версии.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»