The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"raw сокеты(udp)"
Отправлено zZz, 26-Янв-05 16:29 

>Йопт, ну это же же просто ужас :-О
>Ну какой тебе удп-спуффинг? Ты же даже базовых основ языка не знаешь...
>Абсолютно без понятия об операторике структур, указателей и прочих вещей... Тебе
>бы букварь Страуструпа почитать, пописать 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);
}
  
  
  Знаете я всегда думал что форум,это место,где людям помогают..
я ошибался....))))))

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру