使用python来嗅探局域网内的QQ号码
来源:互联网 发布:数据记录器 编辑:程序博客网 时间:2024/05/23 19:14
使用python来嗅探局域网内的QQ号码
增加了一个令牌的判断,可以抓新版本的QQ和老版本的QQ包了.
因为朋友们说这个程序已经无法捕捉到最新的QQ登陆包了,所以修改了一下.因为时间关系,我没有修改本文的其他部分,仅仅修改了代码.
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。
2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。
[code]
# -*- coding: cp936 -*-
import pcap ,struct
pack=pcap.pcap()
pack.setfilter('udp')
key=''
for recv_time,recv_data in pack:
recv_len=len(recv_data)
if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):
print struct.unpack('>I',recv_data[49:53])[0]
print '登陆了'
elif recv_len == 55:
print struct.unpack('>I',recv_data[49:53])[0]
print '登陆了'
[/code]
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-
好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。
这里付上我的抓屏结果
[code]D:/socket-qq>;sniffer-QQ.py
278333853
12345
1234567890
1234567890
1234567890
278333853
1234567890
1234567890
278333853
278333853[/code]
利用的什么原理呢。
QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
如果还有什么疑问,请大家跟贴。
引自:http://blog.csdn.net/meijingsong/article/details/1567127
增加了一个令牌的判断,可以抓新版本的QQ和老版本的QQ包了.
因为朋友们说这个程序已经无法捕捉到最新的QQ登陆包了,所以修改了一下.因为时间关系,我没有修改本文的其他部分,仅仅修改了代码.
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。
2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。
[code]
# -*- coding: cp936 -*-
import pcap ,struct
pack=pcap.pcap()
pack.setfilter('udp')
key=''
for recv_time,recv_data in pack:
recv_len=len(recv_data)
if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):
print struct.unpack('>I',recv_data[49:53])[0]
print '登陆了'
elif recv_len == 55:
print struct.unpack('>I',recv_data[49:53])[0]
print '登陆了'
[/code]
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-
好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。
这里付上我的抓屏结果
[code]D:/socket-qq>;sniffer-QQ.py
278333853
12345
1234567890
1234567890
1234567890
278333853
1234567890
1234567890
278333853
278333853[/code]
利用的什么原理呢。
QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
如果还有什么疑问,请大家跟贴。
引自:http://blog.csdn.net/meijingsong/article/details/1567127
- 使用python来嗅探局域网内的QQ号码
- 局域网内QQ号码的嗅探
- 用python来嗅探QQ号码
- 如何消除局域网内使用QQ后带来的安全隐患
- 同一局域网内怎样获取新来美眉QQ号码!((*^__^*) 嘻嘻……)
- QQ号码的基本知识
- 局域网内QQ代理设置
- python 获取局域网内的广播地址
- DirectoryEntry的使用 局域网内的计算机
- 如何使用C#实现QQ号码的申请
- 如何使用C#实现QQ号码的申请
- pcAnywhere在局域网内的使用图解
- pcAnywhere在局域网内的使用图解
- winpcap编程之局域网QQ号码嗅探
- VC++在局域网基于winpcap实现QQ号码IP嗅探
- 局域网内尝试封锁QQ直播
- 使用notepad++ 将QQ号码批量转换成QQ邮箱的方法
- Python实现局域网内屏幕广播的技术要点分析
- how to trouble shoot thread hangs
- js操作DropDownList
- 框架frame\frameset\iframe的区别
- OracleParameter 详解
- Android 键盘相关一
- 使用python来嗅探局域网内的QQ号码
- 十四周任务2
- 使用Python访问Windows的注册表
- 我的站长之路(1)
- APIO2012第一题 Dispatching 派遣
- linux网络参数设置_CentOS6.2
- 在JavaScript中调用Flex方法
- php-Arrays 函数-array_pad-用值将数组填补到指定长度
- https://github.com/havlenapetr/FFMpeg/issues/30