После того как приложение обфусцировано, его изучение уже не представляется легкой задачей, но все же возможно. Особенно если интересует не все приложение, а отдельные специфичные методы. Для того чтобы убрать возможность анализировать код, в процессе защиты осуществляется перенос MSIL-кода методов защищаемого приложения в защищенный Native-контейнер.

В теле защищенных методов размещается функция-заглушка (stub()), которая инициирует процесс выполнения MSIL-кода по требованию, посредством вызова виртуальной машины (VM). Шифрование тела методов происходит с использованием электронного ключа. Код метода хранится в защищенном хранилище и расшифровывается непосредственно перед его исполнением. Во время работы приложения VM осуществляет динамическую загрузку необходимого метода и выгрузку давно не используемых методов, чтобы не допустить момента, когда все методы загружены.

 

 

  • No labels