Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК
Здесь есть возможность читать онлайн «Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.
- Название:ТЕХНИКА СЕТЕВЫХ АТАК
- Автор:
- Жанр:
- Год:неизвестен
- ISBN:нет данных
- Рейтинг книги:3 / 5. Голосов: 2
-
Избранное:Добавить в избранное
- Отзывы:
-
Ваша оценка:
- 60
- 1
- 2
- 3
- 4
- 5
ТЕХНИКА СЕТЕВЫХ АТАК: краткое содержание, описание и аннотация
Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «ТЕХНИКА СЕТЕВЫХ АТАК»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.
ТЕХНИКА СЕТЕВЫХ АТАК — читать онлайн бесплатно полную книгу (весь текст) целиком
Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «ТЕХНИКА СЕТЕВЫХ АТАК», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.
Интервал:
Закладка:
Поэтому, несмотря на то, что функции была передана всего лишь одна переменная, она все равно ведет себя так, как будто бы ей передали полный набор аргументов (а что ей еще остается делать?):
· +8 off aXX ( ‘%x %x’) (строка спецификаторов)
· +4 var_4 (‘a’) (аргумент функции printf)
· 0 var_8 (‘ b’) (локальная переменная)
· -4 var_4 (‘a’) (локальная переменная)
Разумеется, в нужном месте стека переменная ‘b’ оказалась по чистой случайности. Но в любом случае - там были бы какие-то данные. Определенным количеством спецификаторов можно просмотреть весь стек - от верхушки до самого низа! Весьма велика вероятность того, что в нем окажется данные, интересные злоумышленнику. Например, пароли на вход в систему.
Теперь становится понятной ошибка, допущенная разработчиком buff.printf.c. Ниже приведен дизассемблированный листинг с подробными пояснениями (на диске, прилагаемом к книге, он находится в файле “/SRC/demo.printf.lst”):
·.text:00401000; --------------- S U B R O U T I N E ---------------------------------------
·.text:00401000
·.text:00401000; Attributes: bp-based frame
·.text:00401000
·.text:00401000 main proc near; CODE XREF: start+AFp
·.text:00401000
·.text:00401000 var_54 = byte ptr -54h
·.text:00401000 var_44 = byte ptr -44h
·.text:00401000 var_34 = byte ptr -34h
·.text:00401000 var_14 = dword ptr -14h
·.text:00401000 var_10 = byte ptr -10h
·.text:00401000
·.text:00401000 push ebp
·.text:00401001 mov ebp, esp
·.text:00401001 ; Открытие кадра стека
·.text:00401003 sub esp, 54h
·.text:00401003 ; Резервируется 0x54 байта для локальных переменных
·.text:00401006 push offset aPrintfBugDemo; "printf bug demo\n"
·.text:00401006 ; Занесение в стек строки “ printf bug demo"
·.text:0040100B call _printf
·.text:0040100B ; Вызов printf(“printf bug demo\n")
·.text:00401010 add esp, 4
·.text:00401010 ; Балансировка стека
·.text:00401013 push offset aR; "r"
·.text:00401013 ; Занесение в стек смещения строки “r”
·.text:00401018 push offset aBuff_psw; "buff.psw"
·.text:00401018; Занесение в стек смещения строки “buff.psw”
·.text:0040101D call _fopen
·.text:0040101D; Вызов fopen(“buff.psw”,”r”);
·.text:00401022 add esp, 8
·.text:00401022; Балансировка стека
·.text:00401025 mov [ebp+var_14], eax
·.text:00401025; Переменная var_14 представляет собой указатель файла psw
·.text:00401028 cmp [ebp+var_14], 0
·.text:00401028; Файл открыт успешно?
·.text:0040102C jnz short loc_0_401033
·.text:0040102C ; Файл открыт успешно! Продолжение выполнения программы
·.text:0040102E jmp loc_0_4010CD
·.text:0040102E ; Файл открыт неуспешно, переход к выходу
·.text:00401033; ---------------------------------------------------------------------------
·.text:00401033
·.text:00401033 loc_0_401033:; CODE XREF: main+2Cj
·.text:00401033 mov eax, [ebp+var_14]
·.text:00401033 ; Занесение в регистр EAX указателя на файловый манипулятор psw
·.text:00401036 push eax
·.text:00401036 ; Заталкивание psw в стек
·.text:00401037 push 8
·.text:00401037 ; Заталкивание в стек константы 8
·.text:00401039 lea ecx, [ebp+var_54]
·.text:00401039 ; Занесение в регистр ECX смещения начала буфера var_54
·.text:0040103C push ecx
·.text:0040103C ; Заталкивание его в стек
·.text:0040103D call _fgets
·.text:0040103D ; Вызов fgets( amp;_pass[0],8,psw)
·.text:0040103D ; Буфер var_54 представляет собой _pass
·.text:00401042 add esp, 0Ch
·.text:00401042 ; Балансировка стека
·.text:00401045 push offset aLogin; "Login:"
·.text:00401045 ; Заталкивание в стек смещения строки “Login:”
·.text:0040104A call _printf
·.text:0040104A ; Вызов printf(“Login:”)
·.text:0040104F add esp, 4
·.text:0040104F ; Балансировка стека
·.text:00401052 push offset off_0_407090
·.text:00401052 ; Заталкивание в стек указателя на манипулятор stdin
·.text:00401057 push 0Ch
·.text:00401057 ; Заталкивание в стек константы 0xC
·.text:00401059 lea edx, [ebp+var_10]
·.text:00401059 ; Занесение в регистр EDX указателя на буфер var_10 (user)
·.text:0040105C push edx
·.text:0040105C ; Заталкивание его в стек
·.text:0040105D call _fgets
·.text:0040105D ; Вызов ( amp;user[0],0xC,stdin)
·.text:00401062 add esp, 0Ch
·.text:00401062 ; Балансировка стека
·.text:00401065 push offset aPassw; "Passw:"
·.text:00401065 ; Заталкивание в стек указателя на строку Passw
·.text:0040106A call _printf
·.text:0040106A ; Вызов printf(“Passw:”)
·.text:0040106F add esp, 4
·.text:0040106F ; Балансировка стека
·.text:00401072 push offset off_0_407090
·.text:00401072 ; Заталкивание в стек указателя на манипулятор stdin
·.text:00401077 push 0Ch
·.text:00401077 ; Заталкивание в стек константы 0xC
·.text:00401079 lea eax, [ebp+var_44]
·.text:00401079 ; Занесение в регистр EAX указателя на буфер var_44 (pass)
·.text:0040107C push eax
·.text:0040107C ; Заталкивание его в стек
·.text:0040107D call _fgets
·.text:0040107D ; fgest( amp;pass[0],0xC,stdin)
·.text:00401082 add esp, 0Ch
·.text:00401082 ; Балансировка стека
·.text:00401085 lea ecx, [ebp+var_54]
·.text:00401085 ; Занесение в регистр ECX указателя на буфер var_54 (_pass)
·.text:00401088 push ecx
·.text:00401088 ; Заталкивание его в стек
·.text:00401089 lea edx, [ebp+var_44]
Читать дальшеИнтервал:
Закладка:
Похожие книги на «ТЕХНИКА СЕТЕВЫХ АТАК»
Представляем Вашему вниманию похожие книги на «ТЕХНИКА СЕТЕВЫХ АТАК» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.
Обсуждение, отзывы о книге «ТЕХНИКА СЕТЕВЫХ АТАК» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.