• 大小: 20.52MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-09
  • 语言: C/C++
  • 标签: winpcap  VC++  

资源简介

本资源包括基于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.embed.manifest

     文件       1260  2012-10-21 14:43  201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\PackageSniffer.exe.embed.manifest.res

     文件       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.embed.manifest

     文件       1260  2012-10-20 09:39  201228015029026_汪正康_实验一\YGSniffer\YGSniffer\Debug\YGSniffer.exe.embed.manifest.res

     文件       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个文件信息

评论

共有 条评论