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?