Nmap Development mailing list archives

Re: Nmap Attack Scripting Language (NASL)


From: "Paul Rigor" <prigor () uci edu>
Date: Mon, 22 May 2006 23:59:51 -0700

Hi Dave,
Yes, wrapping using swig (or even sip) would cut development time.
Scripting languages can just write appropriate interfaces to wrapped NMAP
functionality which would then be used by whatever grammar NASL develops.
This sounds like fun!
Paul

On 5/22/06, David Warde-Farley <david.warde.farley () utoronto ca> wrote:


On 23-May-06, at 2:36 AM, Paul Rigor wrote:

I say python.  You can even wrap nmap and use it a module.  Have
python
handle the application logic and scripting language parser adn have it
invoke appropriate NMAP functionality.  Python has great string
processing
facilities as well as an XML parser.  It's also *very* portable,
true OOP,
good unit test, debugging might prove cumbersome though.  Oh, also
you can
freeze python scripts/programs and have them run as executables
(which of
course rely on  shared python libraries and an nmap shared lib, is
there
already such a thing).  If you've ever used python, you will also
definitely
cut development.

Any of python, ruby, perl seem suited to the job. Hell, I think
Scheme is really suited to the job but Fyodor does not ;) One thing
to note: the way I read the doc it seems that we're looking at a
scripting engine to be included in Nmap.  This can be done with
python, embedding an interpreter is pretty easy and there are good
docs on it. However, one thing that makes me weary of python is that
they aren't backwards compatible from version to version. Thus you'd
probably have to "freeze" the python version you're using and piss
off some people one way or the other depending on the degree you keep
up with the current python release.

However I think you've stumbled upon an interesting point, Paul. Why
embed a scripting language in Nmap when you can embed Nmap in
(possibly several) scripting languages?

What I'm saying is, why not have the SoC'ers, maybe 2 or more of
them, implement Python/Ruby/etc. bindings for the underlying
libraries, or a C abstraction layer on top of them, with SWIG etc.
the way Subversion does it? Then people can choose the scripting
language they want to work with from a set of them that have bindings.

Dave


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



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


Current thread: