由於工作需要,著手分析乙個agobot的開源的程式,一些收穫或許和大家分享
email:[email protected] 1、
源**分以下幾塊:
agobot3 source
agobot 主體源**,
重點分析這塊的**
scanner source
程式內應該包含了乙個掃瞄器模組
ddos source
實現ddos攻擊的模組
shellcode source
計算機漏洞利用模組
redirect source
這個模組的作用還不清楚
3 rd party source
第三方開發的模組放到這裡,在這裡除了可選擇載入的外掛程式模組外,還有一些第三方的模組是程式必須載入的。 2、
主題模組中各類之間的關係: 3、
main函式,
main函式在mainctrl.cpp 檔案中,通過預處理指令實現可在window和在linux平台上該程式都可以編譯成功。
在window平台上呼叫:
intwinapi
winmain
(hinstance
hinstance
, hinstance
hprev
, pstr
cmdline
, int
ishow)
在linux平台下呼叫:
intmain
(int
argc
, char
**argv)
無論在哪個平台,呼叫哪個函式,最終會呼叫
cmainctrl
類的全域性
變數g_cmainctrl
中的main成員函式,
g_cmainctrl
.main
(cmdline
, null
);//在windows平台下的呼叫。
intiretval
=g_cmainctrl
.main
(szargv
, argv
[0]);
//在linux平台下的呼叫。
所以整個agobot 軟體的起始點在
mainctrl.cpp檔案中:
(1)
定義乙個全域性變數
g_cmainctrl
,型別為
cmainctrl。
(2)
在主函式中呼叫該變數的成員函式
intcmainctrl
::main
(const
char
*szcmdline
, const
char
*szargv0)
來實現啟動整個程式。 4、
了解cmainctrl
類,帶著3中的疑問我們有必要了解一下
cmainctrl
的實現。有一下內容組成:
(1)成員變數,其中藍色部分為程式自定義類所定義的變數,其餘的是兩個bool型的變數,如下: 程式自定義的這些類還需要進一步去分析。
ccommands
m_ccommands;
ccmdline
m_ccmdline;
cconsdbg
m_cconsdbg
;//負責記錄程式執行過程的日誌檔案
cbot
m_cbot;
cmac
m_cmac;
ccvar
m_ccvar;
cinstaller
m_cinstaller;
c**********
m_c**********;
cscanner
m_cscanner;
cscannerauto
m_cscannerauto;
circ
m_circ;
csendfile
m_csendfile;
cidentd
m_cidentd;
cddos
m_cddos;
crsalib
m_crsalib;
credirect
m_credirect;
ccdkeygrab
m_ccdkeygrab;
crslcontrol
m_crslcontrol;
bool
m_brunning;
cstring
m_susername;
cstring
m_snameverstr;
cstring
m_sargv0;
bool
m_bidentd_running;
bool
m_bcanspamaol;
list
<
cthread
*>
m_lcanjoin;
(2)cmainctrl
類的建構函式
intmainctrl
();
主要實現的功能是,獲取程式目前的一些狀態,對程式進行初始化,對程式中正在執行的執行緒進行終止操作
(3)成員函式
intmain
(const
char
*szcmdline
, const
char
*szargv0);
在標題5中做重點講述
5、實現配置功能的原始檔,
在幫助檔案faq.html中有這樣的內容:
[2.1] how to configure ?
copy /configs/config-sample.cpp to /config.cpp. edit the file to configure the bot.
可見關於bot的配置資訊是儲存在源**的config.cpp檔案中的,所以需要先對對原始碼中的config.cpp檔案進行分析
(未完)
AgoBot 殭屍網路研究筆記(二)
email anzijin sina.com 1 main函式 1 10 agobot3 0.2.1 pre3 alpha debug on win32 starting up.2 10 debugging with debuglevel of 10.2 cconsdbg類 有四個成員函式分別是 其...
AgoBot 殭屍網路研究筆記(十三)
email anzijin sina.com cinstaller 類分析完成,回到cbot類的分析 1 cbot handlecommand cmessage pmsg 函式 函式功能 處理傳送來的由bot類負責處理的訊息 引數 cmessage pmsg 接收到的訊息 返回值 處理成功返回tru...
AgoBot 殭屍網路研究筆記(七)
最近工作比較忙沒有及時更新最近的分析結果,終於週末有點時間了,趕快補上 email anzijin sina.com 1 circ 類中的 init 成員函式 函式功能 circ類的初始化函式,為bot新增irc相關的處理函式 引數 無 返回值 void void circ init 2 bool ...