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

Простейшие вопросы в области инженерной разработки
AndreyDmitriev

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

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

Сообщение AndreyDmitriev »

JohnChaban писал(а): 29 апр 2025, 08:34
AndreyDmitriev писал(а): 28 апр 2025, 20:32
JohnChaban писал(а): 28 апр 2025, 19:05

Не очень понятень порядок действий как вы делали?
Откройте проект, сгенерите exe файл, закройте проект, откройте его снова и ничего не меняя, снова сгенерите. Exe файлы могут получиться разные.
А что значит разные где это увидеть можно?
Это значит там байты унутре разные. Увидеть это можно либо по разному хэшу, если из командной строки, то вот так:

Код: Выделить всё

certutil -hashfile MyApplication.exe SHA256
Или, если PowerShell больше нравится:

Код: Выделить всё

Get-FileHash MyApplication.exe -Algorithm SHA256
Разный хэш говорит о разном содержимом
либо бинарным сравнением файлов из двух билдов

Код: Выделить всё

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

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

Сообщение JohnChaban »

Коды получились одинаковые Как их посмотреть?
925857c837ac06a511f1452ccb6f0f7653b7945f6806aa4a07d0bdc2b8336ec3
925857c837ac06a511f1452ccb6f0f7653b7945f6806aa4a07d0bdc2b8336ec3

Post-build -action вообще не выполнился
Подскажите как должно быть чтобы было понятно.
Я сгенерировал exe файл Я закрыл проект ничего не трогая и не открывая. Выгрузил Labview запустил Labview сгенерировал exe файл но код получился такой же. что я не так делаю?
Если чесно не очено понятно я сделал все как вы сказали как увидеть что что-то поменялось?
Вложения
Смотрел ID вот сдесь может не сдесь смотреть надо? Если генерировать EXE и открыть закрыть Labview то все равно получаются одинаковые ID
Смотрел ID вот сдесь может не сдесь смотреть надо? Если генерировать EXE и открыть закрыть Labview то все равно получаются одинаковые ID
3.jpg
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

jane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.
AndreyDmitriev писал(а): 27 апр 2025, 10:35 при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма.
Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitriev :thank: стала чуть чуть умнее :D
У меня ничего не сгенерировал.
Как вы сумму смотрели?
Аватара пользователя
jane_wild

Gold
leader
leader
Сообщения: 522
Зарегистрирован: 30 июн 2016, 02:11
Награды: 1
Версия LabVIEW: 2020
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

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

Сообщение jane_wild »

JohnChaban писал(а): 29 апр 2025, 10:49 У меня ничего не сгенерировал.
Как вы сумму смотрели?
Так он вообще запускается? Поставте brake point и посмотрите. После выполнения этого VI рядом с *.exe должен появится файл с раширением *.key и таким же именем как у exe.
Ну или вручную запустите, делов то...
Так вот если открыть его блокнотом и посмотреть, то при каждой компиляции сумма в нем разная.
Life is short. Smile while you still have teeth!
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

Спасибо буду смотреть
Если меняешь что-то в приборе например кнопку добавляешь формируешь EXE то сумма остается таже самая.
Последний раз редактировалось JohnChaban 29 апр 2025, 15:00, всего редактировалось 1 раз.
Аватара пользователя
jane_wild

Gold
leader
leader
Сообщения: 522
Зарегистрирован: 30 июн 2016, 02:11
Награды: 1
Версия LabVIEW: 2020
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

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

Сообщение jane_wild »

JohnChaban писал(а): 29 апр 2025, 14:33 Спасибо буду смотреть
Если меняешь что-то в приборе например кнопку добавляешь то сумма остается таже самая.
Нет конечно она будет другая. В этом и вся суть - проверка на оригинальность.
Life is short. Smile while you still have teeth!
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

jane_wild писал(а): 29 апр 2025, 14:52
JohnChaban писал(а): 29 апр 2025, 14:33 Спасибо буду смотреть
Если меняешь что-то в приборе например кнопку добавляешь то сумма остается таже самая.
Нет конечно она будет другая. В этом и вся суть - проверка на оригинальность.
Я формировал 2 рвза сумма одна и таже.
вот
af0f3d0b03acb648938e5a4d170f5e7171c00e263164f21950cedd43ba7a359b
af0f3d0b03acb648938e5a4d170f5e7171c00e263164f21950cedd43ba7a359b
Аватара пользователя
jane_wild

Gold
leader
leader
Сообщения: 522
Зарегистрирован: 30 июн 2016, 02:11
Награды: 1
Версия LabVIEW: 2020
Благодарил (а): 101 раз
Поблагодарили: 19 раз
Контактная информация:

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

Сообщение jane_wild »

JohnChaban писал(а): 29 апр 2025, 15:02 Я формировал 2 рвза сумма одна и таже.
Т.е. Эксешники разные, (один с дополнительной кнопкой) а сумма одинаковая? Вы определенно что то не то делаете...
Life is short. Smile while you still have teeth!
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

jane_wild писал(а): 29 апр 2025, 15:27
JohnChaban писал(а): 29 апр 2025, 15:02 Я формировал 2 рвза сумма одна и таже.
Т.е. Эксешники разные, (один с дополнительной кнопкой) а сумма одинаковая? Вы определенно что то не то делаете...
Нет я созда по образцу и подобию такой же прибор с внутренностями как в примере только добавил кнопку.
Формировал 2 раза сумма одна и таже завтра еще попробую отпишусь хорошо?
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

У меня тоже все получилось делал 20 раз код разный
Спасибо Андрей
AndreyDmitriev

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

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

Сообщение AndreyDmitriev »

JohnChaban писал(а): 29 апр 2025, 17:19 Нет я созда по образцу и подобию такой же прибор с внутренностями как в примере только добавил кнопку.
Формировал 2 раза сумма одна и таже
Вы что-то и правда делаете не так. Скорее всего, вы смотрите хэш какого-нибудь инструмента или другого файла. Пример, что я выше прикладывал вроде рабочий.

Вообще, справедливости ради, следует отметить, что есть такое понятие как «коллизии хэша». Это когда два разных набора данных выдают одинаковое значение хэша. Очевидно, что при хэше размером всего-навсего тридцать два байта и входном наборе данных, превышающем этот размер (а типичный размер минимального LabVIEW приложения это сотни этак три килобайт, что на четыре порядка больше), безусловно когда-нибудь найдутся два таких файла, которые дадут одинаковый хэш, иначе и быть не может при отображении большего пространства на меньшее. Но не всё так плохо. 256 бит этого хэша дают нам 1,16×10⁷⁷ возможных значений (потому что 2²⁵⁶). Это очень большое число. Вот просто для сравнения — количество атомов материи в наблюдаемой вселенной оценивается примерно в 10⁸⁰, всего на три порядка больше. Кроме того, математически хэш так хитро устроен, что минимальное изменение входного набора данных, хоть одного байта в файле приведёт к кардинальному, лавинообразному изменению всего хэша, и всё пространство хэшей довольно равномерно «размазано» по входному набору данных. Поэтому вероятность коллизии исчезающе мала. Кроме того, алгоритм работает только в одну сторону, в том смысле что нет возможности подобрать входной набор данных для получения заранее заданного хэша, это можно сделать только перебором. И чтобы найти коллизию хотя бы с 50% вероятностью, надо выполнить 2¹²⁸ операций, что на данном этапе развития вычислительной техники невозможно, и это действительно не удалось сделать пока что никому, коллизии этого хэша на данный момент неизвестны. Так что если вы таки случайно получите два разных файла, дающих одинаковый хэш — немедленно сохраните их и напишите об этом везде, вы войдёте в историю, по крайней мере в википедии точно напишут, я серьёзно.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

Сегодня показал раблоту начальнику, получилось что я его не совсем понял:
Ситуация такая контрольная сумма при формировании EXE файла должна меняться только в то случае, когда МЫ что-то поменяли в самом VI.
Если мы ничегоь не меняли в самом VI то контрольная сумма должна остаться таже.
Вот это можно отследить?
Я пониаю что достал всех данной темой просто мне обратится не к кому.
Прошу помощи. Спасибо.
AndreyDmitriev

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

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

Сообщение AndreyDmitriev »

JohnChaban писал(а): 05 май 2025, 16:51 Сегодня показал раблоту начальнику, получилось что я его не совсем понял:
Ситуация такая контрольная сумма при формировании EXE файла должна меняться только в то случае, когда МЫ что-то поменяли в самом VI.
Если мы ничегоь не меняли в самом VI то контрольная сумма должна остаться таже.
Вот это можно отследить?
Практически никак, ведь мы выше вроде выяснили, что содержимое исполняемого файла (а, следовательно и "контрольная сумма") меняются при "формировании ЕХЕ" даже в том случае, если в коде вообще ничего не меняется. Что вам мешает просто бросить на блок-диаграмму строковую константу, назвать её "версия", да изменять каждый раз при изменении кода? Немножко дисциплины и всё ОК. Туда же до кучи можно писать что именно в коде поменялось. Вообще версионированием и историей изменений должна система конроля версий заниматься - ну там github или TFS.
Начните читать вот отсюда:
Managing LabVIEW VI and Application Revision History.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 746
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2014
Откуда: Город Сосновый Бор Ленинградская Область
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение JohnChaban »

Ну вообщето я добился того, чего хотел.
Вот тут есть библиотека https://github.com/tomsoftware/VI-Explo ... ree/master.
А во вложении моя сборка простогоь EXE и у меняр получилось так что если я не меняю сам прибора при формировании EXE файла сумма остается таже, а если я поменял сам прибор VI она меняентся.
Вложения
VI-File-Explorer_v0.11.rar
Проект
(914.43 КБ) 32 скачивания
AndreyDmitriev

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

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

Сообщение AndreyDmitriev »

JohnChaban писал(а): 07 май 2025, 07:25 Ну вообщето я добился того, чего хотел.
Вот тут есть библиотека https://github.com/tomsoftware/VI-Explo ... ree/master.
А во вложении моя сборка простогоь EXE и у меняр получилось так что если я не меняю сам прибора при формировании EXE файла сумма остается таже, а если я поменял сам прибор VI она меняентся.
Это мощное решение. Я не очень понимаю архитектуру, как вы достаёте внутреннюю MD5 из исполняемого файла, это будет работать только если вы кладёте VI рядом с исполняемым файлом, ну да ладно, получилось и получилось.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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