Читать «ТЕХНИКА СЕТЕВЫХ АТАК» онлайн - страница 295

Крис Касперский

Автор, набравшись наглости, рекомендует свой собственный трехтомник «Образ мышления IDA», посвященный технике дизассемблирования

На сайте разработчика находится бета-версия пригодная для экспериментов, описанных в этой главе

Ну, впрочем не обязательно именно на начало

Адрес 0x401018 указывает на первую команду, следующую инструкцией вызова функции Auth. Разумеется, такой выбор не единичен, и можно передать управление любой другой ветке программы.

Только для Windows 2000

Для упрощения листинга из файла buff.psw читается только один пароль, а имя пользователя игнорируется.

Ну разве что перебором паролей

Жирным шрифтом выделены аргументы функции.

С этими словами одна путаница… вообще-то слово не равно 16 битам, а разрядности процессора.

Относительные смещения отсчитываются от верхушки кадра стека (смотри комментарии к дизассемблированному листингу программы printf.bug.c в строке 0x401003)

Во избежание дублирования код, сравнивающий пароли, отстутствует

Кстати, а как себя поведет эта конструкция, встретившись со строкой нулевой длины?

Некоторые компиляторы умеют адресовать локальные переменные посредством регистра ESP и значение регистра EBP не сохраняют.

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

Не считая того, что далеко не каждая программа выделит в распоряжение злоумышленника сотню байт памяти

Шутка

А доступ к исполняющимся в данный момент файлам заблокирован

Хотя такие приложения есть и самое короткое из них состоит всего из одной команды: ret.

Падает производительность? Ну и пусть себе падает. Все равно разобраться, почему она падает, слишком сложная задача для рядового администратора, который просто-напросто перезапустит систему, когда обнаружит что «чего-то стала тормозить».

При условии, что программа запущена под управлением Windows 2000.

Sing Extend

Например, код вызова cmd.exe, приведенный в дополнении «Использование стека для вызова командного интерпретатора под Windows NT» не работает в тех случаях, когда значение регистра EDX окажется иным.

Например, компиляторы, защиты

Поскольку блокирует дальнейшее выполнение программы, т.е. «вешает» ее.

Именно двадцатый (т.е. 0x14 в шестнадцатеричной системе исчисления) по счету байт строки попадает в старший байт сохраненного адреса возврата

Для экономии места пришлось пойти на некоторые сокращения и опустить незначащие фрагменты. Полный протокол содержится в файле “/LOG/buff.demo.log”

Что, впрочем, маловероятно, поскольку завершающий строку ноль обычно записывается в старший байт адреса возврата, который равен нулю, а все данные, расположенные ниже (т.е. в старших адресах) остаются нетронутыми.

«Ошибка? Это не ошибка, это системная функция!»

Подробнее об этом рассказано в главе «Атака на Windows NT»

При условии, что скорости перебора у всех алгоритмов идентичны