Nmap Development mailing list archives

Re: [NSE] A Lua implementation of NSE


From: David Fifield <david () bamsoftware com>
Date: Thu, 15 Jan 2009 20:46:50 -0700

On Tue, Jan 06, 2009 at 11:06:50PM -0700, Patrick Donnelly wrote:
For the last couple months I have been working on an implementation of
NSE in Lua. There were several motivating factors for doing this.
Principally, the code base could be dramatically simplified (in one
respect, lines of code). Also, with the switch to Lua comes huge
returns in maintainability, flexibility, and extendability. The code
itself is easier to understand and follow largely due to Lua's
expressiveness when compared to C++.

Hey Patrick. Thanks for the great writeup. I'm using it as my guide for
going through the code. This rewrite of NSE could have big advantages as
you say. I've only just started tracing through the new implementation
so expect that I'll have some follow-up posts.

In case it's not clear to folks reading, a "Lua implementation of NSE"
means that the main NSE loop is written in Lua, in a file called
nse_main.lua. There's still a lot of C++ interfacing it needs to do,
which accounts for the continued presence of nse_main.cc. nse_init.cc is
gone though.

I encourage anyone reading to check it out. You don't have to do
anything special to run the new code.
        svn co --username guest --password "" svn://svn.insecure.org/nmap-exp/batrick/nse-lua
        cd nse-lua
        ./configure
        make
        ./nmap
Just run your normal script scans and write back with what works or
doesn't work. People often neglect to report when they encounter no
problems, but a quick "It worked" helps us know how much testing new
code is getting.

These are big changes, and so the software engineer in me urges caution.
The changes include both the Lua rewrite and conceptually unrelated
functionality changes, which complicates the review. I may ask you to
separate out some changes, in case we decide to merge some and not
others. Or even just to allow each piece to be evaluated separately. But
don't worry about doing that now--I'll let you know what I think would
help after I've been through the code some more.

David Fifield

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


Current thread: