- ARM匯編與逆向工程:藍狐卷·基礎知識
- (美)瑪麗亞·馬克斯特德
- 1747字
- 2024-05-14 11:09:02
前言
首先讓我回答一個最明顯的問題:為什么選擇“Blue Fox”(藍狐)這個名字?
本書最初打算涵蓋Arm指令集、逆向工程以及漏洞利用(exploit)緩解內部機制和繞過技術方面的內容。出版商和我很快意識到,要完全涵蓋這些主題,可能需要1000頁左右的篇幅。因此,我們決定將其拆分成兩本書:藍狐卷和紅狐卷。
藍狐卷從分析師的視角介紹開啟逆向工程所需的一切。如果沒有對基礎知識的扎實理解,就無法轉向更高級的主題,如漏洞分析和漏洞利用開發。紅狐卷從攻擊性安全視角介紹漏洞利用緩解內部機制、繞過技術和常見漏洞模式。
截至撰寫本文時,Armv8-A架構(和Armv9-A擴展)的Arm架構參考手冊[1]已有11 952頁,而且還在不斷擴展。兩年前我開始撰寫本書時,這個參考手冊大約有8000頁。
那些習慣了逆向分析x86/64二進制文件但想要適應由Arm驅動的設備的安全研究人員,很難在逆向工程或二進制分析的背景下找到易于理解的Arm指令集資源。Arm的架構參考手冊可能會讓人感到不知所措和沮喪。在當今這個時代,沒有人有時間閱讀一份12 000頁的技術文檔,更不用說識別最相關或最常用的指令并記住它們了。事實上,你不需要知道每一條Arm指令就能對Arm二進制文件進行逆向工程處理。許多指令都有非常具體的用例,這些用例你在分析過程中可能會遇到,也可能永遠不會遇到。
本書的目的是讓人們更輕松地熟悉Arm指令集并獲得足夠的知識。我花費了無數個小時來剖析Arm架構參考手冊,并將最常見的指令類型及其語法模式進行分類,這樣你就不必自己去剖析了。但是,本書并不是最常見Arm指令的列表。它包含了很多在其他任何地方(甚至包括Arm手冊本身)都找不到的解釋。Arm手冊對指令的基本描述相當簡短。對于像MOV或ADD這樣的簡單指令來說,這是可以接受的;然而,許多常見指令執行復雜的操作,其簡短描述很難讓人理解。因此,你在本書中遇到的許多指令都附有圖形說明,以解釋在底層實際發生的事情。
如果你是逆向工程的初學者,那么了解二進制文件的文件格式、它的各節、從源代碼編譯成機器碼的過程以及它所依賴的環境是非常重要的。由于篇幅有限,本書無法涵蓋每種文件格式和操作系統,因此將重點放在Linux環境和ELF文件格式上。好消息是,無論平臺或文件格式如何,Arm指令都不變。即使針對macOS或Windows環境下的Arm二進制文件進行逆向工程處理,指令本身的含義仍然是相同的。
第1章介紹指令的定義和來源。第2章介紹ELF文件格式及其各節,以及編譯過程。如果不了解二進制分析的執行環境,那么二進制分析是不完整的,因此第3章概述操作系統基礎知識。
有了這些背景知識,你便做好了深入探討第4章中的Arm架構的準備。第5章介紹最常見的數據處理指令,第6章概述內存訪問指令。這些指令是Arm架構——也被稱為Load/Store架構——的重要組成部分。第7章和第8章分別討論條件執行和控制流,這些是逆向工程的關鍵組成部分。
第9章是特別適合逆向工程師的章節。了解不同類型的Arm環境非常重要,特別是在執行動態分析并需要在執行期間分析二進制文件時。
有了目前提供的信息,你就已經為下一個逆向工程項目做好了充分準備。為了幫助你入門,第10章將概述最常見的靜態分析工具,并提供一些實際的靜態分析示例,你可以按步驟跟隨學習。
如果無法用動態分析方法觀察程序在執行期間的行為,逆向工程可能會變得枯燥無味。第11章將介紹最常見的動態分析工具,以及在分析過程中可以使用的有用的命令的示例。該章最后將給出兩個實際調試示例:調試內存損壞和使用GDB調試進程。
逆向工程在各種用例中都非常有用。你可以利用自己掌握的Arm指令集和逆向工程技術知識,將自己的技能擴展到不同領域,例如漏洞分析或惡意軟件分析。
逆向工程是惡意軟件分析師的寶貴技能,但他們還需要熟悉給定惡意軟件樣本的編譯環境。為了幫助你踏入這個領域,本書的第12章將分析arm64 macOS惡意軟件,該章由Patrick Wardle撰寫,他也是The Art of Mac Malware[2]的作者。與前面的章節不同,這一章并不討論Arm匯編語言,而是介紹macOS惡意軟件為了避免被分析而采用的反分析技術。這一章的目的是介紹適用于蘋果芯片(M1/M2)的macOS惡意軟件,以便任何對基于Arm的macOS惡意軟件感興趣的人快速入門。
我撰寫本書花了兩年多的時間。我于2020年3月開始寫作,當時疫情暴發,我們都被隔離在家中。經過兩年的艱辛努力,我很高興看到它終于問世了。謝謝大家對我的信任。我希望本書能夠成為你開始逆向工程之旅的有用指南,讓這個旅程更加順暢和不那么令人望而生畏。
[1]https://developer.arm.com/documentation/ddi0487/latest
[2]https://taomm.org
- 信息安全導論(在線實驗+在線自測)
- SASE原理、架構與實踐
- Metasploit Penetration Testing Cookbook(Third Edition)
- Enterprise Cloud Security and Governance
- 網絡運維親歷記 (網絡運維紀實文學)
- 網絡安全設計、配置與管理大全
- 空間群組密鑰管理研究:基于自主的深空DTN密鑰管理
- 網絡服務安全與監控
- Kali Linux高級滲透測試(原書第4版)
- Mastering Linux Security and Hardening
- 復雜信息系統網絡安全體系建設指南
- 信息內容安全管理及應用
- 網絡攻防實戰研究:MySQL數據庫安全
- Learn Azure Sentinel
- 紅藍攻防:技術與策略(原書第3版)