预购商品
书目分类
特别推荐
譯者序 前言 致謝 作者簡介 第一部分Arm彙編內部機制 第1章逆向工程簡介2 1.1彙編簡介2 1.1.1位和字節2 1.1.2字符編碼3 1.1.3機器碼和彙編4 1.1.4彙編6 1.2高級語言11 1.3反彙編12 1.4反編譯13 第2章ELF文件格式的內部結構15 2.1程序結構15 2.2高級語言與低級語言16 2.3編譯過程17 2.3.1不同架構的交叉編譯18 2.3.2彙編和鏈接20 2.4ELF文件概述22 2.5ELF文件頭23 2.5.1ELF文件頭信息字段24 2.5.2目標平臺字段24 2.5.3程序入口點字段25 2.5.4表位置字段25 2.6ELF程序頭26 2.6.1PHDR程序頭27 2.6.2INTERP程序頭27 2.6.3LOAD程序頭27 2.6.4DYNAMIC程序頭28 2.6.5NOTE程序頭28 2.6.6TLS程序頭29 2.6.7GNU_EH_FRAME程序頭29 2.6.8GNU_STACK程序頭29 2.6.9GNU_RELRO程序頭31 2.7ELF節頭33 2.7.1ELFmeta節35 2.7.2主要的ELF節36 2.7.3ELF符號37 2.8.dynamic節和動態加載40 2.8.1依賴項加載41 2.8.2程序重定位41 2.8.3ELF程序的初始化和終止節44 2.9線程本地存儲47 2.9.1local-execTLS訪問模型50 2.9.2initial-execTLS訪問模型50 2.9.3general-dynamicTLS訪問模型51 2.9.4local-dynamicTLS訪問模型52 第3章操作系統基本原理54 3.1操作系統架構概述54 3.1.1用戶模式與內核模式54 3.1.2進程55 3.1.3系統調用56 3.1.4線程62 3.2進程內存管理63 3.2.1內存頁64 3.2.2內存保護65 3.2.3匿名內存和內存映射65 3.2.4地址空間佈局隨機化69 3.2.5棧的實現71 3.2.6共享內存72 第4章Arm架構74 4.1架構和配置文件74 4.2Armv8-A架構75 4.2.1異常級別76 4.2.2Armv8-A執行狀態81 4.3AArch64執行狀態82 4.3.1A64指令集82 4.3.2AArch64寄存器83 4.3.3PSTATE89 4.4AArch32執行狀態90 4.4.1A32和T32指令集91 4.4.2AArch32寄存器94 4.4.3當前程序狀態寄存器96 4.4.4執行狀態寄存器99 第5章數據處理指令103 5.1移位和循環移位105 5.1.1邏輯左移105 5.1.2邏輯右移106 5.1.3算術右移106 5.1.4循環右移107 5.1.5帶擴展的循環右移107 5.1.6指令形式107 5.1.7位域操作112 5.2邏輯運算120 5.2.1位與121 5.2.2位或122 5.2.3位異或124 5.3算術運算125 5.3.1加法和減法125 5.3.2比較127 5.4乘法運算130 5.4.1A64中的乘法運算130 5.4.2A32/T32中的乘法運算131 5.5除法運算145 5.6移動操作146 5.6.1移動常量立即數146 5.6.2移動寄存器149 5.6.3移動取反150 第6章內存訪問指令151 6.1指令概述151 6.2尋址模式和偏移形式152 6.2.1偏移尋址155 6.2.2前索引尋址162 6.2.3後索引尋址164 6.2.4字面值尋址166 6.3加載和存儲指令172 6.3.1加載和存儲字或雙字172 6.3.2加載和存儲半字或字節174 6.3.3A32多重加載和存儲177 6.3.4A64加載和存儲對186 第7章條件執行189 7.1條件執行概述189 7.2條件碼190 7.2.1NZCV條件標誌190 7.2.2條件碼193 7.3條件指令194 7.4標誌設置指令197 7.4.1指令的S後綴197 7.4.2測試和比較指令201 7.5條件選擇指令207 7.6條件比較指令209 7.6.1使用CCMP的布爾與條件210 7.6.2使用CCMP的布爾或條件212 第8章控制流215 8.1分支指令215 8.1.1條件分支和循環216 8.1.2測試和比較分支219 8.1.3表分支220 8.1.4分支和切換222 8.1.5子程序分支225 8.2函數和子程序227 8.2.1程序調用標準227 8.2.2易失性和非易失性寄存器228 8.2.3參數和返回值229 8.2.4傳遞較大值230 8.2.5葉子函數和非葉子函數233 第二部分逆向工程 第9章Arm環境240 9.1Arm板241 9.2使用QEMU模擬虛擬環境242 9.2.1QEMU用戶模式模擬243 9.2.2QEMU系統模式模擬246 第10章靜態分析252 10.1靜態分析工具252 10.1.1命令行工具253 10.1.2反彙編器和反編譯器253 10.1.3BinaryNinjaCloud254 10.2引用調用示例258 10.3控制流分析263 10.3.1main函數264 10.3.2子程序265 10.3.3轉換為字符269 10.3.4if語句270 10.3.5商除法272 ……
瑪麗亞·馬克斯特德(Maria Markstedter)是Azeria Labs的創始人兼首席執行官,該公司提供Arm逆向工程和漏洞利用的培訓課程。在此之前,她在滲透測試和威脅情報領域工作,並擔任虛擬化初創公司 Corellium的首席產品官。她擁有企業安全學士學位和企業安全碩士學位,並在劍橋依託 ARM 公司從事漏洞利用緩解研究工作。她因在該領域的貢獻而受到認可,曾入選《福布斯》2018 年歐洲科技界“30位30歲以下技術精英”名單,並被評為2020年《福布斯》網絡安全年度人物。自2017年以來,她還是歐洲 Black Hat和美國培訓與簡報審核委員會(Trainings and Briefi ngs Review Board)的成員。
客服公告
热门活动
订阅电子报