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

Нажмите для полного просмотра!
Основы языка ассемблера, слайд №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) 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)...
Описание слайда:
Регистры процессора Регистры общего назначения (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 – сегмент стека Дополнительные...
Описание слайда:
Сегментные регистры 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 Результат -...
Описание слайда:
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)

Слайд 29


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

Слайд 30


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

Слайд 31


Способы адресации [1] Регистровая адресация mov ax, bx Непосредственная адресация mov ax, 2 Прямая адресация mov ax, es:0001 mov ax, ds:word_var (ds...
Описание слайда:
Способы адресации [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,...
Описание слайда:
Способы адресации [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 – переключаемый порядок...
Описание слайда:
Порядок байт 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....
Описание слайда:
Команды пересылки 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 однобайтовая ячейка...
Описание слайда:
Арифметические команды 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....
Описание слайда:
Логические команды и команды сдвига 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; возврат из подпрограммы к оператору следующему непосредственно...
Описание слайда:
Команды передачи управления 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 (размер инструкции) =...
Описание слайда:
Пример 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 then else mov eax, A cmp eax, B jne then mov C, 5 jmp end then: mov C, 3 end:
Описание слайда:
Управляющие структуры: IF-ELSE if then else 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...
Описание слайда:
Стековый кадр Вызов функции 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 создается функцией...
Описание слайда:
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]...
Описание слайда:
Thread Environment Block (TEB) [TEB+0] Указатель на первый SEH на стэке. [TEB+4] Указатель на конец области памяти, выделенных на стеке. [TEB+8] Указатель на начало области памяти выделенных на стеке, для контроля исключений переполнения стека. [TEB+18] Адрес текущей TEB. [TEB+30] Адрес PEB.

Слайд 69


PEB PEB содержит все параметры пользовательского процесса: местоположение главной выполняемой программы указатель/загрузчик данных (может...
Описание слайда:
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
Загрузить презентацию