MASTIFF
- Mastiff是Tyler Hudak在2013年開發的一個靜態惡意軟件分析項目,其主要作用是集成多種插件提取各種特徵,例如對於PE文件,包括PE頭,簽名,資源,yara檢測結果等等。
- 因爲一個項目的原因,我需要安裝MASTIFF,由於項目比較久遠,README.INSTALL以及網上找得到的教程中很多在當前是不適用的,且作者項目主頁與郵箱都無法訪問(主頁是科學上網都無法訪問),因此在此簡單羅列幾個本人踩過的坑。本人萌新,求大佬輕噴。
- 本人安裝環境:Win10,WSL(Ubuntu18),python2.7.15rcl,pip 9.0.1
yara找不到庫
- 起初我使用pip install yara yara-python,然後報錯,查看錯誤提示大致是/usr/lib/libyara.so找不到,此處我們使用pip show libyara.so,找到pip安裝庫所在的路徑,之後用find 該路徑 libyara.so,之後找到libyara.so後ln -s添加一條軟連接到/usr/lib下(或者是/usr/local/lib,作者記不太清了,這個取決於python錯誤提示)。
- 那麼爲什麼不在/路徑下找libyara?一方面是速度慢,另一方面可能存在多個libyara.so,這個是由於apt-get安裝產生的,如果連接了這個庫會導致錯誤(具體可以試試將錯誤代碼複製搜索,StackOverFlow中記得有一個解釋)
運行發現Except yara.Error ,err錯誤
- 此處有兩種可能,第一種,MASTIFF運行環境是python2,因此用3會出現語法錯誤,這個是由於python3中該語句應當改成Except yara.Error as err。
- 第二種,pip不夠新,安裝的yara-python版本不包括Error module,此時pip卸載yara-python,從github上下載最新版的yara-python,安裝可以解決此問題。
make test 正常後嘗試make dev/install時報錯,Yaspy無法下載
- 這個可能是由於作者給添加了沒有Yaspy就下載的安裝機制,由於作者給出的下載鏈接已經沒有該版本的Yaspy,建議直接刪除這個機制後手動安裝Yaspy。
- 找到setup.py中的install_requires一項,清空,重新安裝則無問題
報錯AttributeError: ‘list’ object has no attribute ‘Key’
- 當完成前一步之後我們已經可以順利運行測試文件了(tests/test.exe),而當我們實際測試自己的惡意軟件之後就會發現會出現AttributeError,查看錯誤提示的文件EXE-peinfo.py源碼
for fileinfo in pe.FileInfo:
if fileinfo.Key == ‘StringFileInfo’:
- 此處顯然fileinfo類型出錯,回溯到pe,找到pe的賦值語句
pe = pefile.PE(filename)
- 那麼我們此時就可以確定pefile模塊出了問題。查看MASTIFF是在2015年上傳最後版本,所以猜測是由於版本不兼容升級造成的問題。pip show pefile發現是2018年版本,應該不是版本不夠新而是相反,舊版本纔是正確的。由於沒有2015的版本,所以嘗試了2016.3.4的Release,可以使用。所以卸載pefile模塊後最終從github獲取2016.3.4的Release版本安裝,最終成功運行
部分找得到的安裝文檔
- github項目中的README.INSTALL
- http://www.tekdefense.com/news/2013/3/10/installing-mastiff.html