Техника защиты компакт-дисков от копирования


           

что два двойных слова, лежащие


Возвращаясь к листингу 3.5, отметим, что два двойных слова, лежащие на верхушке стека, соответствуют машинным командам POP EDI и POP ESI, а следующий за ними адрес –— 4012FFh –— это тот самый адрес, управление которому передается командой 40136Fh:RET 8. Для продолжения раскрутки стека мы должны дизассемблировать код по этому адресу (листинг 3.1:0).

Листинг 3.10. Дизассемблерный листинг праматеринской функции ("бабушки")

004012FA             call           00401350

004012FF             cmp            eax,0FFh

00401302             je       0040132D

00401304             push           eax

00401305             lea             eax,[esp+8]

00401309             push           405054h

0040130E             push           eax

0040130F             call           dword ptr ds:[4033B4h]

00401315             add             esp,0Ch

00401318             lea             ecx,[esp+4]

0040131C             push           0

0040131E             push           0

00401320             push           ecx

00401321             mov             ecx,esi

00401323             call           00401BC4

00401328             pop             esi

00401329             add             esp,64h        

0040132C             ret                                     ; SS:[ESP] = 6C2923D8

Листинг 10 дизассемблерный листинг праматеринской функции ("бабушки")

Прокручивая экран вниз, мы замечаем инструкцию ADD  ESP, 64, закрывающую текущий кадр стека. Еще восемь байт снимает инструкция 40136Fh:RET 8 и четыре байта оттягивает на себя 401328:POP ESI. Таким образом, позиция адреса возврата в стеке равна: current_ESP + 64h + 8 + 4 == 70h. Спускаемся на 70h байт ниже и видим адрес возврата из праматеринской функции (листинг3.11).:

Листинг 3.12. Адрес возврата из праматеринской функции

0012F500  77E61D49  6C2923D8  00403458 ß

00401328:POP ESI/ret;


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий