VMProtect и протекторы/упаковщики
VMProtect и протекторы/упаковщики
Добрый день.
Думаю, что защиты никогда не бывает мало
Поэтому решил попробовать защитить свою программу (х32) с помощью VMProtect и Armadillo.
Т.е. обрабатываю сначала в VMProtect, затем в Armadillo
Столкнулся сразу с проблемами. Включение/выключение трех режимов защиты кода в Арме приводит к разным результатам:
- Strategic Code Splicing - при включении параметра защищаемая программа вылетает, но видно что при старте отрабатывает код, не обработанный VMProtect
- Import Table Elimination - при включении параметра защищаемая программа не работает - сразу вылетает.
- Memory Patching Protection - при включении параметра защищаемая программа нормально работает.
В принципе, если не использовать первые два указанные мною параметра, то программа, защищенная VMProtect + Armadillo нормально работает.
Кто нибудь сталкивался с подобными проблемами?
Может есть какие то рекомендации по настройкам Армадиллы?
Или у кого нить есть опыт использования других протекторов?
Надеюсь на обмен опытом в данном вопросе
Думаю, что защиты никогда не бывает мало
Поэтому решил попробовать защитить свою программу (х32) с помощью VMProtect и Armadillo.
Т.е. обрабатываю сначала в VMProtect, затем в Armadillo
Столкнулся сразу с проблемами. Включение/выключение трех режимов защиты кода в Арме приводит к разным результатам:
- Strategic Code Splicing - при включении параметра защищаемая программа вылетает, но видно что при старте отрабатывает код, не обработанный VMProtect
- Import Table Elimination - при включении параметра защищаемая программа не работает - сразу вылетает.
- Memory Patching Protection - при включении параметра защищаемая программа нормально работает.
В принципе, если не использовать первые два указанные мною параметра, то программа, защищенная VMProtect + Armadillo нормально работает.
Кто нибудь сталкивался с подобными проблемами?
Может есть какие то рекомендации по настройкам Армадиллы?
Или у кого нить есть опыт использования других протекторов?
Надеюсь на обмен опытом в данном вопросе
При включении данной опции Armadillo ищет все ссылки на IAT и по всем найденным местам изменяет указатели на "новую" IAT, которая находится в другом месте. Соотвественно Armadillo не может найти и "исправить" все ссылки на IAT из p-code ВМ и поэтому в p-code остаются указатели на "старую" IAT вследствии чего программа при выполнении такого кода будет вылетать. Поэтому рекомендуется отключать данную опцию при обработке Armadillo после VMProtect.- Import Table Elimination - при включении параметра защищаемая программа не работает - сразу вылетает.
Также в Armadillo есть возможность отмечать блоки кода как SecureSection. В данном случае нужно учитывать следующую особенность VMProtect-а: место из под защищенных участков кода VMProtect использует под хранение блоков кода от разных процедур и исполнителя ВМ и если вы при работе в VMProtect в список обрабатываемых процедур включите процедуры с "типом" SecureSection и NonSecureSection, то на месте SecureSection у вас могут присутсвовать участки от NonSecureSection и наоборот и в результате такого "винегрета" программа скорее всего работать не будет. При применении SecureSection рекомендуется использовать VMProtect в 2 этапа - сначала обрабатывать только процедуры помеченнные SecureSection и на втором этапе все остальные.
Если использовать ASProtect только в качестве системы лицензирования, то я вижу следующий алгоритм работы:
1. Накрываете программу ASProtect (с полностью отключенными "Protection Options" + "Compression Option"="Without Compression")
2. Сверху накрываете VMProtect с любыми опциями на выбор (также можно накрыть любой код в самой программе, там где не используются макросы "encrypted sections").
1. Накрываете программу ASProtect (с полностью отключенными "Protection Options" + "Compression Option"="Without Compression")
2. Сверху накрываете VMProtect с любыми опциями на выбор (также можно накрыть любой код в самой программе, там где не используются макросы "encrypted sections").
С версии 1.8 мы не рекоменудем использовать пакеры/протекторы после защиты файла с помощью VMProtect, т.к. большинство инструментов не поддерживают некоторые особенности реализации PE формата и как следствие после их использования упакованные файлы перестают нормально функционировать.
Для упаковки мы рекомендуем использовать встроенный упаковщик, для использования которого на закладке "Опции" достаточно включить опцию "Упаковать выходной файл". В версии 1.81 появится новый режим упаковки с более высокой степенью сжатия.
Для упаковки мы рекомендуем использовать встроенный упаковщик, для использования которого на закладке "Опции" достаточно включить опцию "Упаковать выходной файл". В версии 1.81 появится новый режим упаковки с более высокой степенью сжатия.