Обфускация и ее преодоление

         

попытка взлома Armadill'ы


Начнем с того, что с работающей программы практически всегда можно снять дамп, как бы этому не сопротивлялся распаковщик. Методики борьбы с распаковщиками довольно разнообразны и заслуживают отдельной статьи, мы же говорим об обускации, вот и будем говорить не отвлекаясь. Отметим лишь механизм динамической расшифровки CopyMem II, используемый Armadillo, при котором память расшифровывается постранично: Armadillo перехватывает обращение к зашифрованной странице через атрибут NO_ACCESS и механизм структурных исключений, расшифровывает ее, а затем зашифровывает вновь. Тем не менее, вполне реально написать драйвер, отслеживающий возникновение исключений и дампящий страницу после завершения ее расшифровки. Анализировать "запутанный" код протектора для этого совсем необязательно, однако, не все и не всегда бывает так радужно…



Содержание раздела