apiscout
該項目旨在簡化Windows API導入恢復。作為輸入,可以處理針對已知環境的任意內存轉儲(請注意:必須首先使用APISCOUT/DB_BUILDER構建參考DB)。
輸出是帶有一些元信息的已確定的Windows API引用的有序列表,也是Apivector指紋。
- Scout.py-應該對如何與圖書館合作提供良好的概述。
- ida_scout.py-是一個便利的GUI包裝器,可用於IDA Pro。
- ghidrascout.java-是Apiscout的Ghidra插件(由 @Mari-Mari貢獻)。
- match.py-演示瞭如何相互匹配和指紋集合。
- collect.py-構建一個可用於匹配的Winapi指紋(示感)數據庫。
- export.py-生成可視化傾向器的APIQR圖。
- 更新。
該代碼應與Python 2和3完全兼容。
有一篇博客文章更詳細地描述Apiscout:http://byte-atlas.blogspot.com/2017/04/apiscout.html。
另外,另一篇博客文章解釋瞭如何構造和存儲傾向:https://byte-atlas.blogspot.com/2018/04/apivectors.html。
我們還在BotConf 2018上發表了一篇論文,該論文描述了Depth中的Apiscout方法,包括對Malpedia的評估:https://journal.cecyf.fr/ojs/index/index.php/cybin/article/article/article/article/10/20/20/23/23
版本歷史記錄
- 2023-03-27:v2.0.2-用於IDASCOUT和套裝的錯誤文件,由 @7A6570(THX !!)貢獻
- 2023-01-02:v2.0.1-基於lief的導入表與Python 3.10解析的錯誤文件,由 @malware-kitten(THX !!)貢獻
- 2022-08-01:v1.2.0-添加了Ghidra的插件,由 @Mari-Mari(THX !!)貢獻
- 2022-09-20:v2.0.0-(潛在的破壞)爬網結果現在有一個附加的輸出字段,其中一組給定的Winapi引用。這也包含在
scout.py的JSON輸出中,由@Renzhexigua(THX !!)貢獻 - 2022-08-01:v1.2.0-添加了Ghidra的插件,由 @Mari-Mari(THX !!)貢獻
- 2022-01-17:V1.1.9-修復了
ida_scout.py ,將APISCOUT安裝為Python軟件包時,請與IDA 7.5+一起工作。 - 2021-10-04:v1.1.8-基於@blattm(THX!)提供的觀察值的Winapi上下文的擴展。
- 2021-08-30:v1.1.7- Numpy提出的APIQR中的固定折舊警告。
- 2021-07-31:V1.1.6-不再需要保留固定的Lief版本。 (THX至 @cccs-rs!)
- 2021-01-10:V1.1.5-Python3 Lief軟件包固定在版本0.10.1(THX至@akhribfarouk!)!
- 2020-12-09:V1.1.4-Python3修復了數據庫Builder(THX至 @dump-guy!)
- 2020-07-13:v1.1.3-將“ install_requires”添加到setup.py中,以確保安裝依賴關係。
- 2020-06-30:v1.1.0-現在使用Lief進行進口表解析。修復了使用導入表解析時不會產生傾向的錯誤。現在也可以通過PYPI獲得APISCOUT。
- 2020-03-03:添加了一個腳本來從馬拉佩亞(Malpedia)提取最新的Apivector DB(需要Malpedia帳戶 / API令牌)。
- 2020-03-02:移植到IDA 7.4(THX至@Jenfrie)。
- 2020-02-18:DB構建器現在兼容為Python 3.7(THX至@Elanfer)。
- 2019-10-08:在IDA 7.3中損壞API視圖的解決方法(thx到@enzok指出了這一點)。
- 2019-08-22:修復了一個錯誤,其中IDA中缺少類型的信息會導致崩潰(現在給出錯誤消息)。
- 2019-08-20:添加了自我過濾器,以消除指針以擁有可能被錯誤視為API參考的內存圖像。
- 2019-06-06:添加了對IDA Pro(thx to @flxp0c)的註釋API的適當類型重建的添加支持
- 2019-05-15:添加了對向量計算的Numpy支持(基於@Garanews-THX提供的實現!)
- 2019-05-15:修復了PE映射器中的一個錯誤,由於截面大小的誤解,緩衝區將縮短緩衝區。
- 2019-01-23:QOL改進:自動數據文件夾在用作模塊時部署,Logger初始化(THX至@jdval)
- 2018-08-23:修復了PE映射器中的一個錯誤,其中PE標頭將被(空)部分數據覆蓋。
- 2018-08-21:添加功能,允許使用導入表信息,而不是爬上參考。
- 2018-07-31:固定的便利功能,可從/到列表和dicts創建/導出向量,並增加了測試覆蓋範圍。
- 2018-07-23:警告:傾向格式的變化 - 引入了分類的傾向,這些傾向更加有效(20%+)。
- 2018-06-25:固定與IDA Pro 7.0+的不相容性(THX至@nazywam!)
- 2018-05-23:添加了進一步的語義上下文組(thx to Quoscient.io)
- 2018-03-27:添加了Windows API參考計數的啟發式估計
- 2018-03-06:矢量結果的APIQR可視化(C-1024)
- 2017-11-28:添加了自己的進口表解析器以豐富結果信息
- 2017-08-24:IDA Pro中的多段支持(THX至@nazywam!)
- 2017-05-31:添加了Windows 7 SP1 64位進口DB(與Malpedia兼容)
學分
這個想法以前已經經歷了多次迭代,直到達到此重構釋放。
感謝Thorsten Jenke和Steffen Enders以前的努力,並評估了對此方法的概念驗證。
感謝Steffen Enders在APIQR圖表的可視化方面所做的工作。
還要感謝Ero Carrera的Pefile和Elias Bachaalany的Ida Python Askusing Form模板。 :)
此外,非常感謝Andrea Garavaglia的性能基準,這些基准在應用匹配中導致了巨大的加速!
歡迎拉請求! :)