suricata是一款高效能的ids、ips和網路安全監測引擎。採用多執行緒模式,利用多核優勢。支援多種協議:例如ip4、ip6、tcp、udp、http、ftp、pop3等協議。可以動態載入過濾規則。
(1)呼叫runmoderegisterrunmodes函式註冊執行模式
runmodeidspcapregister(); // ids+pcap
runmodefilepcapregister(); // file+pcap
runmodeidspfringregister(); // ids+pfring
runmodeipsipfwregister(); // ips+ipfw
runmodeipsnfqregister(); // ips+nfq
runmodeerffileregister(); // erf+file
runmodeerfdagregister(); // erf+dag
runmodenapatechregister(); // napatech
runmodeidsafpregister(); // ids+afp
runmodeunixsocketregister(); // unixsocket
每種執行模式呼叫runmoderegisternewrunmode註冊,
runmoderegisternewrunmode(runmode_pcap_dev, "single",
"single threaded pcap live mode",
runmodeidspcapsingle);
執行模式名字、執行模式執行函式、執行模式描述儲存到全域性陣列runmodes。
(2)呼叫registerallmodules註冊各模組
/* commanders */
tmmoduleunixmanagerregister();
.......
模組儲存到tmmodule tmm_modules[tmm_size];
typedef struct tmmodule_ tmmodule;
(3)模組初始化,呼叫tmmoduleruninit()執行tmmodule tmm_modules[tmm_size]中的全域性初始化模組函式。
(4)runmodedispatch()函式呼叫,根據配置獲取執行模式,然後根據執行模式執行全域性陣列runmodes中的執行模式執行函式。
(5)執行模式執行函式
例如:runmodefilepcapsingle()
通用模組初始化runmodeinitialize
建立tv例項tmthreadcreatepackethandler
從tmm_modules中獲得模組tmmodulegetbyname
插入槽slot
tmthreadspawn真正建立執行緒函式
執行模式註冊,設定執行函式
所有模組註冊,設定模組相關函式
所有模組初始化
從配置獲取執行模式型別,執行函式
建立執行緒
根據模組名稱從全域性陣列tmm_modules中得到模組指標
插入執行緒槽slot
MTK Phonebook初始化流程
開機之後,初始化時,設定如下三個ps訊息cback函式 initializeall mmi phb init protocol setprotocoleventhandler mmi phb ind startup finish,prt phb startup finish ind setproto...
SD初始化流程
sd初始化流程 當host上電後,使所有的卡裝置處於卡識別模式,完成設定有效操作電壓範圍,卡識別和請求卡相對位址等操作。1 傳送指令cmd0使卡裝置處於idle狀態 2 傳送指令cmd8,如果卡裝置有response,說明此卡為sd2.0以上 3 傳送指令cmd55 acmd41,該指令是用來探測卡...
WorldWind初始化流程
這篇post是基於ww1.3.5.0的 寫的,1.4的 如有變化我會及時更新 建立程式版本號 通過version類 保證只有乙個worldwind例項在執行 5.1.判斷是否需要執行配置嚮導 5.2.建立啟動畫面 splash類,是乙個form的派生類 5.3.配置快取 5.4.設定配置檔案路徑並讀...