Nmap Development mailing list archives

Jay's Status Report #2 of 13


From: Jay Bosamiya <jaybosamiya () gmail com>
Date: Mon, 02 Jun 2014 20:52:18 +0530

Hi All!

This is the report for week 2 as "Feature Creeper and Bug Wrangler".

Achievements:

 1. Read through a huge chunk of Zenmap's code (both Core as well as GUI).
 2. Came up with a way to reliably reproduce Zenmap's MemoryError. This
    not only helps me figure out what the possible causes could be, but
    also helps me analyze parts of the memory and also lets me use it as
    a testing tool to see whether the MemoryError is handled correctly
    or not (when it actually gets handled).
 3. Applied some memory profiling tools to Zenmap to try to analyze the
    root cause of the MemoryError. No luck with any tool. So, I had to
    resort to the extremely basic and effective (but time consuming)
    method of reading through the code and executing it on paper. This
    helped me to get to what the causes might be.
 4. I showed that the MemoryError in Zenmap is due to it being unable to
    handle large output generated by Nmap. This was difficult to show
    since memory profiling tools don't seem to show any problem with the
    large output (since the problem is not at any one point but
    distributed throughout the application). However, I analyzed Zenmap
    under many different conditions and configurations to come upon this
    conclusion.
 5. Analyzed different possible solutions to Zenmap's MemoryError and
    discussed with Dan. Came upon a possible solution that involves
    file-based paging system. However, further analysis showed that this
    (file based paging) may actually involve a huge reworking of
    Zenmap's code.
 6. I wrote some quick and dirty fixes to catch and report the
    MemoryError. These still require further testing and improvement in
    order to be properly usable. (Turns out that the MemoryError problem
    is more deep seated than I initially thought it would be and so
    catching it only postpones the error to a different time).
 7. Corrected the Target MAC Address  in Nmap's ARP discovery to conform
    to what IP stacks in currently popular operating systems use.
    (Committed as revision 32920)
 8. Added a randomizer to configure script so that a random ASCII art
    from docs/leet-nmap-ascii-art*.txt is printed. (Committed as
    revision 32919)

Priorities:

 1. Consider some alternatives on how to handle the MemoryError in
    Zenmap. I will need to discuss this a little and then finally come
    up with a plan.
 2. Code in the fix for the MemoryError
 3. Elicit some specific requirements for a --exclude-ports option for
    Nmap. I have discussed a little bit of this with Dan and we've come
    up with a list of things to think about. I spent some time analyzing
    these things. I will start a thread on the dev list to discuss this
    since these are design issues (since it involves the addition of a
    new feature to Nmap). I can then start to work on it after getting
    some definitive responses.

Cheers,
Jay
_______________________________________________
Sent through the dev mailing list
http://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/


Current thread: