VMProtect 2.1 консоль создаёт не рабочий ехе файл.

Обновил VMProtect с версии 2.09 до 2.1 и перестала работать сборка. Первая проблема со скриптами, решил их отключением, все проверки сначала производил в GUI. Без скриптов работало и запускалось. Но когда решил собрать в консоли и запустить полученный ехе, то ОС выдала краш. ОС Windows 7.

Присылайте тестовый проект (exe+map+vmp файлы), на котором воспроизводится данная проблема.

Не стал плодить топики. При создании проекта, имя файла записывается как InputFileName=“\nnn.dll”. При открытии этого же проекта пишет “file c:\nnn.dll not found”. Убрать бы символ перед именем файла.
Да, и еще при выборе дельфового энтрипоинта для защиты, захватывает 2 дворда после финальных call. Убираю ручной простановкой конца процедуры. Так и должно быть?

Только что создал новый проект в 2.1 - InputFileName=“.\test.exe” (с точкой перед слешем)
По поводу дельфового проекта - а что с ним не так? Если речь идет про эти CALL-ы:

004BBC83 E8F078FFFF              call 004B3578 -> Forms.TApplication.Run
004BBC88 E8E3A1F4FF              call 00405E70 -> System.@Halt0

То все ОК.

Cоздал новый проект. Без точки создалось по дефолту, и не понятно зачем она, если логичнее без нее. В .vmp записалось - InputFileName=“\nnn.exe”, при открытии (запуске nnn.vmp из проводника) - еррор - пытается найти этот .exe в корне диска.
Про дельфи - соврал, длл сторонняя, написана на С. “Хвост” энтрипоинта (3 дворда убираю принудительно):

1000167B E8F8000000              call 10001778
10001680 59                      pop ecx 
10001681 59                      pop ecx 
10001682 C3                      ret 
10001683 8B65E8                  mov esp, [ebp-18] 
10001686 834DFCFF                or dword ptr [ebp-04], -01 
1000168A 33C0                    xor eax, eax 
1000168C E84A010000              call 100017DB
10001691 C20C00                  ret 000C 
10002158 FFFFFFFF                dd FFFFFFFF State
1000215C 72160010                dd 10001672 FilterProc
10002160 83160010                dd 10001683 ExitProc

А как вы создаете новый проект? Из проводника?
По поводу хвоста от EntryPoint - до сих пор не понятно чем они вам не нравятся? На самом деле они они относятся к обработке исключений и я не рекомендую исключать их из компиляции.

Запускаю вмпрот (GUI), выбираю exe/dll, сохраняю. Выхожу из вмпрота, “запускаю” vmp файл, открывается GUI вмпрота, и тут ошибка поиска моего exe/dll.

Просто не понимаю, почему они включаются в защищаемую процедуру.

Запускаю вмпрот (GUI), выбираю exe/dll, сохраняю. Выхожу из вмпрота, “запускаю” vmp файл, открывается GUI вмпрота, и тут ошибка поиска моего exe/dll.

На версии 2.10 не воспроизводится.

Просто не понимаю, почему они включаются в защищаемую процедуру.

Еще раз - эти команды относятся к обработчику исключений EntryPoint-а (try/catch/finally), поэтому вмпротект их и распарсил.

Что-то с ответом тихо. Так же “убивают”:
“File corrupted!. This program has been manipulated and maybe
it’s infected by a Virus or cracked. This file won’t work anymore.”
Зачем восклицательный знак + точка? Зачем точка в конце сообщения, когда это выдается мессаджбоксом?

Я вам уже отвечал, что на версии 2.10 у нас ваша проблема не воспроизводится. По поводу сообщений - вы можете их отредактировать на своё усмотрение.

2.10 по дефолту создает в проекте InputFileName=“\nnn.exe”. Зачем ""? Сообщения - ес-но могу редактировать, но c таким же успехом Вы можете туда вставить слово из 3-х букв, по крайней мере синтаксических ошибок не будет. “Ужос”

В InputFileName по дефолту записывается относительный путь между каталогом с проектом и ехе-файлом. В результате должно получиться ‘.\nnn.exe’ (если файл проекта лежит рядом с загружаемым файлом). Но, как оказалось на XP SP3 функция PathRelativePathTo работает с ошибками и у вас получается ‘\nnn.exe’. Мы внесем изменения в код, чтобы на XP3 относительный путь сохранялся в правильном виде.

P.S. С помощью служебных символов ‘.’, '', ‘..’ можно задавать относительные пути для файлов/каталогов. Например "." - это текущий каталог, '..' - каталог на уровень выше и т.д.

2.11 - тот же баг, только что новый проект создавал

Все гут, звиняйте

Ок.

Версия 2.13, недочеты:

  1. При перещелкивании пунктов отладчика дабл-кликом, выборе “Нет” и сохранении файла, автоматически сохраняет строку в .vmp: CheckKernelDebugger=“true”
  2. Абсолютные пути для DLL-box. Очень неудобно при переносе проекта

Файлы в DLL Box могут иметь путь относительно файла проекта.

  1. Опция детекта VMware не работает на x64 DLL. На x32 все ок. Это нормально?

Детект VMware работает на исключениях, которые не поддерживаются для х64 кода. В 3-ей версии будет полноценный детект VMware и для х64.