Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588460
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:54:55

基于IP/UDP协议的 sock 编程


作者:



    在VC知识库我学到了很多知识,很短的时间我就掌握了vc,主要是在贵站下了很多源代码回来分析,学习。看了你处有人将net send封装进行消息群发的源代码,有看见网上某某公司消息群发软件要花钱才能购买,于是有感自己编写一个消息群发小程序。

特点:
    vc源代码,基于IP/UDP协议的sock编程,按messager 服务的通信协议填写UDP数
据包,可在没有net send命令的win98 win95下实现消息发送,代码里含有messager 的通
信协议。并支持文本内容,ASCII文本图象发送。做广告很不错。在消息显示中可屏蔽自
己的主机名。
    win2000/xp默认开着信使服务(messager),端口是135,网络通信方式采用ip/udp协议。一般这种服务使用于局域网,如果用代理就可绕过网关将消息发出去。
我们先来分析一下ip数据包的结构吧。

    一个符合信使服务的数据包前面加上udp包头(8字节),就构成了udp包。udp包前面加上20个字节的ip包头,就构成了ip包。既是ip包里前28个字节是网络协议,从第29字节开始才是messager所接受的内容。以下简称消息包,消息包前80个字节为消息包头,当中第41到44字节为长整型变量,存放发送时间,第75到78字节为长整型,存放整个消息包-消息包头的大小。接下来3个域,每个域头大小12个字节,前4个和后4个字节(长整型)都为该域的大小(分配大小取偶),第一个域表示发送主机名,第二个表示接受主机名,第三个表示内容。*/

|=====20======|====8====|=========80============|=12=|from|=12=|to|=12=| 消息

///////////////////////////////////////////////////////////////////////
直接采用socket udp协议,发送消息无法隐藏自己的ip,别人用网络工具可查到你
的ip,如果前28个字节都自己加工,采用原始套接字方式进行发送,伪装了ip,不怕
查ip;^_^!
--------------------next---------------------

请问zw84611,你是如何知道Win2k Server的信使用的是TCP(139端口)的?
我很想搞清楚信使服务到底用的是什么端口。 ( James09 发表于 2004-5-5 9:59:00)
 
看不懂,,, ( cero 发表于 2004-1-16 13:59:00)
 
对Win2k Server不起作用。Win2k Server的信使用的是TCP(139端口)
( zw84611 发表于 2004-1-3 19:07:00)
 
windows新版本中将禁止使用信使服务了
就是因为用这个功能发消息的人太多了 ( ccart 发表于 2003-12-17 14:06:00)
 
winxp,不行呀 ( sander 发表于 2003-12-17 11:44:00)
 
微软messenger服务拒绝服务Exploit修改版
( Binny 发表于 2003-12-17 11:15:00)
 
hmsxq:static unsigned char packet_header[] =
"\x04\x00\x28\x00"
"\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\xf8\x91\x7b\x5a\x00\xff\xd0\x11\xa9\xb2\x00\xc0"
"\x4f\xb6\xe6\xfc"
"\xff\xff\xff\xff" // @40 : unique id over 16 bytes ?
"\xff\xff\xff\xff"
"\xff\xff\xff\xff"
"\xff\xff\xff\xff"
"\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\xff\xff\xff\xff"
"\xff\xff\xff\xff" // @74 : fields length
"\x00\x00";

这个数组是什么意思呀
( Binny 发表于 2003-12-17 11:10:00)
 
static unsigned char packet_header[] =
"\x04\x00\x28\x00"
"\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\xf8\x91\x7b\x5a\x00\xff\xd0\x11\xa9\xb2\x00\xc0"
"\x4f\xb6\xe6\xfc"
"\xff\xff\xff\xff" // @40 : unique id over 16 bytes ?
"\xff\xff\xff\xff"
"\xff\xff\xff\xff"
"\xff\xff\xff\xff"
"\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\xff\xff\xff\xff"
"\xff\xff\xff\xff" // @74 : fields length
"\x00\x00";

这个数组是什么意思呀 ( hmsxq 发表于 2003-12-16 20:33:00)
 
good! ( cool_ice 发表于 2003-12-16 13:09:00)
 
很好。 ( wuhuaqiang 发表于 2003-12-16 10:49:00)
 
.......................................................

--------------------next---------------------


阅读(353) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~