Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievAndreyDmitriev писал(а): 27 апр 2025, 10:35 при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма.
Индификация программы Labview
-
jane_wild
- leader

- Сообщения: 542
- Зарегистрирован: 30 июн 2016, 02:11
- Награды: 1
- Версия LabVIEW: 2020
- Благодарил (а): 107 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Индификация программы Labview
Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.
стала чуть чуть умнее 
Life is short. Smile while you still have teeth!
- JohnChaban
- leader

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
Вся проблема в том что я из VI формирую EXE файл.
Мне нужен его CRC или еще что-то.
То есть я например передаю EXE файл другому человеку, со своим кодом CRC а у меня он "летит" нужно узнать что тот человек не формировал EXE то есть код остался прежним.
Для безопасности надо.
Мне нужен его CRC или еще что-то.
То есть я например передаю EXE файл другому человеку, со своим кодом CRC а у меня он "летит" нужно узнать что тот человек не формировал EXE то есть код остался прежним.
Для безопасности надо.
- JohnChaban
- leader

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

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
Мне надо именнл Labview2014, на работе только на него лицензия.AndreyDmitriev писал(а): 28 апр 2025, 06:52Это сниппеты, которые вы можете сохранить как png и перетащить на диаграмму, там код внутри. Но это только в LabVIEW 2025. sha256 начиная с какой-то версии просто библиотечные функции, они встроены в LabVIEW, но точно не в 2014, как у вас в профиле. Если по какой-то причине надо непременно в 2014, то я мог бы сконвертить это дело в предыдущую версию (там все исходники есть), но навскидку там пара элементов, что в старой LabVIEW не поддерживаются, придётся повозиться. Лучше б вам обновиться до последней версии.
-
Borjomy_1
- doctor

- Сообщения: 2303
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 33 раза
- Поблагодарили: 34 раза
Re: Индификация программы Labview
Это не мешает иметь community версии для внутренних работ, например, на виртуальной машине
- JohnChaban
- leader

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

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
Я не очень понимаю что значит Post-Build-Action? Отбой все понялjane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievAndreyDmitriev писал(а): 27 апр 2025, 10:35 при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма.стала чуть чуть умнее
![]()
- JohnChaban
- leader

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
Не очень понятень порядок действий как вы делали?jane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievAndreyDmitriev писал(а): 27 апр 2025, 10:35 при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма.стала чуть чуть умнее
![]()
-
AndreyDmitriev
- VIP

- Сообщения: 1427
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 8
- Версия LabVIEW: 6.1 - 2025
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 78 раз
- Контактная информация:
Re: Индификация программы Labview
Вот, перегнал в LV2010. Вроде не ошибся нигде, там пришлось vim выпилить, ну и до кучи класс я тоже выкинул, sha256 хэш от строки test должен быть 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08.
- Вложения
-
2010sha256.zip- (344.39 КБ) 151 скачивание
-
AndreyDmitriev
- VIP

- Сообщения: 1427
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 8
- Версия LabVIEW: 6.1 - 2025
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 78 раз
- Контактная информация:
Re: Индификация программы Labview
Откройте проект, сгенерите exe файл, закройте проект, откройте его снова и ничего не меняя, снова сгенерите. Exe файлы могут получиться разные.JohnChaban писал(а): 28 апр 2025, 19:05Не очень понятень порядок действий как вы делали?jane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievAndreyDmitriev писал(а): 27 апр 2025, 10:35 при каждой новой сборке содержимое исполняемого файла слегка меняется (так LabVIEW устроена), поэтому будет меняться и контрольная сумма.стала чуть чуть умнее
![]()
-
jane_wild
- leader

- Сообщения: 542
- Зарегистрирован: 30 июн 2016, 02:11
- Награды: 1
- Версия LabVIEW: 2020
- Благодарил (а): 107 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Индификация программы Labview
Я бы "могут получиться" из этого предложения выбросила. Десять раз перекомпилировала и все 10 раз хэш разный.
Life is short. Smile while you still have teeth!
-
AndreyDmitriev
- VIP

- Сообщения: 1427
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 8
- Версия LabVIEW: 6.1 - 2025
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 78 раз
- Контактная информация:
Re: Индификация программы Labview
Ну я как бы не в курсе, что именно там меняется, поэтому осторожен в заявлениях. Может банально автоинкремент версии билда включён, тогда это ожидемо и очевидно, может метка времени. В случае с Visual Studio, к примеру, если на С++, то там помимо метки времени ещё пишется уникальный GUID для привязки к pdb файлу, и он всегда разный. Другой пример - Раст, он такой фигнёй не страдает и выгоняет вроде бы одинаковый код для одного и того же исходника. А что там делает LabVIEW я не знаю, в теории можно дотошно разобраться, но времени жалко. Ну разный файл и разный.jane_wild писал(а): 28 апр 2025, 20:50Я бы "могут получиться" из этого предложения выбросила. Десять раз перекомпилировала и все 10 раз хэш разный.
-
AndreyDmitriev
- VIP

- Сообщения: 1427
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 8
- Версия LabVIEW: 6.1 - 2025
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 78 раз
- Контактная информация:
Re: Индификация программы Labview
А, вдогонку, есть и другой способ, можно ведь выдать самому себе сертификат, это делается примерно вот таким командным файлом (но инструменты должны быть в системе, они с Visual Studio ставятся):
Это не я придумал, это вот отсюда: https://stackoverflow.com/questions/848 ... on-windows
Если вы всё правильно сделаете, то у вас добавится сертификат, который можно использовать в билд-спецификации и подписывать им файл:

Ну или через командную строку:
Тогда в свойствах появится закладка цифровой подписи (извиняйте за немецкие скриншоты):

Ну и там дальше можно детали посмотреть:


Серийник и "отпечатки пальцев"


Тогда проверять аутентичность программы можно прямо из командной строки, официально
так в самом простейшем случае
или сяк (по идее надо отпечаток тоже проверять, чтобы быть уверенным в том, что это именно ваш сертификат):
Плюсом тут то, что этот ключ меняться от билда к билду больше не будет, так как он из сертификата прилетает, ну и оно более верно с идеологической точки зрения, чем решение выше "на коленке". По сути там тоже самое и хэш sha256 используется. Но заморочек чуть больше. Понятно, что проверку на аутентичность в Windows такой сертификат не пройдёт (для этого его покупать надо), но как своя собственная цифровая подпись — почему бы и нет. На работе у нас сертификат куплен, раньше это был просто pfx файл с паролем, а сейчас запущен сервер подписи, я ему кидаю файл, а он мне возвращает подписанный.
Код: Выделить всё
REM Creating a self-signed certificate authority (CA):
makecert -r -pe -n "CN=Andrey" -ss CA -sr CurrentUser -a sha256 -cy authority -sky signature -sv Andrey.pvk Andrey.cer
REM Importing the CA certificate:
certutil -user -addstore Root Andrey.cer
REM Creating a code-signing certificate (SPC):
makecert -pe -n "CN=Andrey" -a sha256 -cy end -sky signature -ic Andrey.cer -iv Andrey.pvk -sv Andrey.pvk Andrey.cer
REM Convert the certificate and key into a PFX file:
pvk2pfx -pvk Andrey.pvk -spc Andrey.cer -pfx Andrey.pfx
Если вы всё правильно сделаете, то у вас добавится сертификат, который можно использовать в билд-спецификации и подписывать им файл:

Ну или через командную строку:
Код: Выделить всё
REM Using the certificate for signing code:
signtool sign /v /fd SHA256 /f Andrey.pfx /t http://timestamp.comodoca.com/authenticode Application.exe

Ну и там дальше можно детали посмотреть:


Серийник и "отпечатки пальцев"


Тогда проверять аутентичность программы можно прямо из командной строки, официально
так в самом простейшем случае
Код: Выделить всё
signtool verify /pa Application.exeКод: Выделить всё
$sig = Get-AuthenticodeSignature "Application.exe"
if ($sig.Status -eq 'Valid') { "Valid" } else { "Invalid: $($sig.Status)" }
Get-AuthenticodeSignature "Application.exe" | Select -ExpandProperty SignerCertificate | Format-List Thumbprint
- JohnChaban
- leader

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
А что значит разные где это увидеть можно?AndreyDmitriev писал(а): 28 апр 2025, 20:32Откройте проект, сгенерите exe файл, закройте проект, откройте его снова и ничего не меняя, снова сгенерите. Exe файлы могут получиться разные.JohnChaban писал(а): 28 апр 2025, 19:05Не очень понятень порядок действий как вы делали?jane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.
Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievстала чуть чуть умнее
![]()
- JohnChaban
- leader

- Сообщения: 748
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2014
- Откуда: Город Сосновый Бор Ленинградская Область
- Поблагодарили: 1 раз
- Контактная информация:
Re: Индификация программы Labview
AndreyDmitriev писал(а): 28 апр 2025, 20:32Откройте проект, сгенерите exe файл, закройте проект, откройте его снова и ничего не меняя, снова сгенерите. Exe файлы могут получиться разные.JohnChaban писал(а): 28 апр 2025, 19:05Не очень понятень порядок действий как вы делали?jane_wild писал(а): 28 апр 2025, 17:18 Проверила на рабочем проекте. Все работает. Правда пришлось с путями повозится, поскольку vi в моем проекте, где происходила проверка на подлинность был "закопан" глубже.
Проверила - это действительно так. Скомпилировала, Post-Build-Action сгенерировал файл. Я его посмотрела, скомпилировала снова, (не открыв в проекте ни одного vi) снова посмотрела файл. Сумма абсолютно другая! Спасибо AndreyDmitrievстала чуть чуть умнее
![]()
Последний раз редактировалось JohnChaban 29 апр 2025, 08:54, всего редактировалось 3 раза.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 14540 Просмотры
-
Последнее сообщение Borjomy_1
-
- 3 Ответы
- 11876 Просмотры
-
Последнее сообщение JohnChaban
-
- 8 Ответы
- 20608 Просмотры
-
Последнее сообщение Artem.spb
-
- 5 Ответы
- 16516 Просмотры
-
Последнее сообщение JohnChaban