Читать «ТЕХНИКА СЕТЕВЫХ АТАК» онлайн - страница 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»
При условии, что скорости перебора у всех алгоритмов идентичны