天天看點

《編譯與反編譯技術實戰》——1.9節動态分析工具TEMU

本節書摘來自華章社群《編譯與反編譯技術實戰》一書中的第1章,第1.9節動态分析工具temu,作者劉曉楠 陶紅偉 嶽 峰 戴超,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

1.9 動态分析工具temu

temu是動态分析工具bitblaze的一個元件,是一個基于系統仿真器qemu開發的動态二進制分析工具,以qemu為基礎運作一個完整的系統(包括作業系統和應用程式),并對二進制代碼的執行進行跟蹤和分析。

temu提供以下功能:

1)動态污點分析。temu能夠對整個系統進行動态污點分析,把一些資訊标記為污點(如鍵盤事件、網絡輸入、記憶體讀寫、函數調用、指令等),并在系統内進行污點傳播。這個特性可為符号執行提供插件形式的工具。許多分析都需要對二進制代碼進行細粒度的分析,而基于qemu的全系統模拟器確定了細粒度的分析。

2)擷取作業系統視圖。作業系統中提取的資訊如程序和檔案對很多分析都是很重要的。temu可以使用這些資訊決定目前執行的是哪個程序和子產品、調用的api和參數,以及檔案的存取位置。全系統的視圖使我們能夠分析作業系統核心以及多個程序間的互動,而許多其他的二進制分析工具(如valgrind、dynamorio、pin)隻提供了一個局部的視圖(如單個程序的資訊)。這對于分析惡意代碼更為重要,因為許多攻擊涉及多個程序,而且諸如rootkits的核心攻擊變得越來越普遍。

3)深度行為分析。temu能夠分析二進制檔案和操作環境的互動,如api調用序列、邊界記憶體位置的通路。通過标記輸入為污點,temu能夠進行輸入和輸出之間的關系分析。并且,全系統仿真器有效地隔離了分析元件和待分析代碼。是以,待分析代碼更難幹擾分析結果。

temu由c和c++實作。性能要求高的代碼由c實作,而面向分析的代碼由c++編寫,以便很好地利用c++ stl中的抽象資料類型和類型檢查。

繼續閱讀