Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. setsockopt(rcv_sock, SOL_SOCKET, SO_RCVTIMEO, &read_timeout, sizeof(read_timeout));
  2. for (int i = low_port; i <= high_port; i++)
  3. {
  4. tmp_msg.clear();
  5. udph->check = 0;
  6. memset (datagram2, 0, 4096);
  7. // Set destination port in UDP header
  8. udph->dest = htons (i);
  9. to.sin_port = htons(i);
  10. memset(pseudogram, 0, psize);
  11. memcpy(pseudogram , (char*) &psh , sizeof (struct pseudo_header));
  12. memcpy(pseudogram + sizeof(struct pseudo_header) , udph , sizeof(struct udphdr) + strlen(data));
  13.  
  14. udph->check = csum( (unsigned short*) pseudogram , psize);
  15. //std::cout << udph->check << std::endl;
  16.  
  17. if (sendto (sock, datagram, iph->tot_len, 0, (struct sockaddr *) &to, sizeof(to)) < 0)
  18. {
  19. perror("sendto failed");
  20. }
  21. usleep(1000);
  22. rcvd_l = recvfrom(rcv_sock, datagram2, sizeof(datagram2), 0, (struct sockaddr *) &to, &addrlen);
  23. if(datagram2[0] != 0){
  24. std::cout << "port: " << i << std::endl;
  25. std::cout << "recieved length: " << rcvd_l << std::endl;
  26. int counter = 0;
  27. for (int j = sizeof(struct iphdr) + sizeof(struct udphdr); j < rcvd_l; j++) {
  28. std::cout << datagram2[j];
  29. tmp_msg += datagram2[j];
  30. counter++;
  31. }
  32. if (tmp_msg.find("61453") != std::string::npos) {
  33. chcksum_port = i;
  34. std::cout << "checksum port: " << chcksum_port << std::endl;
  35. }
  36. std::cout << std::endl << std::endl;
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement