>Йопт, ну это же же просто ужас :-О
>Ну какой тебе удп-спуффинг? Ты же даже базовых основ языка не знаешь...
>Абсолютно без понятия об операторике структур, указателей и прочих вещей... Тебе
>бы букварь Страуструпа почитать, пописать HelloWord'ы и калькуляторы... Почитать про make-процессор
>неплохо бы, научиться писать примитивные мейкфайлы...
>Статьи он писать будет, инфы мало. Жуть... Для любого человека, способного связать
>2 строчки на си, инфы, содержащейся в /usr/include/netinet/*.h хватит за глаза,
>так что демагогия, которую ты развел, просто смехотворна, займись самообразованием. Материалов
>для обучения при твоем уровне просто переизбыток... о да,давайте еще что нибудь скажите,типа вали отсюда ламерюга ты ничего не знаешь,и вообще этот форум только для тех кто запредельно крут как вы,что даже опускается до общения с такими как я....да?я угадал что вы подразумеваете?
А может вы просто не знаете как на вопрос ответить?
ну это ладно.Со своими тупыми(как вы говорите) вопросами я разобрался,в том числе и как заспуфить айпишник.....если вы соизволите проскролить чуть ниже,то вот исходник под linux
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
#include <linux/tcp.h>
#include <linux/ip.h>
#include <linux/udp.h>
#define DEFAULT_TTL 255
#define IPVERSION 4
#define TH_OFFSET 5
#define TCP_WINDOW_SIZE 512
#define DEFAULT_TTL 255
#define IPVERSION 4
#define MESG_LENGTH 12
#define TH_OFFSET 5
#define TCP_WINDOW_SIZE 512
struct pseudohdr
{
struct in_addr source_address;
struct in_addr dest_address;
unsigned char place_holder;
unsigned char protocol;
unsigned short length;
} pseudohdr;
int main(int argc,char *argv[]) {
struct sockaddr_in mysocket;
unsigned char packet[sizeof(struct iphdr) + sizeof(struct udphdr) + MESG_LENGTH];
struct sockaddr_in sock;
struct udphdr *udp;
struct iphdr *iphdr;
char *pseudo_packet;
unsigned short sport, dport;
struct in_addr saddr, daddr;
unsigned long seq, ack;
int s, on = 1;
if(argc < 5)
{
fprintf(stderr, "usage: %s <source address> <source port> <destination address> <destination port>\n", argv[0]);
exit(1);
};
saddr.s_addr = inet_addr(argv[1]);
sport = (unsigned short)atoi(argv[2]);
daddr.s_addr = inet_addr(argv[3]);
dport = (unsigned short)atoi(argv[4]);
if((s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0)
{
perror("socket");
exit(1);
};
if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&on, sizeof(on)) < 0)
{
perror("setsockopt");
exit(1);
};
seq = rand() % time(NULL);
ack = rand() % time(NULL);
iphdr = (struct iphdr *)packet;
memset((char *)iphdr, '\0', sizeof(struct iphdr));
iphdr->version = IPVERSION;
iphdr->ihl = 5;
iphdr->tot_len = htons(sizeof(packet));
iphdr->id = htons(getpid());
iphdr->ttl = DEFAULT_TTL;
iphdr->protocol = IPPROTO_UDP;
iphdr->check = (unsigned short)in_cksum((unsigned short *)iphdr,
sizeof(struct iphdr));
iphdr->saddr = saddr.s_addr;
iphdr->daddr = daddr.s_addr;
udp = (struct udphdr *)(packet + sizeof(struct iphdr));
udp->source = htons(sport);
udp->dest = htons(dport);
udp->len = htons((sizeof(struct udphdr) + MESG_LENGTH));
udp->check = 0;
memset(&mysocket,'\0',sizeof(mysocket));
mysocket.sin_family = AF_INET;
mysocket.sin_port = htons(dport);
mysocket.sin_addr = daddr;
if(sendto(s,&packet,sizeof(packet),0x0,(struct sockaddr *)&mysocket,
sizeof(mysocket)) != sizeof(packet)) {
perror("sendto");
exit(1);
}
exit(0);
}
unsigned short in_cksum(unsigned short *addr,int len)
{
register int sum = 0;
u_short answer = 0;
register u_short *w = addr;
register int nleft = len;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(u_char *)(&answer) = *(u_char *)w ;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}
Знаете я всегда думал что форум,это место,где людям помогают..
я ошибался....))))))