hping3 README file antirez@invece.org DESCRIPTION hping3 is a network tool able to send custom TCP/IP packets and to display target replies like ping do with ICMP replies. hping3 can handle fragmentation, and almost arbitrary packet size and content, using the command line interface. Since version 3, hping implements scripting capabilties, read the API.txt file under the /docs directory to know more about it. As a command line utility, hping is useful to test at many kind of networking devices like firewalls, routers, and so. It can be used as a traceroute alike program over all the supported protocols, firewalk usage, OS fingerprinting, port-scanner (see the --scan option introduced with hping3), TCP/IP stack auditing. It's also really a good didactic tool to learn TCP/IP. Using Tcl/Tk scripting much more can be done, because while the hping3 packet generation code is actually the hping2 put there mainly for compatibility with the command line interface, all the real news are about scripting. See the libs directory for example scripts. To run the example scripts type: hping3 exec ScriptName.htcl <arguments, if required> hping3 is developed and manteined by antirez@invece.org with the help of other hackers, and comes under GPL version 2 of license. Development is open so you can send me patches/suggestions/affronts without inhibitions. Please check the AUTHORS file for a list of people that contribued with code, ideas, bug reports. Also vim developer, ee.lbl.gov for tcpdump and GNU in general. DOCUMENTATION For the hping3 API check docs/API.txt You can find documentation about hping3 specific functions at http://wiki.hping.org Make sure to check the page at http://wiki.hping.org/34 DOWNLOAD The hping3 primary download site is the following: http://www.hping.org ---------------------------------------------------------------- How to get the hping3 source code from the anonymous CVS server ---------------------------------------------------------------- $ cvs -d :pserver:anonymous@cvs.hping2.sourceforge.net:/cvsroot/hping2 login CVS will ask for the password, just press enter, no password is required than type the following to download the full source code. $ cvs -z8 -d :pserver:anonymous@cvs.hping2.sourceforge.net:/cvsroot/hping2 checkout hping3s ----------------------------------- How to update your source code tree ----------------------------------- change the current directory to /somewhere/hping2, than just type: $ cvs update REQUIREMENTS A supported unix-like OS, gcc, root access. Libpcap. Tcl/Tk is optional but strongly suggested. INSTALLATION see INSTALL file. have fun, antirez following solution works on my mac: origin link: antirez#34 I found installing hping on OS X via brew required making some changes, due to brew installing tcl-tk in a non standard location. ==> Caveats tcl-tk is keg-only, which means it was not symlinked into /usr/local, because tk installs some X11 headers and macOS provides an (older) Tcl/Tk. If you need to have tcl-tk first in your PATH run: echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.bash_profile For compilers to find tcl-tk you may need to set: export LDFLAGS="-L/usr/local/opt/tcl-tk/lib" export CPPFLAGS="-I/usr/local/opt/tcl-tk/include" For pkg-config to find tcl-tk you may need to set: export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig" So I had to make the following adjustments to the configure file before I ran the ./configure step: Line 64, add "/usr/local/opt/tcl-tk/bin/" to the end so the script can find the right tcl binary Line 66, add "8.6" to the end so the script can get the version of tcl-tk brew downloaded (check in /usr/local/opt/tcl-tk/bin for a file starting with tclsh8.? to get the correct version number.) Line 84, replace the line with the following, so it can get the right include location if [ -e /usr/local/opt/tcl-tk/lib/tcl${TCL_VER} ] then TCL_INC="-I/usr/local/opt/tcl-tk/lib/tcl${TCL_VER}" elif [ -e /usr/include/tcl${TCL_VER} ] Then in the Makefile change all references to /usr/sbin to /usr/local/bin, because on OS X we don't have any rights to write there even as sudo. After this I could resume the instructions from ./configure. If you've tried this before and failed, be sure and run make clean to remove any artifacts from previous attempts.