Имеется ли в “полной” версии возможность компиляции .OBJ->.OBJ? У меня есть статическая библиотека, реализующая механизмы защиты, которая линкуется ко многим исполнимым модулям. Или же мне придется для каждого модуля создавать map-файл и уже его обрабатывать консольной версией vmprotect’a?
Спасибо.
В полной версии пока нет поддержки OBJ формата. Т.е. в вашем случае придется обрабатывать уже готовое приложения после компиляции в EXE/DLL.
P.S. По поводу поддержки OBJ - вы всего лишь второй пользователь, кто об этом спрашивает ) В любом случае OBJ подразумевает дальнейшую линковку и даже если делать защиту на уровне OBJ, то многие вещи (указатели на другие объекты) придется хранить в открытом виде (т.к. указатели - это результат работы линковщика) и уровень защиты будет намного ниже чем защита уже связанного файла.
Спасибо. В этом случае единственный вопрос: удастся ли мне автоматизировать процесс на уровне сценария сборки (консольная утилита, конечно же, входит в комплект поставки “полной” версии?), если заранее известен список защищаемых процедур?
Перед использованием консольной версии (конечно же она входит и в комплект полной версии) вам необходимо подготовить проект в GUI версии (в результате вы будете иметь .vmp файл рядом с вашим приложением) и уже в дальнейшем пользоваться консольной версией. Т.е. подготовка проекта ведется всегда в GUI версии.
По поводу автоматизации сборки и консольной утилиты, есть пара замечаний.
Консольной утилите нельзя указать местоположение файла проекта (.vmp) и map файла (правда последний как правило легко сгенерить туда же куда и исполняемый модуль, поэтому это мение существенно) - в связи с этим приходится копировать файл проекта в директории сборки, что не очень правильно, имхо.
по мелочам: Бегущие проценты это излишек, т.к. при автоматческой сборке вывод обычно пишется в лог, получается что-то вроде: “Компиляция… 0%Компиляция… 0%Компиляция…”
Консольной утилите нельзя указать местоположение файла проекта (.vmp) и map файла (правда последний как правило легко сгенерить туда же куда и исполняемый модуль, поэтому это мение существенно) - в связи с этим приходится копировать файл проекта в директории сборки, что не очень правильно, имхо.
Будет добавлен соотвествующий параметр для указания файла проекта.
по мелочам: Бегущие проценты это излишек, т.к. при автоматческой сборке вывод обычно пишется в лог, получается что-то вроде: “Компиляция… 0%Компиляция… 0%Компиляция…”
При выводе в лог, действительно получится “куча” процентов, но в большинстве случаев все-таки пользователь видит сам процесс на экране (без записи в лог) и при большом объеме обрабатываемого кода без признаков жизни со стороны консольной версии пользователь может ошибочно подумать, что программа зависла - поэтому без процентов никак нельзя ) Для режима ведения процесса компиляции в лог можно придумать параметр командной строки для отключения процентов.