Читаем Техника сетевых атак полностью

·.text:0040102E; Удаление двойного слова из стека (для очистки аргумента функции gets)

·.text:00401031 push offset aPassw; "Passw:"

·.text:00401031; Занесение в стек строки «Passw»

·.text:00401036 call _printf

·.text:00401036; Вывод строки “Passw” на экран с помощью функции printf

·.text:0040103B add esp, 4

·.text:0040103B; Удаление двойного слова из стека

·.text:0040103E lea ecx, [ebp+var_18]

·.text:0040103E; В регистр ecx заносится смещение буфера var_18 для последующей передачи его функции gets,

·.text:0040103E; читающей строку с клавиатуры. Следовательно, буфер var_18 содержит пароль

·.text:00401041 push ecx

·.text:00401041 ; Передача аргумента функции gets

·.text:00401042 call _gets

·.text:00401042 ; Чтение пароля в буфер var_18

·.text:00401047 add esp, 4

·.text:00401047 ; Балансировка стека

·.text:0040104A push offset aGuest; "guest"

·.text:0040104A; Занесение в стек смещения строки Guest для сравнения ее с введенным паролем

·.text:0040104F lea edx, [ebp+var_18]

·.text:0040104F; В регистр edx заносится смещение буфера, содержащего введенный пароль

·.text:00401052 push edx

·.text:00401052; Сейчас в верхушке стека содержатся два значения

·.text:00401052; смещение эталонного пароля и смещения буфера, содержащего введенный пароль

·.text:00401053 call _strcmp

·.text:00401053; Вызов функции strcmp( amp;pass[0],”Guest”)

·.text:00401058 add esp, 8

·.text:00401058; Балансировка стека

·.text:0040105B test eax, eax

·.text:0040105B; Значение, возвращаемое функцией помещается в регистр eax

·.text:0040105B; если он равен нулю, то строки идентичны и наоборот

·.text:0040105B; если eax равен нулю, команда test выставляет флаг нуля

·.text:0040105D jnz short loc_0_401066

·.text:0040105D; Если флаг не установлен (пароль не равен “Guest”), переход по адресу 401066

·.text:0040105F mov eax, 1

·.text:0040105F; В регистр eax заносится значение 1, которое будет возвращено при выходе из нее

·.text:00401064 jmp short loc_0_401068

·.text:00401064; Переход по адресу 401068 (к выходу из функции)

·.text:00401066; ---------------------------------------------------------------------------

·.text:00401066

·.text:00401066 loc_0_401066:; CODE XREF: auth+4Bj

·.text:00401066 xor eax, eax

·.text:00401068; Обнулить значение регистра eax

·.text:00401068 loc_0_401068:; CODE XREF: auth+52j

·.text:00401068 mov esp, ebp

·.text:00401068; Восстановить значение регистра esp, который должен указывать на сохраненный в стеке регистр ebp

·.text:0040106A pop ebp

·.text:0040106A; Восстановить ebp

·.text:0040106B retn

·.text:0040106B; Выйти из функции. Команда retn снимает из стека двойное слово, которое при

·.text:0040106B; нормальном развитии событий должно быть равно адресу возврата (в данном примере 00401081

·.text:0040106B; (смотри функцию main)

·.text:0040106B auth endp

·.text:0040106B

·.text:0040106C

·.text:0040106C; --------------- S U B R O U T I N E ---------------------------------------

·.text:0040106C

·.text:0040106C; Attributes: bp-based frame

·.text:0040106C

·.text:0040106C main proc near; CODE XREF: start+AFp

·.text:0040106C push ebp

·.text:0040106C; Занесение в стек значение регистра ebp

·.text:0040106D mov ebp, esp

·.text:0040106D; Открытие кадра стека

·.text:0040106F push offset aBufferOverflow; "Buffer Overflows Demo\n"

·.text:0040106F; Занесение в стек смещения строки “ Buffer Overflows Demo” для вывода ее на экран

·.text:00401074 call _printf

·.text:00401074; Вызов функции printf(“Buffer Overflows Demo\n")

·.text:00401079 add esp, 4

·.text:00401079; Балансировка стека

·.text:0040107C call Auth

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных