#include <afxsock.h>
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#include <ras.h>
#include <raserror.h>
#pragma comment(lib, "rasapi32.lib")
#include <WinInet.h>
#pragma comment(lib, "WinInet.LIB")
#include <Dlgs.h>
#pragma comment(lib,"vfw32.lib")
#pragma comment(lib,"winmm.lib")
#define MAX_HOSTNAME_LAN 255
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define MAX_ADDR_LEN 16
struct ipheader {
unsigned char ip_hl:4, ip_v:4; /* this means that each member is 4 bits */
unsigned char ip_tos;
unsigned short int ip_len;
unsigned short int ip_id;
unsigned short int ip_off;
unsigned char ip_ttl;
unsigned char ip_p;
unsigned short int ip_sum;
unsigned int ip_src;
unsigned int ip_dst;
}; /* total ip header length: 20 bytes (=160 bits) */
typedef struct udphdr {
unsigned short sport;
unsigned short dport;
unsigned short len;
unsigned short cksum;
}UDP_HDR;
void main()
{
SOCKET sock;
WSADATA wsd;
DWORD dwBytesRet;
unsigned int optval = 1;
unsigned char *dataudp,*pUdpData;
int QQ,iUdpDataLen;
SOCKADDR_IN sa,saSource, saDest;
struct hostent FAR * pHostent;
char FAR name[MAX_HOSTNAME_LAN];
char szSourceIP[MAX_ADDR_LEN],RecvBuf[65535] = {0};
struct udphdr *pUdpheader;
struct ipheader *pIpheader;
WSAStartup(MAKEWORD(2,1),&wsd);
if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP))==SOCKET_ERROR)exit(1);
gethostname(name, MAX_HOSTNAME_LAN);
pHostent = gethostbyname(name);
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);
bind(sock, (SOCKADDR *)&sa, sizeof(sa));
if ((WSAGetLastError())==10013)exit(1);
WSAIoctl(sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
pIpheader = (struct ipheader *)RecvBuf;
pUdpheader = (struct udphdr *) (RecvBuf+ sizeof(struct ipheader ));
printf("QQ sniffer V1.1 code powerd by cooldiyer/r/n");
while (1)
{
memset(RecvBuf, 0, sizeof(RecvBuf));
recv(sock, RecvBuf, sizeof(RecvBuf), 0);
saSource.sin_addr.s_addr = pIpheader->ip_src;
strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);
iUdpDataLen =(ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr)));
if((pIpheader->ip_p)==IPPROTO_UDP&&iUdpDataLen!=0)
{
pUdpData=(unsigned char *) RecvBuf+sizeof(struct ipheader)+sizeof(struct udphdr);
iUdpDataLen=ntohs(pIpheader->ip_len)-(sizeof(struct ipheader)+sizeof(struct udphdr));
if(ntohs(pUdpheader->dport)==8000)
if(iUdpDataLen%4==0 && iUdpDataLen>0)
if(pUdpData[0]==0x02 && pUdpData[3]==0x00 && pUdpData[iUdpDataLen-1]==0x03)
{
QQ = (pUdpData[7]&0xff);
QQ = (QQ<<8) + (pUdpData[8]&0xff);
QQ = (QQ<<8) + (pUdpData[9]&0xff);
QQ = (QQ<<8) + (pUdpData[10]&0xff);
printf("IP:%s QQ:%d/r",szSourceIP,QQ);
}
}
}
}
需要源码的请留下E-mail,我给你们发
分享到:
相关推荐
VC++实现网络嗅探器.pdf
QQSniffer QQ嗅探器 QQ局域网嗅探 局域网嗅探QQ号 实现局域网嗅探QQ号 此嗅探器只能在支技RAW SOCKET的机器上运行,而且还得是非交换机的局域网内,可以嗅到整个局域网内的QQ号。 代码原创:cooldiyer。
在调试状态下,在Output窗口中输出监测信息,监测局域网信息
VC++编程实现网络嗅探器 sniffer 的源代码
用vc++写的一个嗅探器.使用WinPcap开发包,嗅探流过网卡的数据并智能分析过滤,快速找到所需要的网络信息。
局域网嗅探工具 软件很小 但是功能还不错
Kali局域网嗅探和断网拦截
一个不错的局域网嗅探软件LanExplorer1.67 绿色版
vc++ 局域网扫描 (反)嗅探 欺骗 攻击程序
很好用的一款局域网嗅探工具,对于查找局域网内计算机很有用处。
最好的局域网搜索软件。 1.方便快捷地搜索、浏览局域网资源。多线程搜索局域网上所有的工作组、主机、打印机、共享文件。 2.可以按照网上邻居、工作组或者按照IP地址段自动搜索所有共享的mp3、电影或自定义搜索的...
局域网嗅探rawsniffer工具,最快,最好
VC++网络嗅探器源码,VC++网络嗅探器源码
由VC++实现的简单的网络包捕抓并分析,供初学者学习
目前比较常用的局域网工具,能嗅探出局域网内用户的操作。
根据前面的设计思路,不难写出网络嗅探器的实现代码,下面就给出一个简单的示例,该示例可以捕获到所有经过本地网卡的数据包,并可从中分析出协议、IP源地址、IP目标地址、TCP源端口号、TCP目标端口号以及数据包...
VC++编程实现网络嗅探器[总结].pdf
局域网嗅探器Sniffer C++开源代码,如果电脑中有多个网卡或虚拟网卡,软件中有可供选择的按钮,按下没有反应说明网卡选择错误,可以选择别的网卡继续嗅探,最大可支持选择网卡有6个。