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

2021-04-15 12:37:57 字數 2974 閱讀 7619

email:[email protected]

1、main函式

[1/10] agobot3 (0.2.1-pre3 alpha) "debug" on "win32" starting up...

[2/10] debugging with debuglevel of 10... 2、

cconsdbg類

有四個成員函式分別是:其中後兩個只在

dbgconsole

模式下呼叫,無構造和析構函式

void

init

(int

idebuglevel);

void

deinit

();

void

log(

intidebuglevel

, const

char

*logfmt

, ...);

void

logerr

(int

idebuglevel

, const

char

*logfmt

, ...);

4個成員變數:前兩個只在windows平台下使用

#ifdef 

win32

handle

m_hstdout;

handle

m_hstderr;

#endif

bool

m_benabled;

intm_idebuglevel;

(1)init函式,完成初始化過程

void

cconsdbg

::init

(int

idebuglevel)

#endif

m_benabled

=true;

m_idebuglevel

=idebuglevel

;//##idebuglevel=10 }

(2)deinit

()函式,完成物件的登出工作

void

cconsdbg

::deinit()

#endif

m_benabled

=false

; //##標識日誌物件無效 }

(3)log將日誌資訊以指定格式寫入輸出視窗

#ifdef 

dbgconsole

//##函式的特點是函式的引數個數可變

void

cconsdbg

::log

(int

idebuglevel

, const

char

*logfmt

, ...)

va_list

va_alist; 

char

logbuf

[logbuf_size

];//##logbuf_size == 8192

char

logbuf2

[logbuf_size];

va_start

(va_alist

, logfmt

); 

vsprintf

(logbuf2

, logfmt

, va_alist

); /*##va_alist指向不確定引數中的第二個引數,即本函式的第三個引數

logfmt指向不確定引數中的第1個引數,即本函式中的第二個引數,儲存了輸出字串的格式*/

va_end

(va_alist);

sprintf

(logbuf

, "[%d/%d] %s"

, idebuglevel

, m_idebuglevel

, logbuf2);

#ifdef 

win32

dword

dwwritten; 

writefile

(m_hstdout

, logbuf

, strlen

(logbuf

), &

dwwritten

, null);

if(m_idebuglevel

>4) 

#else

fprintf

(stdout

, "%s"

, logbuf

); //linux版程式直接使用標準輸出stdout

#endif }

關於va_list

的使用

使用目的:處理函式引數不確定的情況

使用方法及原理參見《

va_start va_arg va_end 的使用和原理》

(4)logerr

函式的原理與

log函式類似

3、ccmdline類

三個成員函式有:

ccmdline

();

virtual

~ccmdline

();

void

parse

(const

char

*szcmdline);

兩個成員變數

config_t

m_cconfig;

char

*m_szcmdline;

其中主要實現功能的是

parse

函式,主要實現的功能是將程式執行時的一系列引數進行分解,並對當

m_cconfig

變數中設定相關數值

,前除錯環境中,引數為空,該函式不起作用。

typedef

struct

config_s  

config_t;

4、cthread類

使用了pthread封裝起來的乙個用來支援windows的類庫,該類庫封裝了眾多的執行緒操作,這方面的內容需要以後投入經歷進一步學習。

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

由於工作需要,著手分析乙個agobot的開源的程式,一些收穫或許和大家分享 email anzijin sina.com 1 源 分以下幾塊 agobot3 source agobot 主體源 重點分析這塊的 scanner source 程式內應該包含了乙個掃瞄器模組 ddos source 實現...

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 ...