From 1073c8283a7e6e48710733caf5569aae10111344 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 18 Sep 2008 15:51:40 +0000 Subject: [PATCH] Merge from /nmap-exp/david/nmap-ndiff and /nmap-exp/david/zenmap-ndiff. --- Makefile.in | 17 +- configure | 241 ++++++++++++++++++++++++- configure.ac | 28 +++ macosx/Makefile | 22 ++- macosx/README | 8 +- macosx/nmap.pmdoc/04ndiff-contents.xml | 3 + macosx/nmap.pmdoc/04ndiff.xml | 25 +++ macosx/nmap.pmdoc/index.xml | 6 + mswin32/Makefile | 5 +- mswin32/nsis/Nmap.nsi | 36 +++- nmap.spec.in | 8 +- 11 files changed, 376 insertions(+), 23 deletions(-) create mode 100644 macosx/nmap.pmdoc/04ndiff-contents.xml create mode 100644 macosx/nmap.pmdoc/04ndiff.xml diff --git a/Makefile.in b/Makefile.in index 88c082011..718ec5e9a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29,6 +29,7 @@ LIBPCAPDIR = @libpcapdir@ LIBPCREDIR = @LIBPCREDIR@ export LIBDNETDIR = @LIBDNETDIR@ ZENMAPDIR = zenmap +NDIFFDIR = ndiff PYTHON = @PYTHON@ DEFS = @DEFS@ -DNMAP_NAME=\"$(NMAP_NAME)\" -DNMAP_URL=\"$(NMAP_URL)\" -DNMAP_PLATFORM=\"$(NMAP_PLATFORM)\" -DNMAPDATADIR=\"$(nmapdatadir)\" -DNMAPLIBEXECDIR=\"$(nmaplibexecdir)\" # For mtrace debugging -- see MTRACE define in main.cc for instructions @@ -56,7 +57,9 @@ DESTDIR = TARGET = nmap INSTALLNSE=@INSTALLNSE@ BUILDZENMAP=@BUILDZENMAP@ +BUILDNDIFF=@BUILDNDIFF@ INSTALLZENMAP=@INSTALLZENMAP@ +INSTALLNDIFF=@INSTALLNDIFF@ UNINSTALLZENMAP=@UNINSTALLZENMAP@ ifneq (@LIBLUA_LIBS@,) @@ -76,7 +79,7 @@ OBJS = main.o nmap.o targets.o tcpip.o nmap_error.o utils.o idle_scan.o osscan.o $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@ all: @LUA_BUILD@ @PCAP_BUILD@ @PCRE_BUILD@ @DNET_BUILD@ @NBASE_BUILD@ @NSOCK_BUILD@ @NCAT_BUILD@ - $(MAKE) $(TARGET) $(BUILDZENMAP) + $(MAKE) $(TARGET) $(BUILDZENMAP) $(BUILDNDIFF) $(TARGET): @LUA_DEPENDS@ @PCAP_DEPENDS@ @PCRE_DEPENDS@ @DNET_DEPENDS@ $(NBASEDIR)/libnbase.a $(NSOCKDIR)/src/libnsock.a $(OBJS) echo Compiling nmap @@ -146,6 +149,8 @@ lua_clean: -cd $(LIBLUADIR) && $(MAKE) clean zenmap_clean: -cd $(ZENMAPDIR) && $(PYTHON) setup.py clean --all +ndiff_clean: + -cd $(NDIFFDIR) && $(PYTHON) setup.py clean --all pcap_dist_clean: -cd $(LIBPCAPDIR) && $(MAKE) distclean pcre_dist_clean: @@ -162,6 +167,8 @@ ncat_dist_clean: -cd $(NCATDIR) && $(MAKE) distclean zenmap_dist_clean: zenmap_clean -cd $(ZENMAPDIR) && rm -rf MANIFEST build/ dist/ +ndiff_dist_clean: ndiff_clean + -cd $(NDIFFDIR) && rm -rf build/ dist/ debugclean: rm -f *.gcov *.gcda *.gcno gmon.out @@ -217,6 +224,12 @@ install-zenmap: $(ZENMAPDIR)/setup.py # Create a symlink from xnmap to zenmap unconditionally. ln -sf zenmap $(DESTDIR)$(bindir)/xnmap +build-ndiff: + cd $(NDIFFDIR) && $(PYTHON) setup.py build $(if $(DESTDIR),--executable "$(DEFAULT_PYTHON_PATH)") + +install-ndiff: + cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" $(if $(DESTDIR),--root "$(DESTDIR)") + NSE_FILES = scripts/script.db scripts/*.nse NSE_LIB_LUA_FILES = nselib/*.lua @@ -229,7 +242,7 @@ install-nse: $(TARGET) install-ncat: $(NCATDIR)/ncat @cd $(NCATDIR) && $(MAKE) install -install: install-nmap $(INSTALLNSE) $(INSTALLZENMAP) @NCAT_INSTALL@ +install: install-nmap $(INSTALLNSE) $(INSTALLZENMAP) @NCAT_INSTALL@ $(INSTALLNDIFF) @echo "NMAP SUCCESSFULLY INSTALLED" uninstall: uninstall-nmap $(UNINSTALLZENMAP) @NCAT_UNINSTALL@ diff --git a/configure b/configure index 372b2b226..16ffe7aa5 100755 --- a/configure +++ b/configure @@ -689,6 +689,10 @@ pythondir pkgpythondir pyexecdir pkgpyexecdir +BUILDNDIFF +INSTALLNDIFF +NDIFF_CLEAN +NDIFF_DIST_CLEAN BUILDZENMAP INSTALLZENMAP UNINSTALLZENMAP @@ -1326,6 +1330,7 @@ Optional Packages: --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-localdirs Explicitly ask compiler to use /usr/local/{include,libs} if they exist + --without-ndiff Skip installation of the Ndiff utility --without-zenmap Skip installation of the Zenmap graphical frontend --with-openssl=DIR Use optional openssl libs and includes from DIR/lib/ and DIR/include/openssl/) @@ -5680,6 +5685,228 @@ if test "$ac_res" != no; then fi +# Do they want Ndiff? + +# Check whether --with-ndiff was given. +if test "${with_ndiff+set}" = set; then + withval=$with_ndiff; +else + with_ndiff=check +fi + + +if test "$with_ndiff" != "no"; then + + + + + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + { echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.4" >&5 +echo $ECHO_N "checking whether $PYTHON version >= 2.4... $ECHO_C" >&6; } + prog="import sys, string +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +minver = map(int, string.split('2.4', '.')) + [0, 0, 0] +minverhex = 0 +for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 + ($PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { { echo "$as_me:$LINENO: error: too old" >&5 +echo "$as_me: error: too old" >&2;} + { (exit 1); exit 1; }; } +fi + + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + { echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.4" >&5 +echo $ECHO_N "checking for a Python interpreter with version >= 2.4... $ECHO_C" >&6; } +if test "${am_cv_pathless_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do + test "$am_cv_pathless_PYTHON" = none && break + prog="import sys, string +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +minver = map(int, string.split('2.4', '.')) + [0, 0, 0] +minverhex = 0 +for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 + ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + break +fi + + done +fi +{ echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5 +echo "${ECHO_T}$am_cv_pathless_PYTHON" >&6; } + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. +set dummy $am_cv_pathless_PYTHON; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { echo "$as_me:$LINENO: result: $PYTHON" >&5 +echo "${ECHO_T}$PYTHON" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + + + if test "$PYTHON" = :; then + if test "$with_ndiff" = "check"; then + { echo "$as_me:$LINENO: WARNING: Not building Ndiff because Python 2.4 or later was not found" >&5 +echo "$as_me: WARNING: Not building Ndiff because Python 2.4 or later was not found" >&2;} + else + { { echo "$as_me:$LINENO: error: --with-ndiff requires Python 2.4 or later +See \`config.log' for more details." >&5 +echo "$as_me: error: --with-ndiff requires Python 2.4 or later +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + with_ndiff=no + else + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 +echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6; } +if test "${am_cv_python_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 +echo "${ECHO_T}$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version + + + + PYTHON_PREFIX='${prefix}' + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 +echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6; } +if test "${am_cv_python_platform+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 +echo "${ECHO_T}$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + + + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 +echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6; } +if test "${am_cv_python_pythondir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || + echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 +echo "${ECHO_T}$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir + + + + pkgpythondir=\${pythondir}/$PACKAGE + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 +echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6; } +if test "${am_cv_python_pyexecdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || + echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 +echo "${ECHO_T}$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir + + + + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + + + fi + + +fi +if test "$with_ndiff" = "no"; then + BUILDNDIFF="" + INSTALLNDIFF="" + NDIFF_CLEAN="" + NDIFF_DIST_CLEAN="" +else + BUILDNDIFF=build-ndiff + INSTALLNDIFF=install-ndiff + NDIFF_CLEAN=ndiff_clean + NDIFF_DIST_CLEAN=ndiff_dist_clean +fi + + + + + # Do they want Zenmap? # Check whether --with-zenmap was given. @@ -9413,6 +9640,10 @@ pythondir!$pythondir$ac_delim pkgpythondir!$pkgpythondir$ac_delim pyexecdir!$pyexecdir$ac_delim pkgpyexecdir!$pkgpyexecdir$ac_delim +BUILDNDIFF!$BUILDNDIFF$ac_delim +INSTALLNDIFF!$INSTALLNDIFF$ac_delim +NDIFF_CLEAN!$NDIFF_CLEAN$ac_delim +NDIFF_DIST_CLEAN!$NDIFF_DIST_CLEAN$ac_delim BUILDZENMAP!$BUILDZENMAP$ac_delim INSTALLZENMAP!$INSTALLZENMAP$ac_delim UNINSTALLZENMAP!$UNINSTALLZENMAP$ac_delim @@ -9430,10 +9661,6 @@ LIBPCREDIR!$LIBPCREDIR$ac_delim PCRE_DEPENDS!$PCRE_DEPENDS$ac_delim PCRE_BUILD!$PCRE_BUILD$ac_delim PCRE_CLEAN!$PCRE_CLEAN$ac_delim -PCRE_DIST_CLEAN!$PCRE_DIST_CLEAN$ac_delim -LIBDNET_LIBS!$LIBDNET_LIBS$ac_delim -LIBDNETDIR!$LIBDNETDIR$ac_delim -DNET_DEPENDS!$DNET_DEPENDS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -9475,6 +9702,10 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +PCRE_DIST_CLEAN!$PCRE_DIST_CLEAN$ac_delim +LIBDNET_LIBS!$LIBDNET_LIBS$ac_delim +LIBDNETDIR!$LIBDNETDIR$ac_delim +DNET_DEPENDS!$DNET_DEPENDS$ac_delim DNET_BUILD!$DNET_BUILD$ac_delim DNET_CLEAN!$DNET_CLEAN$ac_delim DNET_DIST_CLEAN!$DNET_DIST_CLEAN$ac_delim @@ -9501,7 +9732,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 24; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 28; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.ac b/configure.ac index defb0bb67..555ce7f74 100644 --- a/configure.ac +++ b/configure.ac @@ -198,6 +198,34 @@ dnl If any socket libraries needed AC_SEARCH_LIBS(setsockopt, socket) AC_SEARCH_LIBS(gethostbyname, nsl) +# Do they want Ndiff? +AC_ARG_WITH(ndiff, AC_HELP_STRING([--without-ndiff], [Skip installation of the Ndiff utility]), [], [with_ndiff=check]) + +if test "$with_ndiff" != "no"; then + AM_PATH_PYTHON([2.4], [], + [if test "$with_ndiff" = "check"; then + AC_MSG_WARN([Not building Ndiff because Python 2.4 or later was not found]) + else + AC_MSG_FAILURE([--with-ndiff requires Python 2.4 or later]) + fi + with_ndiff=no]) +fi +if test "$with_ndiff" = "no"; then + BUILDNDIFF="" + INSTALLNDIFF="" + NDIFF_CLEAN="" + NDIFF_DIST_CLEAN="" +else + BUILDNDIFF=build-ndiff + INSTALLNDIFF=install-ndiff + NDIFF_CLEAN=ndiff_clean + NDIFF_DIST_CLEAN=ndiff_dist_clean +fi +AC_SUBST(BUILDNDIFF) +AC_SUBST(INSTALLNDIFF) +AC_SUBST(NDIFF_CLEAN) +AC_SUBST(NDIFF_DIST_CLEAN) + # Do they want Zenmap? AC_ARG_WITH(zenmap, AC_HELP_STRING([--without-zenmap], [Skip installation of the Zenmap graphical frontend]), [], [with_zenmap=check]) diff --git a/macosx/Makefile b/macosx/Makefile index d16d64613..72c7fba2c 100644 --- a/macosx/Makefile +++ b/macosx/Makefile @@ -1,5 +1,5 @@ -# This makefile builds a disk image (.dmg) containing the installer for Nmap -# Zenmap, and Ncat. +# This makefile builds a disk image (.dmg) containing the installer for Nmap, +# Zenmap, Ncat, and Ndiff. NMAP_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q') NMAP_NUM_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_NUM_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q') @@ -20,6 +20,9 @@ ZENMAP_STAGING_DIR = Zenmap NCAT_BUILD_DIR = ncat-build NCAT_STAGING_DIR = Ncat +NDIFF_BUILD_DIR = ndiff-build +NDIFF_STAGING_DIR = Ndiff + PREFIX = /usr/local PACKAGEMAKER = /Developer/usr/bin/packagemaker @@ -46,7 +49,7 @@ $(IMAGE_NAME): $(IMAGE_STAGING_DIR)/$(PKG_NAME) $(EXTRA_DIST_FILES) rm -f $@ hdiutil create -imagekey zlib-level=9 -srcfolder $(IMAGE_STAGING_DIR) $@ -$(IMAGE_STAGING_DIR)/$(PKG_NAME): stage-nmap stage-ncat stage-zenmap README COPYING.formatted +$(IMAGE_STAGING_DIR)/$(PKG_NAME): stage-nmap stage-ncat stage-ndiff stage-zenmap README COPYING.formatted mkdir -p $(IMAGE_STAGING_DIR) $(PACKAGEMAKER) --doc nmap.pmdoc --title "Nmap $(NMAP_VERSION)" -o $@ @@ -57,15 +60,16 @@ export-%: svn export ../ncat $*/ncat svn export ../nsock $*/nsock svn export ../zenmap $*/zenmap + svn export ../ndiff $*/ndiff stage-nmap: export-$(NMAP_BUILD_DIR) - cd $(NMAP_BUILD_DIR) && ./configure --without-zenmap --without-ncat $(CONFIGURE_ARGS) + cd $(NMAP_BUILD_DIR) && ./configure --without-zenmap --without-ncat --without-ndiff $(CONFIGURE_ARGS) make -C $(NMAP_BUILD_DIR) rm -rf $(NMAP_STAGING_DIR) make -C $(NMAP_BUILD_DIR) install DESTDIR="`pwd`/$(NMAP_STAGING_DIR)" stage-ncat: export-$(NCAT_BUILD_DIR) - cd $(NCAT_BUILD_DIR) && ./configure --without-zenmap --with-ncat $(CONFIGURE_ARGS) + cd $(NCAT_BUILD_DIR) && ./configure --without-zenmap --with-ncat --without-ndiff $(CONFIGURE_ARGS) make -C $(NCAT_BUILD_DIR) rm -rf $(NCAT_STAGING_DIR) make -C $(NCAT_BUILD_DIR) install-ncat DESTDIR="`pwd`/$(NCAT_STAGING_DIR)" @@ -79,6 +83,12 @@ stage-zenmap: export-$(ZENMAP_BUILD_DIR) mkdir -p $(ZENMAP_STAGING_DIR)/Applications cp -rf $(ZENMAP_BUILD_DIR)/zenmap/dist/Zenmap.app $(ZENMAP_STAGING_DIR)/Applications/ +stage-ndiff: export-$(NDIFF_BUILD_DIR) + cd $(NDIFF_BUILD_DIR) && ./configure --without-zenmap --without-ncat --with-ndiff $(CONFIGURE_ARGS) + make -C $(NDIFF_BUILD_DIR) build-ndiff + rm -rf $(NDIFF_STAGING_DIR) + make -C $(NDIFF_BUILD_DIR) install-ndiff DESTDIR="`pwd`/$(NDIFF_STAGING_DIR)" + $(IMAGE_STAGING_DIR)/README: mkdir -p $(IMAGE_STAGING_DIR) cp -f README $(IMAGE_STAGING_DIR)/ @@ -99,6 +109,8 @@ clean: rm -rf $(ZENMAP_STAGING_DIR) rm -rf $(NCAT_BUILD_DIR) rm -rf $(NCAT_STAGING_DIR) + rm -rf $(NDIFF_BUILD_DIR) + rm -rf $(NDIFF_STAGING_DIR) rm -f COPYING.formatted rm -f $(IMAGE_NAME) diff --git a/macosx/README b/macosx/README index b6f643b4f..7bab9ff88 100644 --- a/macosx/README +++ b/macosx/README @@ -1,7 +1,7 @@ -Nmap is a free and open source utility for network exploration and security auditing. Zenmap is a multi-platform graphical frontend and results viewer for Nmap. Ncat is a general-purpose network sending and receiving utility, a reimplementation of Netcat. +Nmap is a free and open source utility for network exploration and security auditing. Zenmap is a multi-platform graphical frontend and results viewer for Nmap. Ncat is a general-purpose network sending and receiving utility, a reimplementation of Netcat. Ndiff is a an Nmap scan comparison utility. -This package contains Nmap, Zenmap, and Ncat. It is intended to work on Intel and PowerPC Macs running Mac OS X 10.4 or later. +This package contains Nmap, Zenmap, Ncat, and Ndiff. It is intended to work on Intel and PowerPC Macs running Mac OS X 10.4 or later. -Installation of all three packages is optional. Unselect Zenmap to get just the command-line tools. You can unselect Nmap if you want to use Zenmap with a copy of Nmap that is already installed. Zenmap will not work without Nmap. +Installation of all packages is optional. Unselect Zenmap to get just the command-line tool. Unselect Nmap if you prefer to use a copy of Nmap that is already installed. Zenmap will not work without Nmap. -The nmap and ncat command-line binaries will be installed in /usr/local/bin, and additional support files will be installed in /usr/local/share. The Zenmap application bundle will be installed in /Applications/Zenmap.app. +The nmap, ncat, and ndiff command-line binaries will be installed in /usr/local/bin, and additional support files will be installed in /usr/local/share. The Zenmap application bundle will be installed in /Applications/Zenmap.app. diff --git a/macosx/nmap.pmdoc/04ndiff-contents.xml b/macosx/nmap.pmdoc/04ndiff-contents.xml new file mode 100644 index 000000000..63000ceb6 --- /dev/null +++ b/macosx/nmap.pmdoc/04ndiff-contents.xml @@ -0,0 +1,3 @@ + + + diff --git a/macosx/nmap.pmdoc/04ndiff.xml b/macosx/nmap.pmdoc/04ndiff.xml new file mode 100644 index 000000000..e95899580 --- /dev/null +++ b/macosx/nmap.pmdoc/04ndiff.xml @@ -0,0 +1,25 @@ + + + org.insecure.nmap.ndiff.pkg + 1 + + + + Ndiff + / + + + + + parent + installFrom.isRelativeType + + + 04ndiff-contents.xml + /CVS$ + /\.svn$ + /\.cvsignore$ + /\.cvspass$ + /\.DS_Store$ + + diff --git a/macosx/nmap.pmdoc/index.xml b/macosx/nmap.pmdoc/index.xml index 7aeb7dab2..292193253 100644 --- a/macosx/nmap.pmdoc/index.xml +++ b/macosx/nmap.pmdoc/index.xml @@ -26,6 +26,11 @@ starts_enabled="true" starts_hidden="false"> + + + @@ -37,6 +42,7 @@ 01nmap.xml 02zenmap.xml 03ncat.xml + 04ndiff.xml properties.customizeOption properties.title properties.anywhereDomain diff --git a/mswin32/Makefile b/mswin32/Makefile index 262a22d86..07b1526c9 100644 --- a/mswin32/Makefile +++ b/mswin32/Makefile @@ -33,7 +33,10 @@ winbuild: zip -r nmap-$(NMAP_VERSION)-win32.zip nmap-$(NMAP_VERSION) mkdir nmap-$(NMAP_VERSION)/zenmap cd ../zenmap && install_scripts/windows/copy_and_compile.bat - cp -R ../zenmap/dist/* ../zenmap/COPYING* ../zenmap/README nmap-$(NMAP_VERSION)/zenmap + cp -R ../zenmap/dist/* nmap-$(NMAP_VERSION)/ + cp ../zenmap/README nmap-$(NMAP_VERSION)/ZENMAP_README + cp ../zenmap/COPYING_HIGWIDGETS nmap-$(NMAP_VERSION) + cp ../ndiff/README nmap-$(NMAP_VERSION)/NDIFF_README cp nsis/AddToPath.nsh nsis/Nmap.nsi nsis/shortcuts.ini nsis/final.ini nmap-$(NMAP_VERSION) $(MAKENSIS) nmap-$(NMAP_VERSION)/Nmap.nsi mv nmap-$(NMAP_VERSION)/NmapInstaller.exe nmap-$(NMAP_VERSION)-setup.exe diff --git a/mswin32/nsis/Nmap.nsi b/mswin32/nsis/Nmap.nsi index a1e9a519c..b96c11871 100644 --- a/mswin32/nsis/Nmap.nsi +++ b/mswin32/nsis/Nmap.nsi @@ -88,18 +88,18 @@ FunctionEnd Function makeShortcuts StrCmp $zenmapset "" skip - SetOutPath "$INSTDIR\zenmap" + SetOutPath "$INSTDIR" ReadINIStr $0 "$PLUGINSDIR\shortcuts.ini" "Field 1" "State" StrCmp $0 "0" skipdesktop - CreateShortCut "$DESKTOP\Nmap - Zenmap GUI.lnk" "$INSTDIR\zenmap\zenmap.exe" + CreateShortCut "$DESKTOP\Nmap - Zenmap GUI.lnk" "$INSTDIR\zenmap.exe" skipdesktop: ReadINIStr $0 "$PLUGINSDIR\shortcuts.ini" "Field 2" "State" StrCmp $0 "0" skipstartmenu CreateDirectory "$SMPROGRAMS\Nmap" - CreateShortCut "$SMPROGRAMS\Nmap\Nmap - Zenmap GUI.lnk" "$INSTDIR\zenmap\zenmap.exe" + CreateShortCut "$SMPROGRAMS\Nmap\Nmap - Zenmap GUI.lnk" "$INSTDIR\zenmap.exe" skipstartmenu: @@ -247,7 +247,13 @@ SectionEnd Section "Zenmap (GUI Frontend)" SecZenmap SetOutPath "$INSTDIR" SetOverwrite on - File /r /x mswin32 /x .svn ..\nmap-${VERSION}\zenmap + File ..\nmap-${VERSION}\zenmap.exe + File ..\nmap-${VERSION}\ZENMAP_README + File ..\nmap-${VERSION}\COPYING_HIGWIDGETS + File ..\nmap-${VERSION}\msvcr71.dll + File ..\nmap-${VERSION}\python25.dll + File /r ..\nmap-${VERSION}\share + File /r ..\nmap-${VERSION}\py2exe StrCpy $zenmapset "true" SectionEnd @@ -256,6 +262,16 @@ Section "Ncat (Netcat Replacement)" SecNcat SetOverwrite on File ..\nmap-${VERSION}\ncat.exe SectionEnd + +Section "Ndiff" SecNdiff + SetOutPath "$INSTDIR" + SetOverwrite on + File ..\nmap-${VERSION}\ndiff.exe + File ..\nmap-${VERSION}\NDIFF_README + File ..\nmap-${VERSION}\msvcr71.dll + File ..\nmap-${VERSION}\python25.dll + File /r ..\nmap-${VERSION}\py2exe +SectionEnd ;-------------------------------- ;Descriptions @@ -267,6 +283,7 @@ SectionEnd LangString DESC_SecPerfRegistryMods ${LANG_ENGLISH} "Modifies Windows registry values to improve TCP connect scan performance. Recommended." LangString DESC_SecZenmap ${LANG_ENGLISH} "Installs Zenmap, the official Nmap graphical user interface. Recommended." LangString DESC_SecNcat ${LANG_ENGLISH} "Installs Ncat, Nmap's Netcat replacement." + LangString DESC_SecNdiff ${LANG_ENGLISH} "Installs Ndiff, a tool for comparing Nmap XML files." ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN @@ -276,6 +293,7 @@ SectionEnd !insertmacro MUI_DESCRIPTION_TEXT ${SecPerfRegistryMods} $(DESC_SecPerfRegistryMods) !insertmacro MUI_DESCRIPTION_TEXT ${SecZenmap} $(DESC_SecZenmap) !insertmacro MUI_DESCRIPTION_TEXT ${SecNcat} $(DESC_SecNcat) + !insertmacro MUI_DESCRIPTION_TEXT ${SecNdiff} $(DESC_SecNdiff) !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Uninstaller Section @@ -328,11 +346,19 @@ Section "Uninstall" Delete "$INSTDIR\libeay32.dll" Delete "$INSTDIR\ssleay32.dll" Delete "$INSTDIR\winpcap-nmap*.exe" + Delete "$INSTDIR\zenmap.exe" + Delete "$INSTDIR\ndiff.exe" + Delete "$INSTDIR\msvcr71.dll" + Delete "$INSTDIR\python25.dll" + Delete "$INSTDIR\NDIFF_README" + Delete "$INSTDIR\ZENMAP_README" + Delete "$INSTDIR\COPYING_HIGWIDGETS" Delete "$INSTDIR\ncat.exe" ;Delete specific subfolders (NB: custom scripts in scripts folder will be lost) RMDir /r "$INSTDIR\nselib" RMDir /r "$INSTDIR\scripts" - RMDir /r "$INSTDIR\zenmap" + RMDir /r "$INSTDIR\share" + RMDir /r "$INSTDIR\py2exe" Delete "$INSTDIR\Uninstall.exe" diff --git a/nmap.spec.in b/nmap.spec.in index 741bb683d..a1e034d8a 100644 --- a/nmap.spec.in +++ b/nmap.spec.in @@ -18,6 +18,9 @@ Group: Applications/System Source0: http://nmap.org/dist/%{name}-%{version}.tgz URL: http://nmap.org +# For Ndiff. +Requires: python >= 2.4 + # RPM can't be relocatable until I stop storing path info in the binary. # Prefix: %{_prefix} BuildRoot: %{_tmppath}/%{name}-root @@ -37,7 +40,7 @@ devices are also supported, including the Sharp Zaurus and the iPAQ. %setup -q %build -%configure --without-openssl --without-zenmap --with-libdnet=included --with-libpcap=included --with-libpcre=included --with-liblua=included +%configure --without-openssl --without-zenmap --with-ndiff --with-libdnet=included --with-libpcap=included --with-libpcre=included --with-liblua=included %if "%{buildncat}" == "0" %configure --without-ncat %endif @@ -65,6 +68,9 @@ gzip $RPM_BUILD_ROOT%{_mandir}/man1/* || : %{_bindir}/nmap %{_datadir}/nmap +%{_bindir}/ndiff +%doc %{_prefix}/share/man/man1/ndiff.1.gz + # Ncat subpackage %if "%{buildncat}" != "0" %package -n ncat