SEOSERVISE - Защита информации.

 
   
 

Главная


 


EAX [ AH / XL ]: Накопительный регистр ( Accumulator ). В основном регистр ЕАХ ис­пользуется при выполнении операций ввода-вывода, арифметических операций и вызове функций ЕВХ [ BH / BL ]: Базовый регистр ( Base ). В нем часто содержится адреса сегмента ЕСХ [ CB / CL ]: Регистр-счетчик ( Count ). Он используется при выполнении циклов и других повторяемых действий EDX [ DH / DL ]: Регистр данных ( Data ). Этот регистр используется при выполнении операций ввода-вывода и арифметических операций. Регистры об­ щего назначения можно использовать по своему усмотрению. Однако при выполнении некоторых операций каждый регистр может играть определенную роль Регистры - указатели и индексные регистры Регистры-указатели являются 16-битовыми и в основном используются при вы­ полнении строковых операций. Существуют три регистра-указателя и два индекс­ ных регистра. Указатель стека Всегда указывает на вершину стека. Более подроб- ная информация о стеке содержится ниже ЕВР Базовый указатель Обычно используется для доступа к переменным стека ESI и EDI Индекс источника и Обычно эти индексные регистры называются индекс назначения строковыми и используются при обработке строк байтов EIP Счетчик команд Определяет следующую инструкцию, которая будет выполнена. Управляя счетчиком команд, можно управлять процессом выполнения программы Стек Это специальная область памяти, используемая для следующих целей: • хранения адресов возврата функций; • хранения значений регистров; • хранения значений переменных. Стек можно представить как набор пластин, сложенных в пирамиду. Удалить или добавить пластину можно только с вершины пирамиды. Процесс удаления пластины называется pop (вытолкнуть), а добавления — push (протолкнуть). Такой стек называ­ется также LIFO ( Last In First Out —"последним пришел — первым обслужен"). При вызове функции значения регистров, параметры функции, переменные и адрес воз­ врата " проталкиваются" ъ стек. Поскольку память, распределяемая под стек, разме­ щается перед адресом возврата, можно достигнуть границ выделенной области, пере­записать значение адреса возврата и передать управление по любому другому адресу. Именно так и можно добиться переполнения буфера. Инструкции языка ассемблера Перед написанием собственной утилиты взлома следует познакомиться с несколь­кими инструкциями языка ассемблера. В табл. 14.1 представлены некоторые инструк­ ции, которые необходимо изучить перед запуском компилятора.

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |