Декомпиляция EXE файлов NI LabVIEW ?

Создание приложений, библиотек, инсталляторов
Ответить
lab_fan
beginner
beginner
Сообщения: 44
Зарегистрирован: 24 июл 2010, 09:55
Версия LabVIEW: 8.6f1

Декомпиляция EXE файлов NI LabVIEW ?

Сообщение lab_fan »

Есть ли какая-то информация о попытках декомпиляции кодов EXE файлов, сгенерированных Application Builder-ом NI LabVIEW? Если были попытки декомпиляции (и каким инструментом?), то до какого уровня удавалось восстановить исходники?
Можно ли потом работать с этими исходниками, редактировать, запускать на исполнение?
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Декомпиляция EXE файлов NI LabVIEW ?

Сообщение Vasiliy Baev »

На этом форуме эта тема уже поднималась и если мне не изменяет память, то скомпилированные программы можно открыть при помощи WinRAR и получить доступ к VI у которых удалена лицевая панель, но доступ к коду можно получить. Возможно, :vi: будут защищены паролем (на данном форуме была тема обхода пароля, поищите по словам: защита паролем).В понедельник попробую на практике. Воз
lab_fan
beginner
beginner
Сообщения: 44
Зарегистрирован: 24 июл 2010, 09:55
Версия LabVIEW: 8.6f1

Re: Декомпиляция EXE файлов NI LabVIEW ?

Сообщение lab_fan »

Vasa писал(а): ...Возможно, :vi: будут защищены паролем (на данном форуме была тема обхода пароля, поищите по словам: защита паролем).
Пробовал защищать паролём открытие блок диаграммы. Нужно указать пароль, потом перейти в Run mode, а потом обязательно выйти из LabVIEW. Тогда при повторном запуске и попытке открыть блок диаграмму появится запрос пароля. Но, интуиция подсказывает, что это ненадёжно...
Можно защитить созданием полей ввода "Логин/Пароль", пример вместе с кодами на CD-ROM есть у Джеффри Трэвиса (4-е издание).
Но уязвимость, естественно, наступает после грамотной декомпиляции ЕХЕ файла. Можно защитить ссылками на коды используемого оборудования, ID компьютера. Но опять же, после декомпиляции и пошагового прохождения кодов всё это может быть выявлено.
Теперь пару слов с другого форума - цитирую:
Я сообщаю: ... а компилятор создаёт коды на языке C++
а мне отвечают: "...откуда такие данные? реверсил лабвью, чисто дотнетовская фигня, томозящая. "
А данные откуда - из документации и описаний. Сам не копал.
AndreyDmitriev

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

Re: Декомпиляция EXE файлов NI LabVIEW ?

Сообщение AndreyDmitriev »

Вы не очень разобрались с процессом компиляции. В скомпилированный файл ваши VI попадают вообще без блок-диаграмм. Они по умолчанию удаляются (хотя можно снять флажок удаления - это на вкладке Source File Settings в настройках, если в последних версиях). Передние панели тоже, кстати, удаляются, если они не нужны. Восстановить блок-диаграмму из исполняемого файла не получится, независимо от того, защищали вы паролем VI или нет. Скомпилированный файл по сути представляет собой библиотеку llb с загрузчиком (до версии 8.6 включительно). В последних версиях производится упаковка в zip. Теоретически можно получить общее представление о внутренней структуре программы, разобраться в иерархии, но не более того, кода оттуда не получить.
Что касается .net то там его нет и в помине. Под капотом у лабвью по сути опенсорсный компилятор LLVM. Блок-диаграммы разбираются на части, перебрасываются в представление, удобное для виртуальной машины LLVM и компилируются в машинный код. Чем-то очень отдалённо напоминает Java, но на более низком уровне, что ли.
Теоретически можно по машинным кодам восстановить исходный текст (понятно, что из примитивных структур генерятся узнаваемые паттерны), но пока такого инструмента ещё нет в природе.
В общем, курите мануалы:
http://www.ni.com/devzone/lvzone/dr_vi_archived6.htm
http://zone.ni.com/devzone/cda/pub/p/id/1177
http://llvm.org
lab_fan
beginner
beginner
Сообщения: 44
Зарегистрирован: 24 июл 2010, 09:55
Версия LabVIEW: 8.6f1

Re: Декомпиляция EXE файлов NI LabVIEW ?

Сообщение lab_fan »

AndreyDmitriev писал(а):Вы не очень разобрались с процессом компиляции. В скомпилированный файл ваши VI попадают вообще без блок-диаграмм. Они по умолчанию удаляются...
Да я и не имел здесь в виду никакой компиляции, просто защита диаграммы паролём, есть такая услуга для :vi: файла.
AndreyDmitriev писал(а): Что касается .net то там его нет и в помине. Под капотом у лабвью по сути опенсорсный компилятор LLVM. Блок-диаграммы разбираются на части, перебрасываются в представление, удобное для виртуальной машины LLVM и компилируются в машинный код. Чем-то очень отдалённо напоминает Java, но на более низком уровне, что ли.
Да, спасибо за мануалы! Закурил слегка... даже не в затяжку... голова кругом... это с непривычки :wink:
AndreyDmitriev писал(а): Теоретически можно по машинным кодам восстановить исходный текст (понятно, что из примитивных структур генерятся узнаваемые паттерны), но пока такого инструмента ещё нет в природе.
И это хорошо! Аналогичного мнения некоторые представители тех, кого называют хакерами (сказали, что нет ничего не взламываемого, но будет очень дорого стоить :cool: )
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»