🗊Презентация Основы языка ассемблера

Нажмите для полного просмотра!
Основы языка ассемблера, слайд №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

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы языка ассемблера. Доклад-сообщение содержит 74 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Основы языка ассемблера
Описание слайда:
Основы языка ассемблера

Слайд 2





План лекции
Устройство компьютера
Устройство процессора
Режимы работы процессора
Регистры процессора
Языки ассемблера
Формат команд (инструкций)
Команды ассемблера
Процесс создания программы
Адресное пространство процесса
 Системные структуры и механизмы
Описание слайда:
План лекции Устройство компьютера Устройство процессора Режимы работы процессора Регистры процессора Языки ассемблера Формат команд (инструкций) Команды ассемблера Процесс создания программы Адресное пространство процесса Системные структуры и механизмы

Слайд 3





Основные понятия
Ассемблер – транслятор исходного кода программы, на языке ассемблера в машинный код
Дизассемблер
Машинный код
Машинное слово
Описание слайда:
Основные понятия Ассемблер – транслятор исходного кода программы, на языке ассемблера в машинный код Дизассемблер Машинный код Машинное слово

Слайд 4





Фон-неймановская архитектура
Принцип однородности памяти 
Принцип адресности 
Принцип программного управления 
Принцип двоичного кодирования 
Описание слайда:
Фон-неймановская архитектура Принцип однородности памяти  Принцип адресности  Принцип программного управления  Принцип двоичного кодирования 

Слайд 5





Архитектура компьютера
ЦПУ
Оперативная память (ОЗУ)
Северный мост
Южный мост
BIOS (ППЗУ)
Периферийные устройства
Системная шина 
(адреса, данных, управления)
Описание слайда:
Архитектура компьютера ЦПУ Оперативная память (ОЗУ) Северный мост Южный мост BIOS (ППЗУ) Периферийные устройства Системная шина (адреса, данных, управления)

Слайд 6





Устройство персонального компьютера
Описание слайда:
Устройство персонального компьютера

Слайд 7





Процессор
Регистры
АЛУ
RSB
Кэш-память (кода и данных)
TLB
L1, L2, L3
Описание слайда:
Процессор Регистры АЛУ RSB Кэш-память (кода и данных) TLB L1, L2, L3

Слайд 8





Материнская плата
Описание слайда:
Материнская плата

Слайд 9





Режимы работы процессора
Реальный режим (real mode)
Защищенный режим (protected mode)
Режим виртуального 8086
Режим системного управления (SMM)
Описание слайда:
Режимы работы процессора Реальный режим (real mode) Защищенный режим (protected mode) Режим виртуального 8086 Режим системного управления (SMM)

Слайд 10





Кольца защиты (Ring)
Ring -2 (Режим системного управления, System Management Mode)
Ring -1 (режим гипервизора, Hypervisor mode)
Ring 0 (режим ядра, супервизора – ring mode, supervisor mode)
Ring 1
Ring 2
Ring 3 
(режим пользователя,
 user mode)
Описание слайда:
Кольца защиты (Ring) Ring -2 (Режим системного управления, System Management Mode) Ring -1 (режим гипервизора, Hypervisor mode) Ring 0 (режим ядра, супервизора – ring mode, supervisor mode) Ring 1 Ring 2 Ring 3 (режим пользователя, user mode)

Слайд 11





Реальный режим
Физические адреса от 0 до 1 Мб
Макс размер сегмента 64 Кб (16 разр)
Использование сегментной адресации
Описание слайда:
Реальный режим Физические адреса от 0 до 1 Мб Макс размер сегмента 64 Кб (16 разр) Использование сегментной адресации

Слайд 12





Типы данных
Двоичные числа
Двоично-десятичные числа
Неупакованный BCD-формат
Упакованный BCD-формат
Числа с плавающей точкой
Символьный тип
Описание слайда:
Типы данных Двоичные числа Двоично-десятичные числа Неупакованный BCD-формат Упакованный BCD-формат Числа с плавающей точкой Символьный тип

Слайд 13





Регистры процессора
Регистры общего назначения (EAX, EBX, ECX, EDX)
Адресные регистры (ESI, EDI, EBP)
Управляющие регистры (ESP, EIP, EFLAGS)
Сегментные регистры (CS, DS, SS, ES, GS, FS)
Регистры управления памятью (GDTR, LDTR, IDTR)
Регистры управления (CR0-CR4)
Отладочные регистры (DR0-DR7)
Машинно-зависимые регистры (MSR)
Описание слайда:
Регистры процессора Регистры общего назначения (EAX, EBX, ECX, EDX) Адресные регистры (ESI, EDI, EBP) Управляющие регистры (ESP, EIP, EFLAGS) Сегментные регистры (CS, DS, SS, ES, GS, FS) Регистры управления памятью (GDTR, LDTR, IDTR) Регистры управления (CR0-CR4) Отладочные регистры (DR0-DR7) Машинно-зависимые регистры (MSR)

Слайд 14





Регистры общего назначения
Описание слайда:
Регистры общего назначения

Слайд 15





Адресные регистры
ESI – индекса источника
EDI - регистр индекса результата
EBP - регистр указатель стековой базы
Описание слайда:
Адресные регистры ESI – индекса источника EDI - регистр индекса результата EBP - регистр указатель стековой базы

Слайд 16





Регистры состояния
ESP - Указатель на вершину стека
EIP - Cчетчик команд
EFLAGS - Регистр флагов
Описание слайда:
Регистры состояния ESP - Указатель на вершину стека EIP - Cчетчик команд EFLAGS - Регистр флагов

Слайд 17





Регистры управления
CR0
CR1
CR2
CR3
CR4
Описание слайда:
Регистры управления CR0 CR1 CR2 CR3 CR4

Слайд 18





Регистр EFLAGS / FLAGS
Описание слайда:
Регистр EFLAGS / FLAGS

Слайд 19





Сегментные регистры
16-битные регистры для хранения селекторов сегмента
CS – сегмент кода
DS – сегмент данных
SS – сегмент стека
Дополнительные сегменты:
ES
GS
FS
Описание слайда:
Сегментные регистры 16-битные регистры для хранения селекторов сегмента CS – сегмент кода DS – сегмент данных SS – сегмент стека Дополнительные сегменты: ES GS FS

Слайд 20





Системные регистры
GDTR
LDTR
IDTR
TR
Описание слайда:
Системные регистры GDTR LDTR IDTR TR

Слайд 21





Регистры x64
Описание слайда:
Регистры x64

Слайд 22





Порты ввода/вывода (I/O Ports)
Используются для взаимодействия с утройствами
IN eax, port_num (DX) – чтение из порта
OUT port_num(DX), eax- запись в порт
Описание слайда:
Порты ввода/вывода (I/O Ports) Используются для взаимодействия с утройствами IN eax, port_num (DX) – чтение из порта OUT port_num(DX), eax- запись в порт

Слайд 23





MSR–регистры 
(Model-Specific Registers)
Зависят от модели процессора
Вызываются только из режима ядра
RDMSR – чтение, ECX –номер MSR
Результат - EDX:EAX
WRMSR
Примеры:
RDTSC – читает MSR-регистр IA32_TIME_STAMP_COUNTER (0x10)
SYSENTER/SYSEXIT, SYSCALL/SYSRET
Описание слайда:
MSR–регистры (Model-Specific Registers) Зависят от модели процессора Вызываются только из режима ядра RDMSR – чтение, ECX –номер MSR Результат - EDX:EAX WRMSR Примеры: RDTSC – читает MSR-регистр IA32_TIME_STAMP_COUNTER (0x10) SYSENTER/SYSEXIT, SYSCALL/SYSRET

Слайд 24





Расширения инструкций процессора
Работа с аудио- и видео-данными
FPU / NPX
MMX
MMX Extended
3dNow!
3dNow! Extended
SSE
SSE2
SSE3
SSSE3
SSE4
AVX
Описание слайда:
Расширения инструкций процессора Работа с аудио- и видео-данными FPU / NPX MMX MMX Extended 3dNow! 3dNow! Extended SSE SSE2 SSE3 SSSE3 SSE4 AVX

Слайд 25





Стек
ESP – хранит адрес вершины стека
EBP – хранит адрес начала стекового фрейма
SS –  регистр, хранит селектор стека
Стек – растет от старших адресов к младшим
Описание слайда:
Стек ESP – хранит адрес вершины стека EBP – хранит адрес начала стекового фрейма SS – регистр, хранит селектор стека Стек – растет от старших адресов к младшим

Слайд 26





Языки ассемблера
Команды языка соответствуют инструкциям процессора
Синтаксисы:
Intel
AT&T
Ассемблеры:
MASM
NASM
FASM
TASM
GAS
Описание слайда:
Языки ассемблера Команды языка соответствуют инструкциям процессора Синтаксисы: Intel AT&T Ассемблеры: MASM NASM FASM TASM GAS

Слайд 27





Типы команд
Арифметические
Логические
Передачи данных
Перехода
Пропуска
Вызова подпрограммы
Возврата из подпрограммы
Смешанные
Описание слайда:
Типы команд Арифметические Логические Передачи данных Перехода Пропуска Вызова подпрограммы Возврата из подпрограммы Смешанные

Слайд 28





Формат команды
Поле префиксов
Замена сегмента
Изменение размерности адреса
Изменение размерности операнда
Необходимость повторения команды
Поле кода операции
Поле операндов (от 0 до 2)
Описание слайда:
Формат команды Поле префиксов Замена сегмента Изменение размерности адреса Изменение размерности операнда Необходимость повторения команды Поле кода операции Поле операндов (от 0 до 2)

Слайд 29





Пример
Префикс
Команда
Операнды
Описание слайда:
Пример Префикс Команда Операнды

Слайд 30





Типы операндов
Байт
Слово
Десятичный операнд
Разряд
Число
Составной операнд
Описание слайда:
Типы операндов Байт Слово Десятичный операнд Разряд Число Составной операнд

Слайд 31





Способы адресации [1]
Регистровая адресация
mov ax, bx
Непосредственная адресация
mov ax, 2
Прямая адресация
mov ax, es:0001
mov ax, ds:word_var (ds – по умолчанию)
Косвенная адресация
mov ax, [bx]
Адресация по базе со сдвигом
mov ax, [bx+2]
mov eax, [ebp]+2   / mov eax, 2[ebp]
Описание слайда:
Способы адресации [1] Регистровая адресация mov ax, bx Непосредственная адресация mov ax, 2 Прямая адресация mov ax, es:0001 mov ax, ds:word_var (ds – по умолчанию) Косвенная адресация mov ax, [bx] Адресация по базе со сдвигом mov ax, [bx+2] mov eax, [ebp]+2 / mov eax, 2[ebp]

Слайд 32





Способы адресации [2]
Косвенная адресация с масштабированием 
mov eax, [esi*3]+2
Адресация по базе с индексированием
mov ax, [bx+si+2]
mov ax, [bx][si]+2
Адресация по базе с индексированием и масштабированием
mov edx, es:[eax+ecx*2+4]
Описание слайда:
Способы адресации [2] Косвенная адресация с масштабированием mov eax, [esi*3]+2 Адресация по базе с индексированием mov ax, [bx+si+2] mov ax, [bx][si]+2 Адресация по базе с индексированием и масштабированием mov edx, es:[eax+ecx*2+4]

Слайд 33





Порядок байт
big-endian, от старшего к младшему (SPARC, TCP/IP)
little-endian, от младшего к старшему (x86)
bi-endian – переключаемый порядок
middle-endian – смешанный порядок
Описание слайда:
Порядок байт big-endian, от старшего к младшему (SPARC, TCP/IP) little-endian, от младшего к старшему (x86) bi-endian – переключаемый порядок middle-endian – смешанный порядок

Слайд 34





Формат хранения переменных
Описание слайда:
Формат хранения переменных

Слайд 35





ASCII
Описание слайда:
ASCII

Слайд 36





Команды пересылки
1. MOV DST,SRC; переслать (SRC) в (DST). 
2. PUSH RP; поместить на вершину стека содержимое пары регистров RP (например push bx).
3. POP RP; снять с вершины стека два байта и поместить в пару RP (например pop ax). 
4. XCHG DST, SRC; поменять местами содержимое (DST) и (SRC). Оба операнда не могут быть одновременно содержимым ячеек памяти. 
5. XLAT SRC; извлечь из таблицы с начальным адресом SRC байт данных имеющий номер от начала таблицы = (AL), и поместить его в AL. Адрес SRC должен находиться в регистре BX. Другой вариант: XLATB.
6. LEA RP,M; загрузить в регистр RP эффективный адрес (смещение) ячейки памяти с символическим адресом M.
Описание слайда:
Команды пересылки 1. MOV DST,SRC; переслать (SRC) в (DST). 2. PUSH RP; поместить на вершину стека содержимое пары регистров RP (например push bx). 3. POP RP; снять с вершины стека два байта и поместить в пару RP (например pop ax). 4. XCHG DST, SRC; поменять местами содержимое (DST) и (SRC). Оба операнда не могут быть одновременно содержимым ячеек памяти. 5. XLAT SRC; извлечь из таблицы с начальным адресом SRC байт данных имеющий номер от начала таблицы = (AL), и поместить его в AL. Адрес SRC должен находиться в регистре BX. Другой вариант: XLATB. 6. LEA RP,M; загрузить в регистр RP эффективный адрес (смещение) ячейки памяти с символическим адресом M.

Слайд 37





Арифметические команды
1. ADD DST, SRC; сложить содержимое SRC и DST и результат переслать в DST. 
add al, [mem_byte]; mem_byte однобайтовая ячейка памяти 
add [mem_word], dx; mem_word двухбайтовая ячейка памяти
add ch,10001010b;
2. INC DST; увеличить (DST) на 1 (инкремент (DST)). 
3. SUB DST, SRC; вычесть (SRC) из (DST) и результат поместить в DST. 
4. DEC DST; декремент (DST). 
5. CMP DST, SRC; сравнить содержимое DST и SRC. Эта команда выполняет вычитание (SRC) из (DST) но разность не помещает в DST и по результату операции воздействует на флаги.
Описание слайда:
Арифметические команды 1. ADD DST, SRC; сложить содержимое SRC и DST и результат переслать в DST. add al, [mem_byte]; mem_byte однобайтовая ячейка памяти add [mem_word], dx; mem_word двухбайтовая ячейка памяти add ch,10001010b; 2. INC DST; увеличить (DST) на 1 (инкремент (DST)). 3. SUB DST, SRC; вычесть (SRC) из (DST) и результат поместить в DST. 4. DEC DST; декремент (DST). 5. CMP DST, SRC; сравнить содержимое DST и SRC. Эта команда выполняет вычитание (SRC) из (DST) но разность не помещает в DST и по результату операции воздействует на флаги.

Слайд 38





Логические команды и команды сдвига
1. AND DST, SRC; поразрядное логическое "И". 
2. OR DST, SRC; поразрядное логическое "ИЛИ". 
4. NOT DST; инверсия всех битов приемника. 
5. TEST DST, SRC; выполняет операцию AND над операндами, но воздействует только на флаги и не изменяет самих операндов. 
6. SHR DST, CNT; логический сдвиг вправо, освобождающиеся слева биты заполняются нулем, крайний правый бит выталкивается во флаг CF. Операнд DST может быть ячейкой 
7. SHL DST, CNT; логический сдвиг влево. 
8. RLC DST, CNT; циклический сдвиг влево через перенос
9. RRC DST, CNT;циклический сдвиг вправо через перенос
10. ROR DST, CNT;циклический сдвиг влево
11. ROL DST, CNT;циклический сдвиг вправо
Описание слайда:
Логические команды и команды сдвига 1. AND DST, SRC; поразрядное логическое "И". 2. OR DST, SRC; поразрядное логическое "ИЛИ". 4. NOT DST; инверсия всех битов приемника. 5. TEST DST, SRC; выполняет операцию AND над операндами, но воздействует только на флаги и не изменяет самих операндов. 6. SHR DST, CNT; логический сдвиг вправо, освобождающиеся слева биты заполняются нулем, крайний правый бит выталкивается во флаг CF. Операнд DST может быть ячейкой 7. SHL DST, CNT; логический сдвиг влево. 8. RLC DST, CNT; циклический сдвиг влево через перенос 9. RRC DST, CNT;циклический сдвиг вправо через перенос 10. ROR DST, CNT;циклический сдвиг влево 11. ROL DST, CNT;циклический сдвиг вправо

Слайд 39





Использование сдвигов
Умножение 
Деление
Работа с 64 переменными
Описание слайда:
Использование сдвигов Умножение Деление Работа с 64 переменными

Слайд 40





Команды передачи управления
1. CALL SUBR; вызов подпрограммы с адресом SUBR; 
2. RET; возврат из подпрограммы к оператору следующему непосредственно за CALL, то есть в приведенном выше примере к MOV .. 
3. JMP NAME; безусловный переход к команде с символическим адресом NAME. 
4. JA NAME или JNBE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине больше источника, то перейти к метке name. 
5. JB NAME или JNAE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине меньше источника, то перейти к метке name (команды п4 и п5 выполняются по результатам выполнения операций над беззнаковыми числами).
6. JZ NAME или JE NAME; перейти, если результат операции влияющей на флаг нуля - нулевой (переход по "нулю"). 
7. JNZ NAME или JNE NAME; переход по "не нулю". (команды п6 и п7 выполняются по результатам выполнения операций над числами cо знаком).
Описание слайда:
Команды передачи управления 1. CALL SUBR; вызов подпрограммы с адресом SUBR; 2. RET; возврат из подпрограммы к оператору следующему непосредственно за CALL, то есть в приведенном выше примере к MOV .. 3. JMP NAME; безусловный переход к команде с символическим адресом NAME. 4. JA NAME или JNBE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине больше источника, то перейти к метке name. 5. JB NAME или JNAE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине меньше источника, то перейти к метке name (команды п4 и п5 выполняются по результатам выполнения операций над беззнаковыми числами). 6. JZ NAME или JE NAME; перейти, если результат операции влияющей на флаг нуля - нулевой (переход по "нулю"). 7. JNZ NAME или JNE NAME; переход по "не нулю". (команды п6 и п7 выполняются по результатам выполнения операций над числами cо знаком).

Слайд 41





2.6 Instruction types
Data transfer instructions
Описание слайда:
2.6 Instruction types Data transfer instructions

Слайд 42





2.6 Instruction types
Arithmetic instructions
Описание слайда:
2.6 Instruction types Arithmetic instructions

Слайд 43





2.6 Instruction types
Bit manipulation instructions
Описание слайда:
2.6 Instruction types Bit manipulation instructions

Слайд 44





2.6 Instruction types
String instructions
Описание слайда:
2.6 Instruction types String instructions

Слайд 45





Основные команды
CALL / RET
JMP
PUSH / POP
JE / JNE
XOR
MOV
CMP
NOP
Описание слайда:
Основные команды CALL / RET JMP PUSH / POP JE / JNE XOR MOV CMP NOP

Слайд 46





Команды условного перехода
Описание слайда:
Команды условного перехода

Слайд 47





Безусловный переход (JMP)
Описание слайда:
Безусловный переход (JMP)

Слайд 48





NOP
No OPeration
0x90
Описание слайда:
NOP No OPeration 0x90

Слайд 49





Пример
E8 – опкод call
8E FE FF FF – аргумент, little-endian 
ff ff fe 8e = -0x172 (-370)
check_pass = 0x40126D – 0x172 + 5 (размер инструкции) = 0x401100
Описание слайда:
Пример E8 – опкод call 8E FE FF FF – аргумент, little-endian ff ff fe 8e = -0x172 (-370) check_pass = 0x40126D – 0x172 + 5 (размер инструкции) = 0x401100

Слайд 50





Опкоды инструкций
Принцип построения
Описание слайда:
Опкоды инструкций Принцип построения

Слайд 51





Основные инструкции
Описание слайда:
Основные инструкции

Слайд 52





Управляющие структуры: IF-ELSE
if <A!=B> then <C=3> else <C=5>
mov eax, A 
cmp eax, B
jne then
mov C, 5
 jmp end
then:
mov C, 3
end:
Описание слайда:
Управляющие структуры: IF-ELSE if <A!=B> then <C=3> else <C=5> mov eax, A cmp eax, B jne then mov C, 5 jmp end then: mov C, 3 end:

Слайд 53





Управляющие структуры:switch-case
Описание слайда:
Управляющие структуры:switch-case

Слайд 54





Передача параметров: механизм
По значению
По ссылке
По возвращаемому значению
По результату
По имени
Отложенным вычислением
Описание слайда:
Передача параметров: механизм По значению По ссылке По возвращаемому значению По результату По имени Отложенным вычислением

Слайд 55





Передача параметров: место хранения
В регистрах
В глобальных переменных
В стеке
В потоке кода
В блоке параметров
Описание слайда:
Передача параметров: место хранения В регистрах В глобальных переменных В стеке В потоке кода В блоке параметров

Слайд 56





Структура исполняемого файла
Секции:
Кода
Данных
Стека
Кучи
Неинициализированных переменных (bss)
Описание слайда:
Структура исполняемого файла Секции: Кода Данных Стека Кучи Неинициализированных переменных (bss)

Слайд 57





Процесс компиляции
Описание слайда:
Процесс компиляции

Слайд 58





Средства отладки
Linux: ktrace, gdb, ddd, readelf, nm
Описание слайда:
Средства отладки Linux: ktrace, gdb, ddd, readelf, nm

Слайд 59





Средства разработки
GCC \ CL
VS
Описание слайда:
Средства разработки GCC \ CL VS

Слайд 60





Адресное пространство процесса: Windows
Описание слайда:
Адресное пространство процесса: Windows

Слайд 61





Адресное пространство процесса: Linux
Описание слайда:
Адресное пространство процесса: Linux

Слайд 62





Структура стека
Описание слайда:
Структура стека

Слайд 63





Стековый кадр
Вызов функции
call = { “push eip”, jmp func }
ret = { “pop eip”, “jmp eip” }
Пролог функции
push ebp
mov ebp, esp
Эпилог функции
mov esp, ebp
pop ebp
enter / leave
Описание слайда:
Стековый кадр Вызов функции call = { “push eip”, jmp func } ret = { “pop eip”, “jmp eip” } Пролог функции push ebp mov ebp, esp Эпилог функции mov esp, ebp pop ebp enter / leave

Слайд 64





Стековый кадр
Описание слайда:
Стековый кадр

Слайд 65





Стековый кадр: пример
Описание слайда:
Стековый кадр: пример

Слайд 66





Соглашения о вызове
(calling convention)
Описание слайда:
Соглашения о вызове (calling convention)

Слайд 67





Thread Environment Block (TEB)
Wow64 процессы в Windows имеют два PEB и два TEB. TEB создается функцией MmCreateTeb, PEB создается функцией MmCreatePeb
TEB — структура которая используется для хранения информации о потоках в текущем процессе, каждый поток имеет свой TEB.
Описание слайда:
Thread Environment Block (TEB) Wow64 процессы в Windows имеют два PEB и два TEB. TEB создается функцией MmCreateTeb, PEB создается функцией MmCreatePeb TEB — структура которая используется для хранения информации о потоках в текущем процессе, каждый поток имеет свой TEB.

Слайд 68





Thread Environment Block (TEB)
[TEB+0] Указатель на первый SEH на стэке. 
[TEB+4] Указатель на конец области памяти, выделенных на стеке. 
[TEB+8] Указатель на начало области памяти выделенных на стеке, для контроля исключений переполнения стека. 
[TEB+18] Адрес текущей TEB. 
[TEB+30] Адрес PEB.
Описание слайда:
Thread Environment Block (TEB) [TEB+0] Указатель на первый SEH на стэке. [TEB+4] Указатель на конец области памяти, выделенных на стеке. [TEB+8] Указатель на начало области памяти выделенных на стеке, для контроля исключений переполнения стека. [TEB+18] Адрес текущей TEB. [TEB+30] Адрес PEB.

Слайд 69





PEB
PEB содержит все параметры пользовательского процесса:
местоположение главной выполняемой программы
указатель/загрузчик данных (может использоваться, для перечисления всех dll/модулей, которые были/могут быть загруженными в процесс)
указатель на информацию о динамической памяти (heap - куче)
Описание слайда:
PEB PEB содержит все параметры пользовательского процесса: местоположение главной выполняемой программы указатель/загрузчик данных (может использоваться, для перечисления всех dll/модулей, которые были/могут быть загруженными в процесс) указатель на информацию о динамической памяти (heap - куче)

Слайд 70





PEB
Находится в TIB[0x30], fs:[0x30]
Описание слайда:
PEB Находится в TIB[0x30], fs:[0x30]

Слайд 71


Основы языка ассемблера, слайд №71
Описание слайда:

Слайд 72





Системные таблицы
SSDT
IDT
LDT
Описание слайда:
Системные таблицы SSDT IDT LDT

Слайд 73





Системные вызовы
INT 2e
SYSENTER/SYSEXIT, SYSCALL/SYSRET
ntdll_KiFastSystemCall
Номер в таблице SSDT
CreateFile->NtCreateFile->ZwCreateFile
Описание слайда:
Системные вызовы INT 2e SYSENTER/SYSEXIT, SYSCALL/SYSRET ntdll_KiFastSystemCall Номер в таблице SSDT CreateFile->NtCreateFile->ZwCreateFile

Слайд 74





Литература
Зубков С.В. Assembler для DOS, Windows и Unix
Касперски К., Рокко Е. Искусство дизассемблирования
Юричев Д. Reverse Engineering для начинающих
Описание слайда:
Литература Зубков С.В. Assembler для DOS, Windows и Unix Касперски К., Рокко Е. Искусство дизассемблирования Юричев Д. Reverse Engineering для начинающих



Похожие презентации
Mypresentation.ru
Загрузить презентацию