Кажется, нашел ошибку в VMProtect...

Issues related to VMProtect
Post Reply
extra0006
Posts: 3
Joined: Fri Nov 08, 2019 8:57 pm

Кажется, нашел ошибку в VMProtect...

Post by extra0006 »

Здравствуйте! Скачал демо версию, 3.4.0. Установил её с флешки на другой компьютер, на котором нет ни сетевой карты, ни сетевого оборудования (да, вот так, совсем нет, физически отсутствуют). Попробовал защитить приложение, написанное на Delphi-7 (код не привожу, поскольку эффект наблюдается на любом защищаемом приложении). Приложение успешно компилируется, появляется приглашение запустить. Запускаю - и сразу получаю ошибку: "This applicftion is protected with unregistered version of VMProtect and cannot be executed on this computer.". Интересно, как такое может быть?..

У меня есть догадки, почему так происходит. Если я не прав, поправьте меня...
1) Демо-версия имеет ограничение - защищённая программа привязывается к конфигурации ПК и может быть запущена только на том компьютере, на котором была скомпилирована протектором (это я прочитал).
2) Привязку VMProtect делает своей же функцией "VMProtectGetCurrentHWID" а последующая проверка при запуске приложения производится ею же. Эта функция вычисляет некий хеш на основе ID CPU, Mac-адреса, имени компьютера и чего-нибудь ещё.
3) НО! Поскольку в данном компьютере нет никакого сетевого оборудования, то при попытке определить Mac-адрес функция возвращает ошибку. В результате приложение не может определить на каком компьютере оно запущено, на "своём" или на "чужом" и не запускается...

Конечно, понятно, что на лицензионной версии VMProtect этой ошибки не будет. Но... если я прав, корректно ли тогда будет работать система лицензирования с привязкой по HWID в этом и подобных случаях? Когда функция не может определить ID оборудования по причине его отсутствия?..
Admin
Site Admin
Posts: 2585
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Кажется, нашел ошибку в VMProtect...

Post by Admin »

Что выдает VMProtectGetCurrentHWID на этом компьютере?
extra0006
Posts: 3
Joined: Fri Nov 08, 2019 8:57 pm

Re: Кажется, нашел ошибку в VMProtect...

Post by extra0006 »

Набросал такой код:

Code: Select all

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, VMProtectSDK;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var pBuf : PAnsiChar;
  nSize : Integer;
begin
  VMProtectBegin('Marker_1');
  nSize:=VMProtectGetCurrentHWID(nil,0);
  GetMem(pBuf,nSize);
  try
    VMProtectGetCurrentHWID(pBuf,nSize);
    Label1.Caption:='HWID='+pBuf
  finally
    FreeMem(pBuf)
    end;
  VMProtectEnd
  end;

end.
Не защищённое приложение (не обработанное VMProtect) выдаёт то, что и положено по-умолчанию, т.е. "HWID=myhwid".
Реальный HWID посмотреть не могу, по озвученной ранее причине - любое приложение, обработанное на этом компьютере, при запуске на нём же выдаёт сообщение "This applicftion is protected with unregistered version of VMProtect and cannot be executed on this computer." и закрывается...
extra0006
Posts: 3
Joined: Fri Nov 08, 2019 8:57 pm

Re: Кажется, нашел ошибку в VMProtect...

Post by extra0006 »

Admin wrote:Что выдает VMProtectGetCurrentHWID на этом компьютере?
Уважаемый Admin!
Может, Вы всё-таки ответите на мой вопрос - что же делать с этой проблемой?.. Написал ответ ещё 11-го числа, а в ответ - тишина...

В общем, провёл сегодня эксперимент. Установил сетевую карту в этот компьютер, настроил сетевое подключение через "мастер" и - о чудо, после компиляции в VMProtect приложение запустилось! И даже показало реальный HWID:
screen.png
screen.png (10.8 KiB) Viewed 4597 times
После этого я отключаю сетевую карту в "диспетчере устройств" и перезагружаюсь. Теперь после компиляции в VMProtect приложение снова не запускается и выдаёт ошибку - мол, компьютер "чужой". Но, что интересно - если запустить копию приложения, скомпилированного ранее (т.е. ДО отключения сетевой карты и перезагрузки), оно работает и показывает HWID, но уже другой (Точнее, тот же, но обрезанный):
screen_no_card.png
screen_no_card.png (10.69 KiB) Viewed 4597 times
То есть, защищённое приложение отказывается запускаться только после компиляции на конфигурации без сетевой карты...
Admin
Site Admin
Posts: 2585
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Кажется, нашел ошибку в VMProtect...

Post by Admin »

К сожалению не удалось воспроизвести вашу проблему.
Post Reply