7.7 周遊列國實例 (31-61)

(31) viper.py -> console.py -> commands.py -> out.py -> colors.py

啟動 viper console 介面,console 會 import commands.py 中定義的 viper 系統指令。
其中,輸入指令後,針對 viper 不同執行狀態,印出客製化相對應之輸出訊息與顏色。

(32) viper.py -> console.py -> commands.py -> colors.py

同上,
但輸入指令後,有些 output 訊息不一定會用到 out.py 的格式。
所以直接用 colors.py 中的顏色顯示輸出。

(33) viper.py -> console.py -> commands.py -> session.py -> out.py -> colors.py

commands.py 用 session.py 處理下列事:
1. 檔案被分析時,就會開啟 session,並將檔案相關資訊 (file type, hash value, file path etc.) 載入。
2. 用 __session__.clear() 關掉 session。
3. 印出檔案資訊時,會先檢查 session 是否 open。
4. 儲存檔案到 local repository 時,以及儲存檔案資訊到 db 時,會先檢查 session 是否 open。
5. 刪除檔案,以及刪除 db 中檔案資訊時,會先檢查 session 是否 open。

(34) viper.py -> console.py -> commands.py -> session.py -> objects.py

基本同上,
在 open session 時,會先用 objects.py 中的 File 計算檔案 hash。  

(35) viper.py -> console.py -> commands.py -> plugins.py -> abstracts.py -> colors.py

在 cmd_help() 中,plugins.py 中 __modules__.item() 用來列出模組清單。

(36) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> out.py -> colors.py

commands.py 主要是定義系統指令,plugins.py 中的 __modules__ 只用來列出模組清單。
沒做其他事。
如果 plugins.py 要往下走,這部份請看 console.py。

以下皆同上

(37) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> abstracts.py -> colors.py

(38) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> database.py -> out.py -> colors.py

(39) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> database.py -> objects.py

(40) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> session.py -> out.py -> colors.py

(41) viper.py -> console.py -> commands.py -> plugins.py -> modules/fuzzy.py -> session.py -> objects.py

(42) viper.py -> console.py -> commands.py -> plugins.py -> modules/pe.py -> out.py -> colors.py

(43) viper.py -> console.py -> commands.py -> plugins.py -> modules/pe.py -> objects.py

(44) viper.py -> console.py -> commands.py -> plugins.py -> modules/pe.py -> abstracts.py -> colors.py

(45) viper.py -> console.py -> commands.py -> plugins.py -> modules/pe.py -> session.py -> out.py -> colors.py

(46) viper.py -> console.py -> commands.py -> plugins.py -> modules/pe.py -> session.py -> objects.py

(47) viper.py -> console.py -> commands.py -> plugins.py -> modules/strings.py -> out.py -> colors.py

(48) viper.py -> console.py -> commands.py -> plugins.py -> modules/strings.py -> abstracts.py -> colors.py

(49) viper.py -> console.py -> commands.py -> plugins.py -> modules/strings.py -> session.py -> out.py -> colors.py

(50) viper.py -> console.py -> commands.py -> plugins.py -> modules/strings.py -> session.py -> objects.py

(51) viper.py -> console.py -> commands.py -> plugins.py -> modules/virustotal.py -> out.py -> colors.py

(52) viper.py -> console.py -> commands.py -> plugins.py -> modules/virustotal.py -> abstracts.py -> colors.py

(53) viper.py -> console.py -> commands.py -> plugins.py -> modules/virustotal.py -> session.py -> out.py -> colors.py

(54) viper.py -> console.py -> commands.py -> plugins.py -> modules/virustotal.py -> session.py -> objects.py

(55) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> out.py -> colors.py

(56) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> abstracts.py -> colors.py

(57) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> database.py -> out.py -> colors.py

(58) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> database.py -> objects.py

(59) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> session.py -> out.py -> colors.py

(60) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> session.py -> objects.py

(61) viper.py -> console.py -> commands.py -> plugins.py -> modules/yarascan.py -> storage.py

Last updated

Was this helpful?