Ограничения демо-версии

Добрый день,

Имеется ли в “полной” версии возможность компиляции .OBJ->.OBJ? У меня есть статическая библиотека, реализующая механизмы защиты, которая линкуется ко многим исполнимым модулям. Или же мне придется для каждого модуля создавать map-файл и уже его обрабатывать консольной версией vmprotect’a?
Спасибо.

В полной версии пока нет поддержки OBJ формата. Т.е. в вашем случае придется обрабатывать уже готовое приложения после компиляции в EXE/DLL.

P.S. По поводу поддержки OBJ - вы всего лишь второй пользователь, кто об этом спрашивает :slight_smile:) В любом случае OBJ подразумевает дальнейшую линковку и даже если делать защиту на уровне OBJ, то многие вещи (указатели на другие объекты) придется хранить в открытом виде (т.к. указатели - это результат работы линковщика) и уровень защиты будет намного ниже чем защита уже связанного файла.

Спасибо. В этом случае единственный вопрос: удастся ли мне автоматизировать процесс на уровне сценария сборки (консольная утилита, конечно же, входит в комплект поставки “полной” версии?), если заранее известен список защищаемых процедур?

Перед использованием консольной версии (конечно же она входит и в комплект полной версии) вам необходимо подготовить проект в GUI версии (в результате вы будете иметь .vmp файл рядом с вашим приложением) и уже в дальнейшем пользоваться консольной версией. Т.е. подготовка проекта ведется всегда в GUI версии.

спасибо

Кстати вы можете предвариательно все проверить и на консольной версии из демки (консольная версия входит в [u]дистрибутив[/u]).

По поводу автоматизации сборки и консольной утилиты, есть пара замечаний.

  1. Консольной утилите нельзя указать местоположение файла проекта (.vmp) и map файла (правда последний как правило легко сгенерить туда же куда и исполняемый модуль, поэтому это мение существенно) - в связи с этим приходится копировать файл проекта в директории сборки, что не очень правильно, имхо.
  2. по мелочам: Бегущие проценты это излишек, т.к. при автоматческой сборке вывод обычно пишется в лог, получается что-то вроде: “Компиляция… 0%Компиляция… 0%Компиляция…”
  1. Консольной утилите нельзя указать местоположение файла проекта (.vmp) и map файла (правда последний как правило легко сгенерить туда же куда и исполняемый модуль, поэтому это мение существенно) - в связи с этим приходится копировать файл проекта в директории сборки, что не очень правильно, имхо.

Будет добавлен соотвествующий параметр для указания файла проекта.

  1. по мелочам: Бегущие проценты это излишек, т.к. при автоматческой сборке вывод обычно пишется в лог, получается что-то вроде: “Компиляция… 0%Компиляция… 0%Компиляция…”

При выводе в лог, действительно получится “куча” процентов, но в большинстве случаев все-таки пользователь видит сам процесс на экране (без записи в лог) и при большом объеме обрабатываемого кода без признаков жизни со стороны консольной версии пользователь может ошибочно подумать, что программа зависла - поэтому без процентов никак нельзя :slight_smile:) Для режима ведения процесса компиляции в лог можно придумать параметр командной строки для отключения процентов.

Параметр -nologo (в смысле -silent) - будет самое то.
Итого: VMProtect_con.exe [-nologo] [-proj “<file.vmp>”] [-map “<file.map>”] [] [-wm “watermark”]

Параметр -nologo (в смысле -silent) - будет самое то.

Можно сделать еще проще - в консольной версии определять тип консоли через GetFileType и если результат <>FILE_TYPE_CHAR, то прогресс не выводить.

Здравствуйте,
Нет ли новостей в части защиты OBJ-файлов?

Нет ли новостей в части защиты OBJ-файлов?

В плане защиты OBJ никаких работ не ведется.

Спасибо за ответ.