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