Частина 4: Вступ до асемблера x86

Щоб переглянути повний зміст усіх уроків, натисніть на посилання нижче, де ви знайдете короткий опис кожного уроку та теми, які в ньому розглядаються. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial

Пані та панове, хлопці та дівчата, діти різного віку! Ми збираємося вирушити в подорож, яка назавжди змінить ваше життя!

Щоб добре зрозуміти мову асемблера та важливість розуміння її основ, необхідно опрацювати великий обсяг матеріалу.

Перше питання, на яке ми повинні відповісти, — що таке асемблер x86? Відповідь — це сімейство асемблерів, сумісних із попередніми версіями, які забезпечують сумісність із мікропроцесорами серії Intel 8000. Асемблери x86 використовуються для створення об'єктного коду для вищезгаданої серії процесорів. Вони використовують мнемонічні коди для представлення інструкцій, які може виконувати центральний процесор.

Мова асемблера для мікропроцесора x86 працює у поєднанні з різними операційними системами. Ми зосередимося на мові асемблера Linux, використовуючи синтаксис Intel, а також навчимося програмувати на C, для чого розібрали вихідний код і проаналізували відповідний асемблер.

Мова асемблера x86 має два варіанти синтаксису. Синтаксис AT&T був домінуючим у світі Unix, оскільки ОС була розроблена в AT&T Bell Labs. На відміну від цього, синтаксис Intel спочатку використовувався для документації платформи x86 і домінував у середовищах MS-DOS і Windows.

Для наших цілей, коли ми в кінцевому підсумку розбираємо або налагоджуємо програмне забезпечення, будь то в середовищі Linux або Windows, ми будемо бачити синтаксис Intel у великій мірі. Це важливо, незалежно від того, чи ми перевіряємо бінарний файл Windows у форматі PE, чи бінарний файл Linux у форматі ELF. Більше про це пізніше в цьому підручнику.

Основна відмінність між ними полягає в тому, що в синтаксисі AT&T джерело стоїть перед призначенням, а в синтаксисі Intel призначення стоїть перед джерелом. Ми обговоримо це більш детально пізніше в цьому підручнику.

Перш ніж ви побіжите до дверей і пошкодуєте, що почали цю подорож, пам'ятайте, що деякі базові знання, які ми будемо розвивати протягом нашого пошуку, допоможуть вам. Багато з цих тем можуть бути заплутаними на даний момент, що є цілком нормальним, оскільки ми будемо розвивати їх з часом.

Ми зосередимося на асемблері Linux, оскільки Linux працює на різноманітному обладнанні і здатний запускати такі пристрої, як мобільний телефон, персональний комп'ютер або складний комерційний сервер.

Linux також є відкритим програмним забезпеченням і має багато версій. У наших демонстраціях ми зосередимося на Ubuntu, який можна безкоштовно отримати. На відміну від цього, операційна система Windows належить і контролюється однією компанією, Microsoft, від якої безпосередньо надходять усі оновлення, патчі безпеки та патчі обслуговування, тоді як Linux має мільйони професіоналів, які надають те саме абсолютно безкоштовно!

Ми також зосередимося на 32-бітній архітектурі, оскільки в кінцевому рахунку більшість шкідливих програм буде написано саме для неї, щоб заразити якомога більше систем. 32-бітні програми/шкідливі програми працюватимуть на 64-бітних системах, тому ми хочемо зрозуміти основи 32-бітного світу.

У наступному уроці ми обговоримо двійкову систему числення. Візьміть чашку кави, вона вам знадобиться!

results matching ""

    No results matching ""