Стелс-режим

Issues related to VMProtect
Post Reply
00p$
Posts: 27
Joined: Thu May 09, 2019 8:20 am

Стелс-режим

Post by 00p$ »

Просьба реализовать возможность размещать код VMP не в отдельной секции, а внутри заранее выделенного самим программистом места (функция с мусором). Точно так же, как это умеет продукт от oreans.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Стелс-режим

Post by Admin »

Есть одна проблема, связанная с особенностями раскрутки стека при исключениях (насколько я знаю у oreans с этим вообще все плохо). Например для PE x64 (а также актуально для Mach-O и ELF) для каждой функции на уровне формата определен диапазон адресов, где она "лежит", а также есть вся информация об используемом стеке. В текущей версии VMprotect место от старых функций никак не используются и на уровне PE остается информация для раскрутки стека, которая используется при исключениях в завиртуализированных функциях (исполнитель ВМ в своем обработчике исключений "подсовывает" операционке оригинальный PC, который она в дальнейшем использует для раскрутки стека). Если на старое "место" положить код, который связан с другой функцией, то все это благополучно грохнется при первом же исключении.
00p$
Posts: 27
Joined: Thu May 09, 2019 8:20 am

Re: Стелс-режим

Post by 00p$ »

Поддержка исключений - дело хорошее, но далеко не всегда нужное. Есть куча вариантов программ, где не используется SEH или по ненадобности, или по невозможности (мануалмап). И тут гораздо выгоднее смотрится возможность еще сильнее надурачить реверсера, нежели иметь постоянную поддержку сеха там где оно не требуется.
Cyber
Posts: 48
Joined: Mon Feb 08, 2010 3:29 pm

Re: Стелс-режим

Post by Cyber »

Есть куча вариантов программ, где не используется SEH или по ненадобности, или по невозможности
А еще есть куча мест где SEH используется, а Вы даже об этом и не знаете (даже если в Вашем коде его явно нет), так что игнорировать работу этого механизма крайне не желательно и чревато.
Больше скажу в некоторых местах своей программы пришлось подставатся под фичи VMP, чтобы не падало.
00p$
Posts: 27
Joined: Thu May 09, 2019 8:20 am

Re: Стелс-режим

Post by 00p$ »

Cyber wrote:А еще есть куча мест где SEH используется, а Вы даже об этом и не знаете (даже если в Вашем коде его явно нет), так что игнорировать работу этого механизма крайне не желательно и чревато.
Если мозги на месте, можешь проконтролировать создание своего бинарника так, чтоб в нем не было скрытых сюрпризов. Для скрипт-кидди, не знающих что им нужно, можно добавить активный по-умолчанию чекбокс "Полноценная поддержка любых программ" или что-то такое, что блокировало бы опасные фичи. А обрезать из-за этого функционал для всех - бред.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Стелс-режим

Post by Admin »

В версии 3.6 все место из под оригинального кода будет использоваться для размещения нового кода/данных. Для PE64 и для Mach-O/ELF ВМ и код под мутацией в любом случае будет размещаться в отдельном сегменте чтобы на уровне формата не "перекрывались" диапазоны RUNTIME_FUNCTION, что может привести к некорректной раскрутке при обработке исключений.
Post Reply