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