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


Рисунок6 внешний вид анализатора LOCO


Самые извращенные (просите, самые совершенные) обфускаторы выполняют математические преобразования программного кода, а это кранты. В частности, команда "a++" может быть замена на эквивалентную ей конструкцию a += (sin(x)2 + cos(x)2), где sin/cos вычисляются "вручную" посредством самого "тупого" и громоздкого алгоритма, распознать в котором исходную формулу не сможет и академик.

Классические трассеры данных с такой задачей уже не справляются, ведь в этом случае граф не замыкается сам на себя и внесенная обфускатором избыточность не удаляется! Однако, в интерактивном режиме кое-что все-таки можно сделать. Смотрите, на входе мы имеем переменную "a", которая после долгих и загадочных манипуляций, увеличивается на единицу. Если код линеен и инвариантен по отношению к другим данным (то есть не зависит от них), хакер может смело заменить всю эту замутку на "a++". Главное — чтобы исследовательский инструмент обеспечивал удобный, наглядный и непротиворечивый способ визуализации данных. Пока таких инструментов нет, и это — задача будущего! (Ну? У кого чешутся руки? Кто жалуется, что ему не во что вгрызться зубами, что нет задачи достойной его интеллекта? Дерзайте!)




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



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