[Mac] 撰寫 Yara 規則,用 Yara 掃瞄含有特定字串的檔案
今天要測試專案裡用到 Yara 的一個問題,
就順便簡單記錄一下 Yara 的使用吧~
假設我想要寫一個 Yara 規則,用它來找出 GoogleUpdate.exe,
因為我事前已經知道 GoogleUpdate.exe 裡,
會有個叫 “GoogleUpdate_unsigned.pdb” 的字串,
因此我可以寫出下面的 Yara 規則檔:
rule MatchGoogleUpdateExe { strings: $my_text_string = "GoogleUpdate_unsigned.pdb" condition: $my_text_string }
這個規則十分簡單,就是如果條件 (condition) 符合時
(也就是檔案裡可以搜尋到指定的字串) ,這條 Yara 規則就算是中了~
(可以參考 Write YARA Rules 寫出更複雜的規則檔)
將剛寫好的規則檔儲存成 rule_MatchGoogleUpdateExe.yar
(副檔名應該是沒有規定要 .yar, 只是常見的是用這個副檔名),
接著執行 yara <rule file> <file to scan> 就行了,
如果還沒安裝 Yara 的話,在 Mac 上可以直接用 Homebrew 安裝:
brew install yara
例如下面就用 yara 掃瞄當前目錄,
發現 GoogleUpdate.exe 和 GoogleUpdate.tar 都有中 MatchGoogleUpdateExe 這個規則:
testuser@localhost $ yara ../yara/rule_MatchGoogleUpdateExe.yar . MatchGoogleUpdateExe ./GoogleUpdate.exe MatchGoogleUpdateExe ./GoogleUpdate.tar
加上 -s 選項的話,還可以看到符合的字串內容:
testuser@localhost $ yara -s ../yara/rule_MatchGoogleUpdateExe.yar . MatchGoogleUpdateExe ./GoogleUpdate.tar 0x10748:$my_text_string: GoogleUpdate_unsigned.pdb MatchGoogleUpdateExe ./GoogleUpdate.exe 0x10548:$my_text_string: GoogleUpdate_unsigned.pdb
今天的這個任務其實用 grep 也可以完成,
不過 Yara 規則可以寫得更加複雜,加上各種邏輯組合,就看如何運用囉~^^
(本頁面已被瀏覽過 2,542 次)