static void xml_out_banner(struct Output *out, FILE *fp, time_t timestamp, unsigned ip, unsigned ip_proto, unsigned port, enum ApplicationProtocol proto, const unsigned char *px, unsigned length) { char banner_buffer[4096]; UNUSEDPARM(out); fprintf(fp, "<host endtime=\"%u\">" "<address addr=\"%u.%u.%u.%u\" addrtype=\"ipv4\"/>" "<ports>" "<port protocol=\"%s\" portid=\"%u\">" "<service name=\"%s\" banner=\"%s\">" "</service>" "</port>" "</ports>" "</host>" "\r\n", (unsigned)timestamp, (ip>>24)&0xFF, (ip>>16)&0xFF, (ip>> 8)&0xFF, (ip>> 0)&0xFF, name_from_ip_proto(ip_proto), port, masscan_app_to_string(proto), normalize_string(px, length, banner_buffer, sizeof(banner_buffer)) ); }
/*************************************** ************************************* ****************************************************************************/ static void text_out_banner(struct Output *out, FILE *fp, time_t timestamp, unsigned ip, unsigned ip_proto, unsigned port, enum ApplicationProtocol proto, unsigned ttl, const unsigned char *px, unsigned length) { char banner_buffer[4096]; UNUSEDPARM(out); UNUSEDPARM(ttl); fprintf(fp, "%s %s %u %u.%u.%u.%u %u %s %s\n", "banner", name_from_ip_proto(ip_proto), port, (ip>>24)&0xFF, (ip>>16)&0xFF, (ip>> 8)&0xFF, (ip>> 0)&0xFF, (unsigned)timestamp, masscan_app_to_string(proto), normalize_string(px, length, banner_buffer, sizeof(banner_buffer)) ); }
/*************************************** ************************************* ****************************************************************************/ static void text_out_banner(struct Output *out, FILE *fp, time_t timestamp, unsigned ip, unsigned ip_proto, unsigned port, enum ApplicationProtocol proto, const unsigned char *px, unsigned length) { char banner_buffer[4096]; char ip_proto_sz[64]; switch (ip_proto) { case 1: strcpy_s(ip_proto_sz, sizeof(ip_proto_sz), "icmp"); break; case 6: strcpy_s(ip_proto_sz, sizeof(ip_proto_sz), "tcp"); break; case 17: strcpy_s(ip_proto_sz, sizeof(ip_proto_sz), "udp"); break; default: sprintf_s(ip_proto_sz, sizeof(ip_proto_sz), "(%u)", ip_proto); break; } UNUSEDPARM(out); fprintf(fp, "%s %s %u %u.%u.%u.%u %u %s %s\n", "banner", ip_proto_sz, port, (ip>>24)&0xFF, (ip>>16)&0xFF, (ip>> 8)&0xFF, (ip>> 0)&0xFF, (unsigned)timestamp, masscan_app_to_string(proto), normalize_string(px, length, banner_buffer, sizeof(banner_buffer)) ); }