官术网_书友最值得收藏!

2.1 x86簡介

目前有上萬種不同的計算機架構。盡管它們的工作方式都很相似,但每一種計算機架構之間或多或少都有差異。

為了研究逆向工程,我們需要選擇一個焦點架構。在本書中,我們將使用x86架構,選擇這一架構的理由有以下幾個:

? 普遍性:x86是使用最廣泛的匯編語言,因此在逆向工程中具有廣泛的應用。

? 計算機支持:任何臺式計算機、筆記本計算機或服務器都可以構建、運行x86應用程序并對其進行逆向工程。

? 市場份額:x86是主流操作系統(Windows、Linux和macOS)的核心,因此已在數十億的系統中被使用。

x86架構已經存在了幾十年,并且這些年來有了很大發展。這種架構最初是在1974年由英特爾(Intel)推出的,x86歷史上的一些主要里程碑包括:

? Intel 8080:于1974年推出的8位微處理器。

? Intel 8086:于1978年推出的16位微處理器。

? Intel 80386:于1985年推出的32位微處理器。

? Intel Prescott、AMD Opteron和Athlon 64:于2003年/2004年推出的64位微處理器。

在近50年的歷史中,x86架構不斷加入新的特性,同時仍保持向后兼容。即使有些特性被認為無人使用,也從未被從系統中移除。因此,針對1978年發布的Intel 8086處理器編寫的程序,現在依然可以在最新的x86芯片上運行,無須修改。

這種專注于向后兼容的方式創造了一個龐大、復雜且有趣的架構。最新的Intel軟件開發者手冊(https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm. html)已超過5000頁,但也只是初步揭示了這個架構的能力。本書專注于理解x86的基礎知識,這是讀取、編寫和操作大多數x86代碼所需的全部內容。

隨著x86架構的變化,x86已經成為所有從Intel 8086 16位架構演變出來的架構的總稱,它包括Intel 80286架構(包含16位和32位架構),以及Intel 80886架構(增加了64位架構)。x64特指x86的64位版本。

本書將展示一些在32位x86架構上的示例。32位x86的所有概念都可以無縫轉化到x64中。在學習階段,使用32位的示例比64位的要容易得多。通過全面研究本書中的32位x86,你將能夠立即看懂x64匯編并理解它。你不需要一直盯著看64位的東西,因為即使是32位盯著看也有點痛苦。因此,不要因為示例是32位的就擔心這個是過時的,或者認為從一開始就應專注于64位。我們兩人都首先學習了32位,并且我們已經教過很多軟件破解課程,可以自信地說,如果你先打好32位的基礎,64位就只是寄存器(register)增加了、值更長了而已。

主站蜘蛛池模板: 西贡区| 康平县| 温州市| 宜宾市| 台中县| 闸北区| 安阳县| 安阳市| 威海市| 北宁市| 高淳县| 大安市| 吉木萨尔县| 涿鹿县| 德清县| 娄烦县| 秀山| 凉山| 巨野县| 颍上县| 乌鲁木齐市| 临泽县| 桂平市| 囊谦县| 澳门| 峨眉山市| 永康市| 永年县| 秭归县| 克拉玛依市| 兴业县| 威宁| 响水县| 屏东县| 西宁市| 祁东县| 孝感市| 荔波县| 鞍山市| 鄂州市| 武隆县|