ARM匯編與逆向工程 藍(lán)狐卷 基礎(chǔ)知識(shí) 版權(quán)信息
- ISBN:9787111744467
- 條形碼:9787111744467 ; 978-7-111-74446-7
- 裝幀:平裝-膠訂
- 冊(cè)數(shù):暫無
- 重量:暫無
- 所屬分類:>
ARM匯編與逆向工程 藍(lán)狐卷 基礎(chǔ)知識(shí) 本書特色
本書為讀者提供了有關(guān)Arm匯編內(nèi)部機(jī)制和逆向工程方面的基礎(chǔ)知識(shí),這是分析和保護(hù)數(shù)十億Arm設(shè)備的重要基礎(chǔ)。 在當(dāng)前的互聯(lián)網(wǎng)安全領(lǐng)域,找到并修復(fù)Arm設(shè)備的安全漏洞是一項(xiàng)關(guān)鍵任務(wù)。由于超過90%的移動(dòng)設(shè)備和數(shù)十億的物聯(lián)網(wǎng)設(shè)備,以及包括微軟、聯(lián)想和蘋果在內(nèi)的越來越多的筆記本計(jì)算機(jī)都在使用Arm處理器,因此這本書介紹的知識(shí)也變得越發(fā)重要。本書對(duì)于那些需要在匯編級(jí)別分析基于Arm架構(gòu)的設(shè)備上的軟件應(yīng)用程序的安全研究人員和逆向工程師來說是非常重要的參考資料。其內(nèi)容既適用于初學(xué)者,又適用于經(jīng)驗(yàn)豐富的專業(yè)人士,是一本很好的綜合指南。
ARM匯編與逆向工程 藍(lán)狐卷 基礎(chǔ)知識(shí) 內(nèi)容簡(jiǎn)介
本書由兩部分組成。第I部分首先概述ELF文件格式和操作系統(tǒng)的內(nèi)部結(jié)構(gòu),然后介紹Arm架構(gòu)基礎(chǔ)知識(shí),并深入探討A32和A64指令集;第II部分深入探討逆向工程,包括Arm環(huán)境、靜態(tài)分析和動(dòng)態(tài)分析,以及固件提取和模擬分析等關(guān)鍵主題。本書末尾講解在macOS中基于Arm的M1 SoC編譯的二進(jìn)制文件的惡意軟件分析。
通過閱讀本書,讀者可以深入理解Arm的指令和控制流模式,這對(duì)于針對(duì)Arm架構(gòu)編譯的軟件的逆向工程至關(guān)重要。為幫助逆向工程師和安全研究人員更好地理解逆向工程,本書深入介紹了逆向工程的各個(gè)方面,具體包括:
?? Arm架構(gòu)的AArch32和AArch64指令集狀態(tài),以及ELF文件格式內(nèi)部結(jié)構(gòu);
?? Arm匯編內(nèi)部機(jī)制的詳細(xì)信息,可供逆向工程師分析惡意軟件和審計(jì)軟件安全漏洞使用,以及尋求Arm匯編語言詳細(xì)知識(shí)的開發(fā)人員使用;
?? Armv8-A架構(gòu)支持的A32/T32和A64指令集,以及常見的指令和控制流模式;
?? 用于靜態(tài)和動(dòng)態(tài)二進(jìn)制分析的已知逆向工程工具;
?? 在Linux上對(duì)Arm二進(jìn)制文件進(jìn)行反匯編和調(diào)試的過程,以及常用的反匯編和調(diào)試工具。
ARM匯編與逆向工程 藍(lán)狐卷 基礎(chǔ)知識(shí) 目錄
譯者序前言致謝作者簡(jiǎn)介**部分 Arm匯編內(nèi)部機(jī)制第1章 逆向工程簡(jiǎn)介 21.1 匯編簡(jiǎn)介 21.1.1 位和字節(jié) 21.1.2 字符編碼 31.1.3 機(jī)器碼和匯編 41.1.4 匯編 61.2 高級(jí)語言 111.3 反匯編 121.4 反編譯 13第2章 ELF文件格式的內(nèi)部結(jié)構(gòu) 152.1 程序結(jié)構(gòu) 152.2 高級(jí)語言與低級(jí)語言 162.3 編譯過程 172.3.1 不同架構(gòu)的交叉編譯 182.3.2 匯編和鏈接 202.4 ELF文件概述 222.5 ELF文件頭 232.5.1 ELF文件頭信息字段 242.5.2 目標(biāo)平臺(tái)字段 242.5.3 程序入口點(diǎn)字段 252.5.4 表位置字段 252.6 ELF程序頭 262.6.1 PHDR 程序頭 272.6.2 INTERP程序頭 272.6.3 LOAD程序頭 272.6.4 DYNAMIC程序頭 282.6.5 NOTE程序頭 282.6.6 TLS程序頭 292.6.7 GNU_EH_FRAME程序頭 292.6.8 GNU_STACK程序頭 292.6.9 GNU_RELRO程序頭 312.7 ELF節(jié)頭 332.7.1 ELF meta節(jié) 352.7.2 主要的ELF節(jié) 362.7.3 ELF符號(hào) 372.8 .dynamic節(jié)和動(dòng)態(tài)加載 402.8.1 依賴項(xiàng)加載 412.8.2 程序重定位 412.8.3 ELF程序的初始化和終止節(jié) 442.9 線程本地存儲(chǔ) 472.9.1 local-exec TLS訪問模型 502.9.2 initial-exec TLS訪問模型 502.9.3 general-dynamic TLS訪問模型 512.9.4 local-dynamic TLS訪問模型 52第3章 操作系統(tǒng)基本原理 543.1 操作系統(tǒng)架構(gòu)概述 543.1.1 用戶模式與內(nèi)核模式 543.1.2 進(jìn)程 553.1.3 系統(tǒng)調(diào)用 563.1.4 線程 623.2 進(jìn)程內(nèi)存管理 633.2.1 內(nèi)存頁 643.2.2 內(nèi)存保護(hù) 653.2.3 匿名內(nèi)存和內(nèi)存映射 653.2.4 地址空間布局隨機(jī)化 693.2.5 棧的實(shí)現(xiàn) 713.2.6 共享內(nèi)存 72第4章 Arm架構(gòu) 744.1 架構(gòu)和配置文件 744.2 Armv8-A架構(gòu) 754.2.1 異常級(jí)別 764.2.2 Armv8-A執(zhí)行狀態(tài) 814.3 AArch64執(zhí)行狀態(tài) 824.3.1 A64指令集 824.3.2 AArch64寄存器 834.3.3 PSTATE 894.4 AArch32執(zhí)行狀態(tài) 904.4.1 A32和T32指令集 914.4.2 AArch32寄存器 944.4.3 當(dāng)前程序狀態(tài)寄存器 964.4.4 執(zhí)行狀態(tài)寄存器 99第5章 數(shù)據(jù)處理指令 1035.1 移位和循環(huán)移位 1055.1.1 邏輯左移 1055.1.2 邏輯右移 1065.1.3 算術(shù)右移 1065.1.4 循環(huán)右移 1075.1.5 帶擴(kuò)展的循環(huán)右移 1075.1.6 指令形式 1075.1.7 位域操作 1125.2 邏輯運(yùn)算 1205.2.1 位與 1215.2.2 位或 1225.2.3 位異或 1245.3 算術(shù)運(yùn)算 1255.3.1 加法和減法 1255.3.2 比較 1275.4 乘法運(yùn)算 1305.4.1 A64中的乘法運(yùn)算 1305.4.2 A32/T32中的乘法運(yùn)算 1315.5 除法運(yùn)算 1455.6 移動(dòng)操作 1465.6.1 移動(dòng)常量立即數(shù) 1465.6.2 移動(dòng)寄存器 1495.6.3 移動(dòng)取反 150第6章 內(nèi)存訪問指令 1516.1 指令概述 1516.2 尋址模式和偏移形式 1526.2.1 偏移尋址 1556.2.2 前索引尋址 1626.2.3 后索引尋址 1646.2.4 字面值尋址 1666.3 加載和存儲(chǔ)指令 1726.3.1 加載和存儲(chǔ)字或雙字 1726.3.2 加載和存儲(chǔ)半字或字節(jié) 1746.3.3 A32多重加載和存儲(chǔ) 1776.3.4 A64加載和存儲(chǔ)對(duì) 186第7章 條件執(zhí)行 1897.1 條件執(zhí)行概述 1897.2 條件碼 1907.2.1 NZCV條件標(biāo)志 1907.2.2 條件碼 1937.3 條件指令 1947.4 標(biāo)志設(shè)置指令 1977.4.1 指令的S后綴 1977.4.2 測(cè)試和比較指令 2017.5 條件選擇指令 2077.6 條件比較指令 2097.6.1 使用CCMP的布爾與條件 2107.6.2 使用CCMP的布爾或條件 212第8章 控制流 2158.1 分支指令 2158.1.1 條件分支和循環(huán) 2168.1.2 測(cè)試和比較分支 2198.1.3 表分支 2208.1.4 分支和切換 2228.1.5 子程序分支 2258.2 函數(shù)和子程序 2278.2.1 程序調(diào)用標(biāo)準(zhǔn) 2278.2.2 易失性和非易失性寄存器 2288.2.3 參數(shù)和返回值 2298.2.4 傳遞較大值 2308.2.5 葉子函數(shù)和非葉子函數(shù) 233第二部分 逆向工程第9章 Arm環(huán)境 2409.1 Arm板 2419.2 使用QEMU模擬虛擬環(huán)境 2429.2.1 QEMU用戶模式模擬 2439.2.2 QEMU系統(tǒng)模式模擬 246第10章 靜態(tài)分析 25210.1 靜態(tài)分析工具 25210.1.1 命令行工具 25310.1.2 反匯編器和反編譯器 25310.1.3 Binary Ninja Cloud 25410.2 引用調(diào)用示例 25810.3 控制流分析 26310.3.1 main函數(shù) 26410.3.2 子程序 26510.3.3 轉(zhuǎn)換為字符 26910.3.4 if語句 27010.3.5 商除法 27210.3.6
展開全部
ARM匯編與逆向工程 藍(lán)狐卷 基礎(chǔ)知識(shí) 作者簡(jiǎn)介
瑪麗亞·馬克斯特德(Maria Markstedter)是 Azeria Labs 的創(chuàng)始人兼首席執(zhí)行官,該公司提供 Arm 逆向工程和漏洞利用的培訓(xùn)課程。在此之前,她在滲透測(cè)試和威脅情報(bào)領(lǐng)域工作,并擔(dān)任虛擬化初創(chuàng)公司 Corellium 的首席產(chǎn)品官。她擁有企業(yè)安全學(xué)士學(xué)位和企業(yè)安全碩士學(xué)位,并在劍橋依托 ARM 公司從事漏洞利用緩解研究工作。她因在該領(lǐng)域的貢獻(xiàn)而受到認(rèn)可,曾入選《福布斯》2018 年歐洲科技界“30 位 30 歲以下技術(shù)精英”名單,并被評(píng)為 2020 年《福布斯》網(wǎng)絡(luò)安全年度人物。自 2017 年以來,她還是歐洲 Black Hat 和美國培訓(xùn)與簡(jiǎn)報(bào)審核委員會(huì)(Trainings and Briefi ngs Review Board)的成員。