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


Листинг7 "подложный" расшифровщик, внедренный обфускатором


Разумеется, все эти действия вносят побочные эффекты (как минимум воздействуют на флаги) и обфускатору приходится выполнять множество дополнительных проверок, чтобы не убедиться, что эти побочные действия не окажут рокового воздействия на защищаемую программу. Разработка качественного и надежного запутывателя — сложная инженерная задача, но потраченное время стоит того. Бесполезность "инструкций с нулевым эффектом" уже не распознается визуально и обычный трассер тут ничем не поможет. Необходимо трассировать не только поток управления, но и поток данных, то есть отслеживать реальные изменения значений регистров/ячеек памяти. Обычного для этого используется графы, и команда легендарного Володи с не менее легендарного wasm'а вплотную приблизилась к решению этой задачи. Все не так уж и сложно. Как только граф замыкается сам на себя, все "лишние" операции над данными удаляются и остается только суть.

Анализатор "LOCO" (см. рис. 6), созданный тройкой магов по имени Matias Madou, Ludo Van Put и Koen De Bosschere, является практически единственным доступным инструментом, который только есть. К сожалению, для практической работы он все-таки непригоден и больше напоминает игрушку, тем не менее стоящую того, чтобы с ней повозиться. Исходный код (вместе с документацией и кучей интересных статей на тему [де]обфускации) можно бесплатно скачать с официального сайта Diablo (http://www.elis.ugent.be/diablo/?q=obfuscation), однако, работать он будет только под UNIX. Windows-хакеры отдыхают и сосут (лапу).

 




Начало  Назад  Вперед



Книжный магазин