Pharos靜態二進制分析框架是卡內基·梅隆大學(Carnegie Mellon University)軟件工程研究所的一個項目。該框架旨在促進對二進製程序的自動分析。它使用勞倫斯·利弗莫爾國家實驗室開發的玫瑰編譯器基礎設施,用於拆卸,控制流分析,教學語義等。該軟件是根據BSD許可發布的。
當前的發行版是對先前版本的實質性更新,並添加了各種功能,包括改進Ooanalyzer工具,實驗路徑分析代碼,分區器改進,多線程以及許多其他較小的功能。
Pharos框架是一個研究項目,該代碼正在進行積極的發展。沒有為任何目的提供健身保證。儘管此版本提供了構建說明,單元測試和一些文檔,但仍有許多工作要做。我們已經測試了一些選擇的構建配置,但是我們尚未積極測試源代碼的可移植性。有關更多詳細信息,請參見安裝說明。
由於發布該代碼的主要目的是為我們的研究提供透明度,並刺激與其他二進制靜態分析研究人員的對話,因此請隨時與Cory Cohen [email protected]聯繫,您可能對這項工作有問題。我可能無法及時做出回應,但我會盡力而為。
Apianalyzer是用於查找具有指定數據和控制關係的API調用序列的工具。該功能旨在用於檢測通用操作系統交互範式,例如打開文件,寫入其並關閉它。
OoAnalyzer是用於分析和恢復對象構造的工具。該工具是一篇論文的主題,標題為“使用邏輯編程來從2018年的ACM計算機和通信安全性會議上發表的C ++類別和方法”,該工具通過在程序中的函數之間跟踪對象指標來標識對象成員和方法。該工具的先前實現稱為“ OBJDIGGER”,但重命名為反映使用Prolog規則來恢復對象屬性的實質性重新設計。該工具的當前版本僅支持對Microsoft Visual C ++編制的32位X86可執行文件的分析。有關如何在非常大的可執行文件上運行OoAnalyzer的更詳細的講師,請參閱這些筆記。
PHAROS分髮用於包括一個插件,該插件將Ooanalayzer導出的OO信息導入到Ghidra反向工程工具集中。要現在和將來獲得該功能,請安裝Kaiju Ghidra插件,其中包括Ooanalayzer插件提供的功能。
Callanalyzer是將靜態參數報告給二進製程序中API調用的工具。這在很大程度上是我們當前的呼叫慣例,參數分析和類型檢測功能的證明,儘管它也提供了對程序中代碼的有用分析。
FN2YARA是生成可執行程序中匹配功能的Yara簽名的工具。共享大量功能的程序可能具有共同的行為。
FN2HASH是用於在可執行程序中為功能生成各種哈希和其他描述屬性的工具。像FN2YARA一樣,它可用於支持二進制相似性分析,或為機器學習算法提供功能。
DumpMasm是一種工具,用於使用與其他工具相同樣式的Pharos框架從可執行文件中傾倒拆卸列表。它尚未積極維護,您應該考慮使用Rose的標準recursiveIsAssemble,而是http://rosecompiler.org/rose_html_reference/rosetools.html。