Привязка exe файла к ID оборудования

Issues related to VMProtect
Post Reply
neon
Posts: 3
Joined: Fri Apr 07, 2023 2:34 pm

Привязка exe файла к ID оборудования

Post by neon »

Изначально есть exe файл. Исходного кода нет, т. к. это результат компиляции проекта LabView, а это визуальное программирование. Создал проект, добавил файл лицензии с ID оборудования. В параметрах лицензирования указал имя файла. Создал в папке с защищённым файлом файл лицензирования и прописал в нём серийный номер. При запуске программы выходит сообщение, что требуется верный серийный номер для запуска. В чём может быть проблема? При этом программа, если смотреть по монитору файловых процессов, при запуске не обращается к файлу лицензирования.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Привязка exe файла к ID оборудования

Post by Admin »

В чём может быть проблема? При этом программа, если смотреть по монитору файловых процессов, при запуске не обращается к файлу лицензирования.
Конечно не обращается. Вы должны сами передать серийный номер внутрь VMProtectSetSerialNmber.
neon
Posts: 3
Joined: Fri Apr 07, 2023 2:34 pm

Re: Привязка exe файла к ID оборудования

Post by neon »

а как его передать без исходного кода? Повторюсь, это скомпилированный проект Labview, которая является графической средой программирования и языка программирования как такового нет.
Catharsis
Posts: 23
Joined: Tue Sep 22, 2020 5:27 pm

Re: Привязка exe файла к ID оборудования

Post by Catharsis »

neon wrote:а как его передать без исходного кода?
Выносите логику лицензирования в DLL. Экспортируете одну функцию-пустышку, чтобы эту либу можно было добавить в таблицу импорта вашего бинарника. Логика лицензирования же будет у Вас запускаться в DllMain. Проверяете лицензию, и если что-то идет не так, то показываете соответствующее сообщение и завершаете процесс.
Саму же либу пакуете в Ваш бинарник при помощи "Virtual Files".

Простой костыль, который решит вашу проблему.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Привязка exe файла к ID оборудования

Post by Admin »

neon wrote:а как его передать без исходного кода? Повторюсь, это скомпилированный проект Labview, которая является графической средой программирования и языка программирования как такового нет.
Если стоит задача только привязки EXE к HWID, то нужный HWID можно установить прямо в настройках VMProtect (Опции - Дополнительные - Привязать к HWID). Единственный момент - для каждого HWID придется пересобирать сам EXE.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Привязка exe файла к ID оборудования

Post by Admin »

Catharsis wrote:Простой костыль, который решит вашу проблему.
Костыль совершенно бесполезный и ломается за 5 минут.
Catharsis
Posts: 23
Joined: Tue Sep 22, 2020 5:27 pm

Re: Привязка exe файла к ID оборудования

Post by Catharsis »

Admin wrote:
Catharsis wrote:Простой костыль, который решит вашу проблему.
Костыль совершенно бесполезный и ломается за 5 минут.
Ну если саму либу накрыть протектором, а потом запаковать её при помощи протектора в бинарник автора темы, то не за 5 минут :)
Ну и, естественно, либа должна не просто показывать MessageBox и закрывать процесс. Перед тем, как показать сообщение, можно похерить память приложения например. Можно придумать как извратиться :)
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Привязка exe файла к ID оборудования

Post by Admin »

Ну если саму либу накрыть протектором
Самая главная проблема в том, что ничего полезного для конечного приложения эта либа НЕ ДЕЛАЕТ, поэтому ее можно пропатчить сразу после ее загрузки, просто воткнув MOV EAX, 1 + RET в DllMain.
Catharsis
Posts: 23
Joined: Tue Sep 22, 2020 5:27 pm

Re: Привязка exe файла к ID оборудования

Post by Catharsis »

Admin wrote:
Ну если саму либу накрыть протектором
Самая главная проблема в том, что ничего полезного для конечного приложения эта либа НЕ ДЕЛАЕТ, поэтому ее можно пропатчить сразу после ее загрузки, просто воткнув MOV EAX, 1 + RET в DllMain.
Можно сделать, чтобы защищенная часть делала что-то полезное)
К примеру, сделать PE loader (я ж надеюсь, что у автора бинарь с релоками), в котором уже будет проверка лицензии, а сам бинарник лоадер будет тащить за собой в "Virtual Files" (можно даже в зашифрованном виде).
Можно сделать на основе этого - https://github.com/hasherezade/libpeconv , или любого другого удобного варианта.
Все ограничивается лишь фантазией. Ну и у нас тут типичный случай "Security through obscurity". Большинство увидев, что приложение накрыто VMP, просто не станут дальше ковырять.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Привязка exe файла к ID оборудования

Post by Admin »

Можно сделать, чтобы защищенная часть делала что-то полезное)
Вы о чем вообще? :)) Посмотрите на чем кодит ТС. Я на 146% уверен, что он даже не знает что такое PE формат, а вы ему предлагаете написать лоадер.
neon
Posts: 3
Joined: Fri Apr 07, 2023 2:34 pm

Re: Привязка exe файла к ID оборудования

Post by neon »

Я не настолько дремучий, чтобы не знать некоторых вещей в этой области. Да, я не программист, если говорить об распространённых языках программирования, но сделать DLL, добавить её в таблицу импорта и т. п. могу.
Post Reply