Здравствуйте! Скачал демо версию, 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 оборудования по причине его отсутствия?..
Кажется, нашел ошибку в VMProtect...
Re: Кажется, нашел ошибку в VMProtect...
Что выдает VMProtectGetCurrentHWID на этом компьютере?
Re: Кажется, нашел ошибку в VMProtect...
Набросал такой код:
Не защищённое приложение (не обработанное VMProtect) выдаёт то, что и положено по-умолчанию, т.е. "HWID=myhwid".
Реальный HWID посмотреть не могу, по озвученной ранее причине - любое приложение, обработанное на этом компьютере, при запуске на нём же выдаёт сообщение "This applicftion is protected with unregistered version of VMProtect and cannot be executed on this computer." и закрывается...
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.
Реальный HWID посмотреть не могу, по озвученной ранее причине - любое приложение, обработанное на этом компьютере, при запуске на нём же выдаёт сообщение "This applicftion is protected with unregistered version of VMProtect and cannot be executed on this computer." и закрывается...
Re: Кажется, нашел ошибку в VMProtect...
Уважаемый Admin!Admin wrote:Что выдает VMProtectGetCurrentHWID на этом компьютере?
Может, Вы всё-таки ответите на мой вопрос - что же делать с этой проблемой?.. Написал ответ ещё 11-го числа, а в ответ - тишина...
В общем, провёл сегодня эксперимент. Установил сетевую карту в этот компьютер, настроил сетевое подключение через "мастер" и - о чудо, после компиляции в VMProtect приложение запустилось! И даже показало реальный HWID: После этого я отключаю сетевую карту в "диспетчере устройств" и перезагружаюсь. Теперь после компиляции в VMProtect приложение снова не запускается и выдаёт ошибку - мол, компьютер "чужой". Но, что интересно - если запустить копию приложения, скомпилированного ранее (т.е. ДО отключения сетевой карты и перезагрузки), оно работает и показывает HWID, но уже другой (Точнее, тот же, но обрезанный): То есть, защищённое приложение отказывается запускаться только после компиляции на конфигурации без сетевой карты...
Re: Кажется, нашел ошибку в VMProtect...
К сожалению не удалось воспроизвести вашу проблему.