diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
commit | 0d47952611198ef6b1163f366dc03922d20b1475 (patch) | |
tree | 3d840a3b8c0daef0754707bfb9f5e873b6b1ac13 /nse_main.h | |
parent | Initial commit. (diff) | |
download | nmap-upstream.tar.xz nmap-upstream.zip |
Adding upstream version 7.94+git20230807.3be01efb1+dfsg.upstream/7.94+git20230807.3be01efb1+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | nse_main.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/nse_main.h b/nse_main.h new file mode 100644 index 0000000..b65161f --- /dev/null +++ b/nse_main.h @@ -0,0 +1,69 @@ +#ifndef NMAP_LUA_H +#define NMAP_LUA_H + +#include <vector> +#include <set> +#include <string> + +#include "nse_lua.h" + +#include "scan_lists.h" + +class ScriptResult +{ + private: + const char *id; + /* Structured output table, an integer ref in L_NSE[LUA_REGISTRYINDEX]. */ + int output_ref; + public: + ScriptResult() : id(NULL), output_ref(LUA_NOREF) {} + ~ScriptResult() { + // ensures Lua ref is released + clear(); + } + void clear (void); + void set_output_tab (lua_State *, int); + std::string get_output_str (void) const; + const char *get_id (void) const { return id; } + void write_xml() const; + bool operator<(ScriptResult const &b) const { + return strcmp(this->id, b.id) < 0; + } +}; + +typedef std::multiset<ScriptResult *> ScriptResults; + +/* Call this to get a ScriptResults object which can be + * used to store Pre-Scan and Post-Scan script Results */ +ScriptResults *get_script_scan_results_obj (void); + +class Target; + + +/* API */ +int nse_yield (lua_State *, lua_KContext, lua_KFunction); +void nse_restore (lua_State *, int); +void nse_destructor (lua_State *, char); +void nse_base (lua_State *); +void nse_selectedbyname (lua_State *); +void nse_gettarget (lua_State *, int); + +void open_nse (void); +void script_scan (std::vector<Target *> &targets, stype scantype); +void close_nse (void); + +#define SCRIPT_ENGINE "NSE" + +#ifdef WIN32 +# define SCRIPT_ENGINE_LUA_DIR "scripts\\" +# define SCRIPT_ENGINE_LIB_DIR "nselib\\" +#else +# define SCRIPT_ENGINE_LUA_DIR "scripts/" +# define SCRIPT_ENGINE_LIB_DIR "nselib/" +#endif + +#define SCRIPT_ENGINE_DATABASE SCRIPT_ENGINE_LUA_DIR "script.db" +#define SCRIPT_ENGINE_EXTENSION ".nse" + +#endif + |