Nmap Development mailing list archives

Re: Running Nmap several times within the same process


From: David Fifield <david () bamsoftware com>
Date: Wed, 23 Sep 2009 10:22:26 -0600

On Wed, Sep 23, 2009 at 06:53:25AM +0000, Andy Woods wrote:
I'm playing around with a project where I want to run Nmap several times
within the same process.
Currently I'm doing some tests to see if it is possible, or really just a
bad idea.

To make some kind of proof-of-concept I renamed the entry-function main(..)
in main.cc to main_entry(..),
and created a new main(..) function with the following code;

int main(int argc, char *argv[]) {
    printf("Starting first scan...\n
    printf("----------------------\n");
    main_entry(argc, argv);

    printf("\n");
    printf("Starting second scan...\n");
    printf("-------------------------\n");
    main_entry(argc, argv);
    return 0;
}

The idea is to run two scans in the same process, which I think requires
Nmap to clean up
global memory allocations in the first run to turn out well.

1. TEST (standard arguments)
=================================================================
In this test I passed standard arguments to Nmap, but as you can see
of the results the second scan fails (probably because some global
variables,
or heap allocated pointers are not deleted)

C:\Src\NmapTest\nmap-5.00\mswin32\Debug>nmap.exe -n 192.168.119.1
Starting first scan...
----------------------

Starting Nmap 5.00 ( http://nmap.org ) at 2009-09-23 07:57 Central Europe
Standard Time
Interesting ports on 192.168.119.1:
Not shown: 995 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
912/tcp   open  unknown
12345/tcp open  netbus
MAC Address: 00:50:aa:bb:cc:dd (VMWare)

Nmap done: 1 IP address (1 host up) scanned in 5.16 seconds

Starting second scan..
----------------------

Starting Nmap 5.00 ( http://nmap.org ) at 2009-09-23 07:58 Central Europe
Standard Time
PortList::initializePortMap: portmap for protocol 6 already initialized
QUITTING!

This is probably related to the problem reported at
http://seclists.org/nmap-dev/2009/q2/0464.html, where running two scans
in a row using the --interactive option would cause an assertion
failure. I agree, it looks like some state isn't being reset or
initialized properly, but I haven't found out where it is.

This is something that should work. It would be helpful if you can find
what changes are needed to make it work.

David Fifield

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


Current thread: