资源简介
本资源包括基于winpcap的网络嗅探器源码,可执行文件还有设计文档。系统用Visual MFC C++开发,可监听网络数据包,过滤数据包等。
代码片段和文件信息
#include “StdAfx.h“
#include “MyWinPcap.h“
// file process
MyWinPcap::MyWinPcap(void):m_iCurNo(0)
{
//使用GetModuleFileName获取应用程序路径
TCHAR szModuleName[MAX_PATH];
::GetModuleFileName(NULLszModuleNameMAX_PATH);
CString strDir = szModuleName;
strDir = strDir.Left(strDir.ReverseFind(TEXT(‘\\‘))); // Left() -> Extracts the leftmost nCount characters from this CStringT object and returns a copy of the extracted substring
CString fileData;
fileData.Format(TEXT(“%s\\packet.dmp“)strDir);
m_pfileData = new CFile(fileDataCFile::modeCreate|CFile::modeReadWrite); //create or write data(packet) file
CString fileIndex;
fileIndex.Format(TEXT(“%s\\packet.idx“)strDir);
m_pfileIndex = new CFile(fileIndexCFile::modeCreate|CFile::modeReadWrite); //create or write index(packet) file
}
MyWinPcap::~MyWinPcap(void)
{
if(m_pfileData)
{
m_pfileData->Close();
delete m_pfileData;
m_pfileData = NULL; // safer
}
if(m_pfileIndex)
{
m_pfileIndex->Close();
delete m_pfileIndex;
m_pfileIndex = NULL;
}
}
// Append packet
void MyWinPcap::AppendPacket(packet *pkt)
{
const pcap_pkthdr *header = pkt->header;
const u_char *data = pkt->pkt_data;
++m_iCurNo;
packet_index index;
index.no = m_iCurNo;
index.pos = m_pfileData->GetPosition();
index.len = sizeof(pcap_pkthdr) + header->len;
m_pfileIndex->SeekToEnd();
m_pfileIndex->Write(&indexsizeof(packet_index));
m_pfileData->SeekToEnd();
m_pfileData->Write(headersizeof(pcap_pkthdr));
m_pfileData->Write(dataheader->len);
m_pfileIndex->Flush(); // write from memory to disk immediatly
m_pfileData->Flush();
}
// Get packet
packet * MyWinPcap::GetPacket(int m_iNo)
{
int iPos = (m_iNo-1)*sizeof(packet_index);
packet_index pIndex;
m_pfileIndex->Seek(iPosCFile::begin);
m_pfileIndex->Read(&pIndexsizeof(packet_index));
m_pfileData->Seek(pIndex.posCFile::begin);
byte *buffer = new byte[pIndex.len];
m_pfileData->Read(bufferpIndex.len);
packet *pkt = new packet();
pkt->header = (pcap_pkthdr *)buffer;
pkt->pkt_data = (u_char *)(buffer+sizeof(pcap_pkthdr));
return pkt;
}
// ============= self function =============
// 返回本机所有的网卡
pcap_if_t * MyWinPcap::GetAdapterList(void )
{
/* Retrieve the device list from the local machine */
char errbuf[PCAP_ERRBUF_SIZE];
pcap_if_t * m_alldevs = new pcap_if_t(); // ?????? allocate memory to sava temp all-devs ?????
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING NULL /* auth is not needed */ &m_alldevs errbuf) == -1) // if error
{
CString errmsg;
USES_CONVERSION;
errmsg.Format(TEXT(“Error in cap_finalldevs_ex(): %s\n“)A2W(errbuf));
AfxMessageBox(errmsg);
return NULL;
}
else if(NULL == m_alldevs)
{
AfxMessageBox(TEXT(“No interfaces found! Make sure WinPcap is installed...“));
return NULL;
}
else
return m_alldevs;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 220160 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\Debug\PackageSniffer.exe
文件 1190032 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\Debug\PackageSniffer.ilk
文件 3599360 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\Debug\PackageSniffer.pdb
文件 0 2012-10-21 14:54 201228015029026_汪正康_实验一\YGSniffer\Debug\packet.dmp
文件 0 2012-10-21 14:54 201228015029026_汪正康_实验一\YGSniffer\Debug\packet.idx
文件 6966272 2012-10-21 14:54 201228015029026_汪正康_实验一\YGSniffer\PackageSniffer.ncb
文件 893 2009-10-14 13:32 201228015029026_汪正康_实验一\YGSniffer\PackageSniffer.sln
..A..H. 179712 2012-10-21 14:54 201228015029026_汪正康_实验一\YGSniffer\PackageSniffer.suo
文件 5932 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\BuildLog.htm
文件 65 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\mt.dep
文件 25506 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\MyWinPcap.obj
文件 1196 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\PackageSniffer.exe.em
文件 1260 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\PackageSniffer.exe.em
文件 1120 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\PackageSniffer.exe.intermediate.manifest
文件 28573696 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\PackageSniffer.pch
文件 443226 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\stdafx.obj
文件 1043456 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\vc90.idb
文件 2330624 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\vc90.pdb
文件 1196 2012-10-20 09:39 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.exe.em
文件 1260 2012-10-20 09:39 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.exe.em
文件 1120 2012-10-20 09:45 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.exe.intermediate.manifest
文件 24572 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.obj
文件 28573696 2012-10-20 09:39 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.pch
文件 71484 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.res
文件 343250 2012-10-21 14:43 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSnifferDlg.obj
文件 2939 2009-10-16 02:00 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\MyWinPcap.cpp
文件 629 2009-10-15 17:35 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\MyWinPcap.h
文件 4058 2009-10-14 13:32 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\ReadMe.txt
文件 67777 2007-11-28 16:21 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\res\YGSniffer.ico
文件 400 2009-10-14 13:32 201228015029026_汪正康_实验一\YGSniffer\YGSniffer\res\YGSniffer.rc2
............此处省略32个文件信息
相关资源
- 基于VC++和OpenGL实现的IGM机器人手臂三
- VC++ 一个非常经典的界面
- 《学VC编传奇游戏》.rar
- 基于VC++的邮件收发系统
- VC++案例精编很好的
- MFC 学生管理系统
- VC++6.0+sql server,学院通讯录管理系统
- VC++ USB及串口通信工程源码
- Visual C++ 6.0完整绿色版
- Devc++ 5.6.1 绿色版
- SQLAPI++4.1.11 crack for vc++(全面破解版)
- 简单易用QR二维码生成源码 VC++2015 编
- 算法I~IVC++实现——基础、数据结构
- Windows下双屏各种设置的VC++实现(完整
- 算法I-IVC++
- 基于opencv的图像检索算法
- 杨淑英VC++图像处理程序设计配套光盘
- 物流管理系统SQL+VC++毕业设计论文
- 计算机图形学基础教程Visual C++版 孔令
- VC++数字图像处理
- VC++串口modbus测试工程
- Visual C++视频会议开发技术与源码.ra
- VC数字图像处理杨淑莹北京交通大学
- VC++实现浏览器
- 《Visual C++ 6.0 用户界面制作技术与应
- 计算机图形学+配书源代码
- VC++2017 64位
- vc++ MFC 背单词软件毕业设计系统源代
- msdn for vc++6.0
- VC++2010番茄西红柿VAXvirsual assist X完美
评论
共有 条评论