Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Пиши безопасно

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #057, стр. 057-070-6


Флаг регистрации, расположенный в глобальной переменной, ломается на ура, поскольку к нему ведут перекрестные ссылки, сразу показывающие, какой код обращается к нему и когда. Однако если использовать одну и ту же ячейку памяти для хранения нескольких типов данных сразу, можно сильно усложнить жизнь взломщику.

Допустим, на стадии инициализации некоторая ячейка используется как флаг регистрации, затем флаг регистрации временно копируется в другое место, а сюда помещается флаг, например, ошибок. Один раз за определенный промежуток времени процедура обмена повторяется вновь. Конечно, это упрощенная схема, но общий смысл, думаю, понятен.

Хакер будет видеть множество перекрестных ссылок, ведущих в разные части программы. Проанализировав несколько из них, он быстро найдет флаг ошибок, переименует переменную в f_error и тут же потеряет к ней всякий интерес. А даже если не потеряет, ему будет очень трудно разобраться, в какой момент эта переменная является флагом ошибок, а в какой - флагом регистрации.

Заключение

Рассмотренные приемы, несмотря на свою простоту, служат отличным оружием против хакеров. Конечно, взломать можно все, но так или иначе на это потребуется какое-то время. Именно его всегда недостает хакерам. В первую очередь ломают простые программы. Сложные оставляют на потом. Надеюсь, эта статья поможет тебе сделать так, чтобы твоя программа попала в список сложных.

Назад на стр. 057-070-5  Содержание