• 大小: 0.38M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: 其他  

资源简介

VS2008CWinpcap网络嗅探器(中科院课设).rar

资源截图

代码片段和文件信息

#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;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     238080  2009-10-25 23:41  网络攻击与防范实验报告.doc

     文件     223232  2009-10-25 23:43  YGSniffer.exe

     文件       2939  2009-10-16 02:00  YGSniffer\YGSniffer\MyWinPcap.cpp

     文件        629  2009-10-15 17:35  YGSniffer\YGSniffer\MyWinPcap.h

     文件       4058  2009-10-14 13:32  YGSniffer\YGSniffer\ReadMe.txt

     文件      67777  2007-11-28 16:21  YGSniffer\YGSniffer\res\YGSniffer.ico

     文件        400  2009-10-14 13:32  YGSniffer\YGSniffer\res\YGSniffer.rc2

     文件       2881  2009-10-25 21:46  YGSniffer\YGSniffer\resource.h

     文件        211  2009-10-14 13:32  YGSniffer\YGSniffer\stdafx.cpp

     文件       2175  2009-10-17 12:10  YGSniffer\YGSniffer\stdafx.h

     文件       5143  2009-10-24 09:59  YGSniffer\YGSniffer\StructFile.h

     文件       1469  2009-10-14 17:22  YGSniffer\YGSniffer\targetver.h

     文件     110440  2009-10-25 21:47  YGSniffer\YGSniffer\YGSniffer.aps

     文件       2129  2009-10-25 21:44  YGSniffer\YGSniffer\YGSniffer.cpp

     文件        526  2009-10-14 13:32  YGSniffer\YGSniffer\YGSniffer.h

     文件       9465  2009-10-25 21:47  YGSniffer\YGSniffer\YGSniffer.rc

     文件       6031  2009-10-24 16:12  YGSniffer\YGSniffer\YGSniffer.vcproj

     文件       1421  2009-10-24 20:24  YGSniffer\YGSniffer\YGSniffer.vcproj.INTERNAL.yangliang.user

     文件       1407  2009-10-25 23:43  YGSniffer\YGSniffer\YGSniffer.vcproj.YOUNG.yanggang.user

     文件      34882  2009-10-25 21:46  YGSniffer\YGSniffer\YGSnifferDlg.cpp

     文件       4502  2009-10-25 21:46  YGSniffer\YGSniffer\YGSnifferDlg.h

     文件        893  2009-10-14 13:32  YGSniffer\YGSniffer.sln

    ..A..H.    173056  2009-10-25 23:43  YGSniffer\YGSniffer.suo

     目录          0  2009-10-24 20:44  YGSniffer\YGSniffer\res

     目录          0  2009-10-25 23:43  YGSniffer\YGSniffer

     目录          0  2009-10-25 23:45  YGSniffer

----------- ---------  ---------- -----  ----

               893746                    26


评论

共有 条评论