AgoBot 殭屍網路研究筆記(一)

2021-04-15 11:02:08 字數 3011 閱讀 9599

由於工作需要,著手分析乙個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 ...