Nmap Security Scanner
*Intro
*Ref Guide
*Install Guide
*Download
*Changelog
*Book
*Docs
Security Lists
*Nmap Hackers
*Nmap Dev
*Bugtraq
*Full Disclosure
*Pen Test
*Basics
*More
Security Tools
*Pass crackers
*Sniffers
*Vuln Scanners
*Web scanners
*Wireless
*Exploitation
*Packet crafters
*More
Site News
Site Search:
Exploit World
Advertising
About/Contact
Credits
Sponsors:
edgeos

Nmap Development: [Exp PATCH] Fix a "bug" in Traceroute output

[Exp PATCH] Fix a "bug" in Traceroute output

From: Kris Katterjohn <katterjohn_at_gmail.com>
Date: Sat, 17 Mar 2007 19:15:21 -0500

The attached patch (/nmap-exp/kris SVN r4583) fixes a "bug" in the
output of --traceroute.

A ScanProgressMeter (SPM) is made in Traceroute::Traceroute(), causing a
"Initiating Traceroute on ..." to be printed on stdout (and <taskbegin
task="Traceroute" ...> for XML). SPM->endTask() is never called, so no
"Completed Traceroute ..." or "<taskend ...>" is printed.

If I did a --traceroute for google.com and kernel.org in the same scan,
I would get "Initiating Traceroute ..." once (when it should be twice),
with no "Completed ..." message. And the "xxx.xxx.xxx.xxx: guessing hop
distance at ..." messages for the different hosts are all together with
no separation.

This just reorganizes the SPM stuff. It's all now local to
Traceroute::trace() instead of a few different places. And now there's
a <taskend ..> for the <taskbegin ..>'s, and "Completed Traceroute ..."
for the "Initiating ..."'s. The "guessing hop distance" lines are
printed inside the correct "Initiating" and "Completed" lines.

Whew.. that's a lot of words for a small patch :)

It works great for me, so lemme know what you think!

Thanks,
Kris Katterjohn

Index: traceroute.h
===================================================================
--- traceroute.h (revision 4582)
+++ traceroute.h (revision 4583)
@@ -317,7 +317,6 @@
 
 
     struct scan_info scaninfo;
- ScanProgressMeter *SPM;
     Target **hops;
     pcap_t *pd;
     eth_t *ethsd;
Index: traceroute.cc
===================================================================
--- traceroute.cc (revision 4582)
+++ traceroute.cc (revision 4583)
@@ -218,7 +218,6 @@
 
     /* rely on each group using the same device */
     pd = my_pcap_open_live (device_name, 100, o.spoofsource ? 1 : 0, 2);
- SPM = new ScanProgressMeter ("Traceroute");
 
     scaninfo.initial_proto = IPPROTO_IP;
     scaninfo.open_response = 0;
@@ -304,8 +303,6 @@
         free(hops);
     for (; it != TraceGroups.end (); ++it)
         delete (it->second);
- assert(SPM != NULL);
- delete (SPM);
     if (ethsd)
         ethsd = NULL;
     close (fd);
@@ -789,6 +786,7 @@
     TraceProbe *tp = NULL;
     TraceGroup *tg = NULL;
     Target *t = NULL;
+ ScanProgressMeter *SPM;
     u16 total_size, total_complete;
 
     if (o.af () == AF_INET6) {
@@ -816,6 +814,8 @@
      * legitimate to trace to */
     sendTTLProbes (Targets, valid_targets);
 
+ SPM = new ScanProgressMeter ("Traceroute");
+
     while (!readTraceResponses ()) {
         for (targ = valid_targets.begin (); targ != valid_targets.end (); ++targ) {
             t = *targ;
@@ -861,6 +861,8 @@
             swap (total_complete, total_size);
         SPM->printStats (MIN ((double) total_complete / total_size, 0.99), NULL);
     }
+ SPM->endTask(NULL, NULL);
+ delete (SPM);
   }
 
 /* Resolves traceroute hops through nmaps

_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://SecLists.Org

Received on Mar 17 2007
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]