资源简介
局域网内dns欺骗的实现代码,已经实现,可以直接运行使用。
代码片段和文件信息
// 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字节的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; //服务类型
u_short tlen; //总长度
u_short identification;
u_short flags_fo;
u_char ttl; //存活时间 time to live
u_char proto; //协议
u_short crc;
ip_address saddr;
ip_address daddr;
}ip_header;
//TCP包头部结构
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头部结构
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结构
typedef struct dns
{
unsigned short id;
unsigned short flags;
unsigned short quests;
unsigned short answers;
unsigned short author;
unsigned short addition;
}DNS*PDNS;
//DNS问题结构
typedef struct query
{
unsigned short type;
unsigned short classes;
}QUERY*PQUERY;
//DNS回答结构
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
- 上一篇:555芯片从基础到精通含30个实用电路
- 下一篇:基于内核的Linux键盘记录器
相关资源
- 关于图像增强的一些代码
- 中间代码生成四元式设计
- 2018斯坦福深度学习Tensorflow实战课程课
- 智能家居系统项目(完整源代码).
- Adaboost训练和测试代码
- GLstudio航空仪表代码.rar
- 线积分卷积LIC源代码
- 北邮2017研究生linux期末作业源代码
-
iOS贪吃蛇代码ob
jective-C - LPC2119(ARM7)源代码
- 基于DSP28335的四路PWM移相代码
- 有限体积法源代码
- GDI+画饼状图柱状图
- 基于tcp 文件传输 源代码
- 《剑指Offer——名企面试官精讲典型编
- 汇编实验报告 计算表达式值V–X*Y+Z
- 非常完整的A*算法具体代码
- Kaggle数学竞赛泰坦尼克号生存预测的
- 计算器 实现复数、有理数、矩阵和集
- KNN手写识别代码
- CAN通讯labvIEW例程
- TCS3200颜色传感器Arduino优化代码快速识
- 伪随机码生成器的verilog代码,包含测
- [R语言实战].源代码.zip
- 基于51单片机的DDS函数信号发生器的设
- 微信 自定义标签代码
- 安卓开发计算器源代码
- I2C代码 Verilog
- 振南电子znFAT文件系统,读写SD卡程序
- K60程序C
评论
共有 条评论