資源簡介
局域網(wǎng)內(nèi)dns欺騙的實現(xiàn)代碼,已經(jīng)實現(xiàn),可以直接運行使用。

代碼片段和文件信息
//?PcapTest.cpp?:?Defines?the?entry?point?for?the?console?application.
#include?“stdio.h“
#include?“pcap.h“
#include?“remote-ext.h“
#include?“winsock.h“
#include?
void?packet_hander(u_char?*paramconst?struct?pcap_pkthdr?*headerconst?u_char?*pkt_data);
//4字節(jié)的IP地址
typedef?struct?ip_address
{
u_char?byte1;
u_char?byte2;
u_char?byte3;
u_char?byte4;
}ip_address;
//IP包頭
typedef?struct?ip_header?
{
u_char?ver_ihl;????//版本?4bit?+?首部長度?4bit
u_char?tos;?????//服務(wù)類型
u_short?tlen;????//總長度
u_short?identification;??
u_short?flags_fo;
u_char?ttl;????//存活時間?time?to?live
u_char?proto;??//協(xié)議
u_short?crc;
ip_address?saddr;
ip_address?daddr;
}ip_header;
//TCP包頭部結(jié)構(gòu)
typedef?struct?tcp_header?{
WORD?SourPort;
WORD?DestPort;
DWORD?SeqNo;
DWORD?AckNo;
BYTE?Hlen;
BYTE?Flag;
WORD?WndSize;
WORD?ChkSum;
WORD?UrgPtr;
}tcp_header;
//TCP偽首部
typedef?struct?tcp_pseheader?
{
ip_address?saddr;
ip_address?daddr;
u_char?placeholder;
u_char?proto;
WORD?tcplength;
}tcp_pseheader;
//UDP頭部結(jié)構(gòu)
typedef?struct?udp_header?
{
u_short?sport;?//源端口
u_short?dport;?//目的端口
u_short?len;
u_short?crc;
}udp_header;
//UDP偽首部
typedef?struct?psd
{
ip_address?saddr;
ip_address?daddr;
char???????????mbz;
char???????????ptcl;
unsigned?short?udpl;
}PSD*PPSD;
//DNS結(jié)構(gòu)
typedef?struct?dns
{
unsigned?short?id;
unsigned?short?flags;
unsigned?short?quests;
unsigned?short?answers;
unsigned?short?author;
unsigned?short?addition;
}DNS*PDNS;
//DNS問題結(jié)構(gòu)
typedef?struct?query
{
unsigned?short?type;
unsigned?short?classes;
}QUERY*PQUERY;
//DNS回答結(jié)構(gòu)
typedef?struct?response
{
unsigned?short?name;?
unsigned?short?type;
unsigned?short?classes;
unsigned?short?ttl1;
unsigned?short?ttl2;
unsigned?short?length;
unsigned?short?addr1;
unsigned?short?addr2;
}RESPONSE*PRESPONSE;
typedef?struct?Author
{
short?name;
short?type;
short?Class;
int?ttl;
short?datalength;
};
pcap_t?*adhandle;
int?main(int?argcchar?**argv)
{
pcap_if_t*?alldevs;
pcap_if_t*?d;
int?i=0;
int?inum;
char?errbuf[PCAP_ERRBUF_SIZE];
u_int?netmask;
char?packet_filter[]=“ip?and?udp“;
struct?bpf_program?fcode;
if?(pcap_findalldevs_ex(PCAP_SRC_IF_STRINGNULL&alldevserrbuf)==-1)
{
fprintf(stderr“error?in?pcap_findalldevs_ex:%s\r\n“errbuf);
printf(“\r\n“);
return?0;
}
for?(d=alldevs;d;d=d->next)
{
printf(“%d.%s\n“++id->name);
printf(“\r\n“);
if?(d->description)
{
printf((“{%s}\n“d->description));
printf(“\r\n“);
}
else
{
printf(“{No?description}\n}“);
printf(“\r\n“);
}
}
if?(i?==?0)
{
printf(“{\r\nNo?interface?found!?Make?sure?WinPcap?is?install}“);
return?0;
}
printf(“Enter?the?interface?number{1-%d}:“i);
scanf(“%d“&inum);
if?(inum<1||inum>i)
{
printf(“\nInterface?number?out?of?range.\n“);
pcap_freealldevs(alldevs);
return?-1;
}
for?(d=alldevsi=0;i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????240??2010-11-12?16:17??DNS\ip.dat
?????文件???????9493??2010-12-03?09:01??DNS\SendTcp.cpp
?????文件???????4343??2010-11-15?15:54??DNS\SendTcp.dsp
?????文件????????539??2010-11-10?17:50??DNS\SendTcp.dsw
?????文件??????50176??2010-12-03?09:03??DNS\SendTcp.ncb
?????文件??????54784??2010-12-03?09:03??DNS\SendTcp.opt
?????文件???????1831??2010-12-03?09:01??DNS\SendTcp.plg
?????文件??????13627??2010-11-16?09:33??DNS\新建?文本文檔?(2).txt
?????文件???????8858??2010-11-16?08:21??DNS\新建?文本文檔.txt
?????目錄??????????0??2010-12-17?13:28??DNS
-----------?---------??----------?-----??----
???????????????143891????????????????????10
評論
共有 條評論