Узнать код из exe

Создание приложений, библиотек, инсталляторов
Sarog
interested
interested
Сообщения: 2
Зарегистрирован: 20 июл 2009, 21:58
Версия LabVIEW: 8.2
Контактная информация:

Узнать код из exe

Сообщение Sarog »

Добрый вечер. Возникла потребность узнать код программы по exe файлу. exe с оборудованием national instruments, и я так понимаю просто получить его не удастся?
в labview блочок, а из чего он состоит не понятно
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: узнать код из exe

Сообщение Konstantin Sumenko »

Из экзешника ты код программы не вытянешь. Тут reverse engeneering не работает.
Sarog
interested
interested
Сообщения: 2
Зарегистрирован: 20 июл 2009, 21:58
Версия LabVIEW: 8.2
Контактная информация:

Re: узнать код из exe

Сообщение Sarog »

Crowbar, и никак нельзя узнать? вот блин(
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: узнать код из exe

Сообщение Eugen Graf »

Переименуй exe в llb и открой с помощью :labview: . При этом будет показана только структура (названия приборов, подприборов и может быть лицевые панели) без блок диаграмм, и то это работает только в старых версиях.
Аватара пользователя
crashwork

Activity Silver
adviser
adviser
Сообщения: 205
Зарегистрирован: 17 фев 2009, 19:57
Награды: 2
Версия LabVIEW: 8.5, 9.0
Откуда: Украина. Кременчуг
Контактная информация:

Re: Узнать код из exe

Сообщение crashwork »

Только, что открыл проект который создавался в :labview: 8.5 в :labview: 2009 и оттуда сгенерил экзешник. После этого архиватор winrar стал воспринимать такой экзешник как архив и предлагает извлечь файлы. После извлечения получил все :vi:, контролы, хконтролы которые зашивал. Правда блок-диаграмм вроде нельзя посмотреть, но все равно как-то меня такой момент не радует. А вот экзешник полученный из :labview: 8.5 вообще не воспринимается архиватором. Кто-то обращал на это внимание? Может какую то галочку дополительную надо поставить в 2009, что бы такого не было?
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

Re: Узнать код из exe

Сообщение Viktor »

Да, и в 8.6 .exe не воспринимается архиватором
А в :labview: 2009 winrar предлагает извлечь файлы :shok:
Аватара пользователя
crashwork

Activity Silver
adviser
adviser
Сообщения: 205
Зарегистрирован: 17 фев 2009, 19:57
Награды: 2
Версия LabVIEW: 8.5, 9.0
Откуда: Украина. Кременчуг
Контактная информация:

Re: Узнать код из exe

Сообщение crashwork »

Viktor писал(а):Да, и в 8.6 .exe не воспринимается архиватором
А в :labview: 2009 winrar предлагает извлечь файлы :shok:
Вот и именно. Блин, мне это вообще не нравится. Вот таким простым способом можно получить все ресурсы зашитые в exe. Вроде и не страшно (мне не жалко) но тем не менее.
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Узнать код из exe

Сообщение Pavel Krivozubov »

нда уж вот и сюрприз))
кстати мне тут знающие люди сказали что например вордовские файлы от офиса 2007 тоже открываются раром в виде дерева каких то папок :D
может это просто такая общемировая тенденция, а вовсе не недороботка NI? надо будет этот вопрос им задать на конференции.
Аватара пользователя
crashwork

Activity Silver
adviser
adviser
Сообщения: 205
Зарегистрирован: 17 фев 2009, 19:57
Награды: 2
Версия LabVIEW: 8.5, 9.0
Откуда: Украина. Кременчуг
Контактная информация:

Re: Узнать код из exe

Сообщение crashwork »

Indey писал(а):нда уж вот и сюрприз))
кстати мне тут знающие люди сказали что например вордовские файлы от офиса 2007 тоже открываются раром в виде дерева каких то папок :D
может это просто такая общемировая тенденция, а вовсе не недороботка NI? надо будет этот вопрос им задать на конференции.
Обязательно спросите. Я не склонен думать, что это недоработка NI, ибо это надо очень жестко извиняюсь "протупить". Скорей конечно "так все и было задумано". Правда зачем?
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Узнать код из exe

Сообщение Konstantin Sumenko »

Даже не знаю: баг это или фича; обязательно спросим :super:
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4421
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

Re: Узнать код из exe

Сообщение Pavel Krivozubov »

crashwork писал(а):
Indey писал(а):нда уж вот и сюрприз))
кстати мне тут знающие люди сказали что например вордовские файлы от офиса 2007 тоже открываются раром в виде дерева каких то папок :D
может это просто такая общемировая тенденция, а вовсе не недороботка NI? надо будет этот вопрос им задать на конференции.
Обязательно спросите. Я не склонен думать, что это недоработка NI, ибо это надо очень жестко извиняюсь "протупить". Скорей конечно "так все и было задумано". Правда зачем?
да кстати . спросили. ответа не получили.
так что выходов два либо задать этот вопрос на labview.ru, может быть когда-нибудь ответят, либо искать на заморских форумах.
xryst
interested
interested
Сообщения: 1
Зарегистрирован: 07 сен 2010, 22:36
Версия LabVIEW: 7
Контактная информация:

Re: Узнать код из exe

Сообщение xryst »

Сори что поднимаю старую тему, но вопрос такого же плана! Есть exe созданный в :labview: 7.1, при переименовании в llb открываются все :vi: из которых он состоит, но из них открываются только :vi: в котором находится морда программы, но редактировать нечего не дает, остальные даже не открываются :labview: 7.1 говорит ресурсы не найдены, код ошибки загрузки 3, Could not load front panel, это чего то не в самом :labview: ? и есть какието методы разобрать ехе файл или программы для этого???
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Узнать код из exe

Сообщение Eugen Graf »

Ну уж настолько код не открыт конечно. Для просмотра кода нужны исходники.
AndreyDmitriev

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

Re: Узнать код из exe

Сообщение AndreyDmitriev »

Дело тут вот в чём. VI в принципе состоит из трёх частей-ресурсов: блок-диаграмма, передняя панель и скомпилированный код (строго говоря ресурсов там больше, но эти три - основные для понимания). Пока мы находимся в режиме разработки, то всегда присутствуют все три части. При компиляции в исполняемый файл блок-диаграммы удаляются, а также удаляются ненужные передние панели (компилятор достаточно интеллектуален, чтобы разобраться - какие панели удалить, а какие оставить). Остаётся только код. Файл без блок-диаграмы открыть в LabVIEW невозможно, равно как и невозможно восстановить блок-диаграмму по скомпилированному коду. Кстати, компиляция - не единственный способ удалить блок-диаграмму или переднюю панель, это можно сделать включив соотвествующие опции при массовом сохранении файлов (не в диалоге Save As, а в Source Distribution). В версии 2010 вроде как можно явно разделить VI на две части, сохранив скомпилированный код отдельно от VI (сути это не меняет) - детально я ещё не смотрел, всё руки не доходят.

До версии 2009 исполняемые файлы представляли по сути своей llb файл с небольшим заголовком - загрузчиком. Отсюда возможность открыть исполняемый файл как llb библиотеку простым переимнованием. Начиная с версии 8 из заголовка был убран флаг библиотеки, так что такой простой трюк с переименованием перестал срабатывать, однако суть осталась та же - можно просто "отрезать" в шестнадцатеричном редакторе начало исполняемого файла до сигнатуры RSRC и он откроется как llb. Начиная с версии 2009 исполняемый файл представляет собой обыкновенный zip архив с поддиректориями (и разумеется заголовком, позволяющим архиву "прикинуться" исполняемым файлом). Такая структура дала возможность легко разрешить конфликт при использовании SubVI с одинаковыми именам в различных классах или библиотеках. WinRar достаточно продвинутый и видит внутри исполняемого файла архив, ну и предлагает его распаковать, так что чуда никакого нет. В компиляторе 2009, кстати есть опция генерировать исполняемый файл в формате 8.6 - это как раз режим, когда будет создаваться монолитная llb.

Всё, что можно сделать с исполняемым скомпилированным файлом - преобразовать его в набор SubVI (но без блок-диаграмм). Таким образом можно в принципе получить примерное представление о внутренней структуре программы. Теоретически можно использовать вытащенные из исполняемого файла SubVI в своей программе (без возможности модификации, кроме того версия LabVIEW должна строго совпадать с версией, использованной для компиляции). Файлы без блок-диаграмм и передних панелей невозможно открыть в LabVIEW напрямую, однако такие файлы можно использовать в блок-диаграмме (правда те, что без передних панелей знаками вопросиков будут отображаться). Также следует помнить, что в исполняемом файле находятся все библиотечные SubVI (те, что обычно лежат в vi.lib) и они слинкованы друг с другом, так что как правило такие трюки приводят к конфликтам. Теоретически можно подменить отдельные SubVI на свои собственные и собрать исполняемый файл заново. Продвинутые пользователи перед компиляцией шифруют имена файлов типа Check License.vi -> 1243A234E21321.vi , чтобы любопытствующим было чуть труднее разобраться.

Единственный раз, когда я этим пользовался, был вызван небходимостью передать файл с картинкой в одну из утилит NI через командную строку (единственная возможность, которую предоставил NI - открытие файла через меню, что меня достало неимоверно). Утилита была написана на LabVIEW, так что (отложив подальше лицензионное соглашение) я преобразовал её в LLB, сделал небольшую обёртку, принимающую параметры командной строки и собрал всё заново.

Где-то так.
Fedor_spb
interested
interested
Сообщения: 1
Зарегистрирован: 24 ноя 2010, 09:48
Версия LabVIEW: 7.1, 8.6, 9

Re: Узнать код из exe

Сообщение Fedor_spb »

Добрый день.

Тоже есть необходимость открыть exe в Labview. Пробовал переименовывать в llb, в rar, открывать в версиях 7.1, 8.6, 2009. Во всех случаях пишет, что файл is not readable или не является библиотекой llb.

Затеяно все это по необходимости поменять цвет фона окна исполняемого exe. Поскольку переименованиями этого не удалось добиться, возникла мысль исправить цвет окна в HEX редакторе. Было предпринято множество поисков и попыток, увы, безуспешных. Пробовал также содавать exe с разными цветами фона окна, затем искал отличия в hex файле - также беспросветно.

Может кто-нибудь подсказать где искать? Или отправить в заданном направлении где можно что-то почитать о структуре создаваемого exe файла из LabView?

Спасибо.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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