из функции, возвратив флаг ошибки,
; из функции, возвратив флаг ошибки, чтобы материнская функция
; (а с ней и вся программа целиком) могла продолжить свое выполнение
; и в этом случае потерянной окажется лишь последняя операция, но все
; остальные данные окажутся неискаженными;
0040101f 5f pop edi
00401020 5e pop esi
00401021 c3 ret
; выходим из функции
*----> Обратная трассировка стека <----*
; содержимое стека на момент возникновения сбоя
; распечатывает адреса и параметры предыдущих выполняемых функций,
; при интерактивной отладке мы могли бы просто передать управление
; на одну из вышележащих функций, что эквивалентно возращению в прошлое
; это только в реальной жизни разбитую чашку восстановить нельзя,
; в компьютерной вселенной возможно все!
FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name
; FramePtr: указывает на значение фрейма стека,
; выше (т.е. в более младших адресах) содержатся аргументы функции
; ниже – ее локальные переменные
;
; ReturnAd: бережно хранит адрес возврата в материнскую функцию
; если здесь содержится мусор и обратная трассировка стека[Y87]
; начинает характерно шуметь, с высокой степенью вероятности
; можно предположить, что мы имеем дело с ошибкой "срыва стека"
; а возможно, и с попыткой атаки вашего компьютера
;
; Param#: четыре первых параметра функции – именно столько параметров
; Доктор Ватсон отображает на экране; это достаточно жесткое
; ограничение – многие функции имеют десятки параметров и
; четыре параметра еще ни о чем не говорят; однако недостающие
; параметры легко вытащить из копии необработанного стека вручную
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий