Index: nmap.cc =================================================================== --- nmap.cc (revision 32862) +++ nmap.cc (working copy) @@ -303,6 +303,7 @@ " -g/--source-port : Use given port number\n" " --proxies : Relay connections through HTTP/SOCKS4 proxies\n" " --data-length : Append random data to sent packets\n" + " --comment : Append a comment string to sent packets\n" " --ip-options : Send packets with specified ip options\n" " --ttl : Set IP time-to-live field\n" " --spoof-mac : Spoof your MAC address\n" @@ -584,6 +585,7 @@ {"version-trace", no_argument, 0, 0}, /* Display -sV related activity */ {"data_length", required_argument, 0, 0}, {"data-length", required_argument, 0, 0}, + {"comment", required_argument, 0, 0}, {"send_eth", no_argument, 0, 0}, {"send-eth", no_argument, 0, 0}, {"send_ip", no_argument, 0, 0}, @@ -824,6 +826,14 @@ error("WARNING: Payloads bigger than 1400 bytes may not be sent successfully."); o.extra_payload = (char *) safe_malloc(MAX(o.extra_payload_length, 1)); get_random_bytes(o.extra_payload, o.extra_payload_length); + } else if (optcmp(long_options[option_index].name, "comment") == 0) { + o.extra_payload_length = strlen(optarg); + if (o.extra_payload_length < 0 || o.extra_payload_length > MAX_PAYLOAD_ALLOWED) + fatal("comment length must be between 0 and %d", MAX_PAYLOAD_ALLOWED); + if (o.extra_payload_length > 1400) /* 1500 - IP with opts - TCP with opts. */ + error("WARNING: Payloads bigger than 1400 bytes may not be sent successfully."); + o.extra_payload = (char *) safe_malloc(MAX(o.extra_payload_length, 1)); + strcpy(o.extra_payload, optarg); } else if (optcmp(long_options[option_index].name, "send-eth") == 0) { o.sendpref = PACKET_SEND_ETH_STRONG; } else if (optcmp(long_options[option_index].name, "send-ip") == 0) {