亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snifferdlg.cpp

?? sniffer program for serial
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// SnifferDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Sniffer.h"
#include "SnifferDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


inline CString GetNiceString(LPCTSTR pString)
{
	const int numDots = 40 - _tcslen(pString);

	CString dotString(_T('.'),numDots);


	CString s = CString(pString) + dotString + CString(_T(" "));

	return s;
}


// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	enum { IDD = IDD_ABOUTBOX };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

// Implementation
protected:
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()


// CSnifferDlg dialog



CSnifferDlg::CSnifferDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSnifferDlg::IDD, pParent)
	, m_SelInterface(_T(""))
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

	Init();
}

void CSnifferDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_CMB_INTERFACES, m_CmbInterfaces);
	DDX_Control(pDX, IDC_FRM_INTERFACES, m_FrmInterfaces);
	DDX_Control(pDX, IDC_STARTSNIFFING, m_BtnStartSniffing);
	DDX_Control(pDX, IDC_TV_PACKETS, m_TVPackets);
}

BEGIN_MESSAGE_MAP(CSnifferDlg, CDialog)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_STARTSNIFFING, OnBnClickedStartsniffing)
	ON_WM_CLOSE()
END_MESSAGE_MAP()


// CSnifferDlg message handlers

BOOL CSnifferDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// TODO: Add extra initialization here
	for ( int i = 0 ; i < m_Interfaces.GetSize(); i ++ )
	{
		m_CmbInterfaces.AddString( m_Interfaces.GetAt(i) );
	}

	m_CmbInterfaces.SetCurSel( 0 );

	m_IL.Create(16,16,ILC_COLOR32 | ILC_MASK, 0,1);

	m_IL.Add( LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_COMP2COMP ) ) );
	m_IL.Add( LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_IPHeader ) ) );
	m_IL.Add( LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TCPHEADER ) ) );

	m_TVPackets.SetImageList( &m_IL,TVSIL_NORMAL );

//	ShowWindow( SW_SHOWMAXIMIZED );
	ResizeForm();

	LOGFONT logFont;
	CFont* pFont = new CFont();

	RtlZeroMemory( &logFont, sizeof(logFont) );

	_tcscpy(logFont.lfFaceName, _T("Lucida Console"));
	logFont.lfHeight = 12;

	pFont->CreateFontIndirect( &logFont );

	m_TVPackets.SetFont( pFont, TRUE );
	



	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CSnifferDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CSnifferDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this function to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CSnifferDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

// Starts the sniffing process
bool CSnifferDlg::StartSniffing(void)
{
	SOCKET        s = INVALID_SOCKET;
	WSABUF        wbuf = {0};
	DWORD         dwBytesRet = 0, dwFlags = 0;
	unsigned int  optval = 0;
	char         *rcvbuf=NULL;
	int           rc = 0, err;


	
	if ( m_ulFilterMask & (FILTER_MASK_SOURCE_ADDRESS | FILTER_MASK_SOURCE_PORT) )
	{
		printf("Source address filter     : ");
		//PrintAddress((SOCKADDR *)&m_saSourceAddress, sizeof(m_saSourceAddress));
		printf("\n");
	}
	if ( m_ulFilterMask & (FILTER_MASK_DESTINATION_ADDRESS | FILTER_MASK_DESTINATION_PORT) )
	{
		printf("Destination address filter: ");
		//PrintAddress((SOCKADDR *)&g_saDestinationAddress, sizeof(g_saDestinationAddress));
		printf("\n");
	}

	//
	// Create a raw socket for receiving IP datagrams
	//
	s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED);
	if (s == INVALID_SOCKET)
	{
		printf("WSASocket() failed: %d\n", WSAGetLastError());
		return false;
	}

	//
	// This socket MUST be bound before calling the ioctl
	//

	sockaddr_in sa;
	sa.sin_family = AF_INET;
	sa.sin_addr.s_addr = inet_addr(m_SelInterface);
	sa.sin_port = INADDR_ANY;//htons(7000);

	rc = bind(s, (SOCKADDR *)&sa, sizeof(sa));
	if (rc == SOCKET_ERROR)
	{
		printf("bind() failed: %d\n", WSAGetLastError());
		if (INVALID_SOCKET != s)
		{
			closesocket(s);
			s = INVALID_SOCKET;
		}
		WSACleanup();
		return false;
	}
	printf("Binding to: ");
	//PrintAddress((SOCKADDR *)&g_saLocalInterface, sizeof(g_saLocalInterface));
	printf("\n");

	//
	// Set the SIO_RCVALLxxx ioctl
	//
	optval = 1;
	rc = WSAIoctl(s, SIO_RCVALL, &optval, sizeof(optval),
		NULL, 0, &dwBytesRet, NULL, NULL);
	if (rc == SOCKET_ERROR)
	{
		printf("WSAIotcl(0x%x) failed: %d\n", SIO_RCVALL,
			(err = WSAGetLastError()));
		if (err == WSAEINVAL)
		{
			printf("NOTE: IPv6 does not currently support the SIO_RCVALL* ioctls\n");
		}

		if (INVALID_SOCKET != s)
		{
			closesocket(s);
			s = INVALID_SOCKET;
		}
		WSACleanup();
		return false;
	}

	//
	// Allocate a buffer for receiving data
	//
	rcvbuf = (char *)HeapAlloc(GetProcessHeap(), 0, MAX_IP_SIZE);
	if (rcvbuf == NULL)
	{
		fprintf(stderr, "HeapAlloc failed: %d\n", GetLastError());
		if (INVALID_SOCKET != s)
		{
			closesocket(s);
			s = INVALID_SOCKET;
		}
		WSACleanup();
		return false;
	}

	//
	// Start receiving IP datagrams until interrupted
	// 
	while ( !m_bExit )
	{
		wbuf.len = MAX_IP_SIZE;
		wbuf.buf = rcvbuf;
		dwFlags  = 0;

		rc = WSARecv(s, &wbuf, 1, &dwBytesRet, &dwFlags, NULL, NULL);
		if (rc == SOCKET_ERROR)
		{
			printf("WSARecv() failed: %d\n", WSAGetLastError());
			break;
		}

		DecodePacket(rcvbuf , dwBytesRet );


	}
	//
	// Cleanup
	//

	if (rcvbuf) 
		HeapFree(GetProcessHeap(), 0, rcvbuf);

	if (INVALID_SOCKET != s)
	{
		closesocket(s);
		s = INVALID_SOCKET;
	}
	WSACleanup();

	return true;
}

bool CSnifferDlg::Init(void)
{
	try
	{
		m_bExit = false;
		m_hThread = NULL;
		m_dwThreadID = 0;

		m_ulFilterMask = 0;

		m_Logger.Open( _T("Logger.txt"),CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone);

		int           rc = 0;
		WSADATA       wsd;
		//
		// Load Winsock
		//
		if ((rc = WSAStartup(MAKEWORD(2,2), &wsd)) != 0)
		{
			printf("WSAStartup() failed: %d\n", rc);
			return false;
		}

		GetInterfaces( m_Interfaces );


		return true;
	}
	catch(...)
	{
		return false;
	}

}

// Decodes the packet
bool CSnifferDlg::DecodePacket(char* pData, DWORD dwSize)
{

	try
	{
	
		if (dwSize < sizeof(char))
			return false;
		
		// Check the IP version
		const int ip_version = HI_BYTE(*pData);
		
		CString source, destination;

		if ( ip_version == 4)
		{
			IPV4_HDR* pHeader;
			int headerLen = 0;

		
			// Verify the buffer is large enough
			if (dwSize  < sizeof(IPV4_HDR))
				return false;
			
			// Get length of IPv4 header to determine where next protocol header begins
			headerLen = LO_BYTE(*pData) * 4;
			
			pHeader = (IPV4_HDR *)pData;

			ConvertAddress( pHeader->ip_srcaddr, source );
			ConvertAddress( pHeader->ip_destaddr, destination);

			switch (pHeader->ip_protocol)
			{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩二区三区在线观看| 午夜激情一区二区三区| 欧美日韩国产精品成人| 国产做a爰片久久毛片| 亚洲精品国产无套在线观| 欧美xxxx老人做受| 色婷婷综合久久久久中文一区二区| 免费精品视频在线| 亚洲精品国产第一综合99久久| 久久先锋影音av| 欧美一区二区性放荡片| 91蜜桃在线免费视频| 国产福利一区二区三区视频| 亚洲大片免费看| 自拍偷在线精品自拍偷无码专区 | 国产在线日韩欧美| 亚洲国产视频一区二区| 亚洲视频电影在线| 中文欧美字幕免费| 久久久午夜电影| 欧美一区二区三区视频免费播放| 色久优优欧美色久优优| 99久久99久久精品国产片果冻| 国产麻豆精品在线观看| 久久不见久久见免费视频7| 日韩经典中文字幕一区| 亚洲午夜免费电影| 亚洲免费在线视频一区 二区| 国产欧美日韩不卡| 欧美电影免费观看高清完整版在线| 欧美午夜精品一区二区三区| 色婷婷国产精品综合在线观看| 不卡高清视频专区| av中文字幕在线不卡| 丁香婷婷深情五月亚洲| 久久丁香综合五月国产三级网站| 亚洲v日本v欧美v久久精品| 国产精品网站一区| 中文字幕精品在线不卡| 欧美韩国日本一区| 欧美国产精品专区| 国产精品久久久久久亚洲伦 | 亚洲色图清纯唯美| 亚洲人妖av一区二区| 中文字幕一区二区在线观看| 中文字幕一区av| 亚洲欧美日韩在线不卡| 亚洲一区二区三区四区在线| 亚洲成a人v欧美综合天堂| 日韩中文字幕亚洲一区二区va在线 | 欧美中文字幕一二三区视频| 色狠狠色噜噜噜综合网| 欧美日韩视频专区在线播放| 欧美日韩免费电影| 欧美一区二区精美| 久久综合九色综合欧美亚洲| 国产三级精品三级| 国产精品污网站| 亚洲一区在线视频| 日本va欧美va欧美va精品| 国产一区二区三区美女| 国产成人精品免费看| 92国产精品观看| 欧美三级韩国三级日本一级| 日韩女优电影在线观看| 国产三级精品在线| 日韩视频不卡中文| 亚洲精品国产高清久久伦理二区| 精品少妇一区二区三区日产乱码| 欧美在线观看一二区| 91国偷自产一区二区开放时间 | 91精品国产一区二区三区蜜臀| 99久久婷婷国产综合精品 | 欧美一区二区三区视频| 国产清纯白嫩初高生在线观看91 | 久久97超碰国产精品超碰| 丰满少妇在线播放bd日韩电影| 99精品视频一区二区三区| 天堂久久久久va久久久久| 9i看片成人免费高清| 欧美日韩中字一区| 欧美国产日韩a欧美在线观看| 国产精品欧美极品| 亚洲午夜激情av| 国产精品中文字幕欧美| 色美美综合视频| 欧美videos中文字幕| 亚洲女与黑人做爰| 国内精品伊人久久久久av影院 | 欧美成人午夜电影| 中文字幕字幕中文在线中不卡视频| 亚洲尤物视频在线| 国产精品影视网| 欧美日韩不卡一区二区| 国产欧美精品一区二区色综合| 一区二区免费视频| 国产福利一区二区三区视频| 欧美丰满少妇xxxxx高潮对白| 中文字幕第一区| 亚洲国产视频在线| 99视频超级精品| 26uuu亚洲综合色欧美| 亚洲欧美另类久久久精品2019| 欧美亚一区二区| 日本强好片久久久久久aaa| 天堂成人免费av电影一区| 免费高清视频精品| 在线观看www91| 国产精品理论在线观看| 日本欧美一区二区在线观看| 91免费观看在线| 国产亚洲成年网址在线观看| 久久成人av少妇免费| 欧美日韩一区二区在线观看视频| 国产精品视频看| 狠狠色狠狠色综合系列| 日韩一区二区免费电影| 午夜日韩在线观看| 在线免费观看日本欧美| 中文字幕一区二区三区视频| 国产成人自拍高清视频在线免费播放| 欧美一区二区三区在线观看| 五月婷婷色综合| 欧美日韩一卡二卡三卡| 亚洲午夜三级在线| 欧美性色黄大片手机版| 亚洲免费观看高清在线观看| 成av人片一区二区| 国产精品午夜在线| 国产成人免费9x9x人网站视频| 欧美zozo另类异族| 偷窥少妇高潮呻吟av久久免费| 国产调教视频一区| 欧美三级三级三级爽爽爽| 91麻豆精品国产| 日韩av电影免费观看高清完整版 | 久久久久久久久99精品| 精品在线免费观看| 亚洲精品一区二区精华| 久久精品国内一区二区三区| 欧美一区二区三区在线| 免费看日韩a级影片| 欧美电影免费观看完整版| 免费成人深夜小野草| 欧美一区二区三区婷婷月色| 免费在线观看日韩欧美| 日韩免费福利电影在线观看| 日韩vs国产vs欧美| 欧美肥胖老妇做爰| 麻豆91在线播放| 26uuu久久天堂性欧美| 国产精品综合久久| 国产精品丝袜久久久久久app| av福利精品导航| 亚洲伦理在线精品| 欧美日本视频在线| 毛片基地黄久久久久久天堂| 久久久久国产精品厨房| 不卡视频在线看| 一区二区三区四区精品在线视频| 中文字幕制服丝袜成人av| 亚洲线精品一区二区三区 | 国产精选一区二区三区| 国产欧美一区二区精品性色| 99这里只有精品| 亚洲一二三四在线| 日韩精品一区二区三区三区免费| 国产在线国偷精品产拍免费yy| 国产精品第四页| 精品1区2区3区| 国产传媒日韩欧美成人| 亚洲一区二区综合| 精品久久国产老人久久综合| 成人爱爱电影网址| 午夜不卡av免费| 久久精品在线观看| 欧美性色黄大片| 国产精品一区二区三区乱码| 亚洲欧美另类综合偷拍| 91精品国产手机| 99久久伊人久久99| 免费日本视频一区| 国产精品久久久久久户外露出| 欧美天堂亚洲电影院在线播放| 另类成人小视频在线| 亚洲精品久久久蜜桃| 久久色在线观看| 精品视频免费看| 成人一区二区三区中文字幕| 日日骚欧美日韩| 亚洲视频中文字幕| 久久这里只精品最新地址| 欧美亚洲丝袜传媒另类| 国产精品99久久久久久久女警| 亚洲成人www| 亚洲男女毛片无遮挡| 日本一区二区三级电影在线观看| 欧美日韩高清一区二区三区| 成人av动漫网站| 久久丁香综合五月国产三级网站|