hping3/CHANGES

280 lines
13 KiB
Plaintext
Raw Normal View History

2022-04-13 18:01:39 +08:00
CHANGES LOG
$Id: CHANGES,v 1.33 2004/03/10 12:11:51 njombart Exp $
Authors name abbreviation
AZ Salvatore Sanfilippo 'antirez' <antirez@speedcom.it>
FX Alfonso De Gregorio 'fhex' <fhex@speedcom.it>
MK Mika <mika@qualys.com>
SA Stephane Aubert <Stephane.Aubert@hsc.fr>
NJ Nicolas Jombart <Nicolas.Jombart@hsc.fr>
DD Denis Ducamp <Denis.Ducamp@hsc.fr>
FP Francesco Potorti` <pot@gnu.org>
YB Yann Berthier <Yann.Berthier@hsc.fr>
BJ Brieuc Jeunhomme <bbp@via.ecp.fr>
HK Hans-Joachim Knobloch <knobloch@secorvo.de>
MM Minor contributor, see the change description for credits.
?? If you edit this file put yourself here <your@email>
AZ is the default if not specified.
=======================================================
In order to find bugs fixed search the keyword 'FIX:'
for new supports and features search the keyword 'ADD:'
=======================================================
TO FIX before ??:
* The problem with --rroute and the IP header length field on SunOS,
thanks to Graeme Hewson <graeme.hewson@oracle.com> for reporting it.
MM FIX: Fix for interface guessing with aliases on BSD
Thanks <michel.gravey(@)orange.fr> and <cognet(@)freebsd.org>
MM FIX: fixed cksum.c. Bad outgoing packet checksum with some packet.
Thanks to Brett Eldridge <beldridg@pobox.com>.
AZ ADD: scan mode (--scan)
AZ ADD: A rc4-based PRNG to use with --rand-source and --rand-dest
NJ FIX: Fix -I option for BSD/Apple
NJ ADD: Add support for BSDI and MacOSX (thanks
Dennis Opacki <dopacki@adotout.com> and Jan-Hinrich Fessel
<Jan-Hinrich.Fessel@T-Mobile.de>)
HK ADD: A few useful ICMP options
NJ ADD: Add support for :
WLAN (Fabian Melzow <biop0b@web.de>)
ATM (Debian bug #193436, thanks to Domenico Andreoli)
Token Ring (jim.r.halfpenny@britishairways.com)
NJ ADD: MacOSX patches (Hans-Joachim Knobloch <knobloch@secorvo.de>)
NJ FIX: --rand-source patches from Quentin Garnier <hping@quatriemek.com>
. ensure randomness
. do not stop on errors when using a E or D class address (BSD only?)
20 Nov 2002 -- 2.0.0 stable -- candidate release 2
---------------------------------------------------------------------------
NJ FIX: The bug about port number printing in TCP mode than YB discovered.
NJ ADD: MTU value sanity check in option parsing.
NJ FIX: Fix the use of -W option
NJ ADD: strLcpy() function taken from OpenBSD
NJ FIX: Fix a bug when using BSD and a PPP link as a default route
Move code from routing sockets to get_output_if function.
BJ FIX/ADD: source routing and random bugfixes. Thanks BJ!
AZ ADD: --rand-source for random source addresses.
AZ FIX: all the atoi() call was replaced with strto[u]l().
MM FIX: seq/ack setting using strtoul() instead of atoi(), thanks
to Shachar Shemesh <sun@consumer.org.il>.
AZ ADD: --rand-dest for random destination addresses + manpage update.
AZ FIX/ADD: Major code rewrite.
AZ FIX: DF added to the icmp and udp output.
AZ FIX: --port ++<base> fixed with UDP and enhanced for TCP/UDP. Now the
packets matches only with a sport that is:
>= base_dest_port AND <= current_dest_port.
Thanks to David Bar <dbar@Checkpoint.com> for the original
report.
15 Aug 2001 -- 2.0.0 stable -- candidate release 1
---------------------------------------------------------------------------
AZ FIX: --fast now really sends 10packets/second, not 100. Thanks
to DD for the report.
AZ FIX: bzero/bcopy replaced with the sane memset/memcpy.
DG ADD: Solaris port, with the help of the patch contributed by
Steve Bleazard <steve@bleazard.com>
AZ ADD: Changed a bit the format (flags=S is now <S>) and add the string
DF if the don't fragment bit is on.
AZ FIX: waitpacket.c to take the data aligned. Now hping seems to
work without problems on linux/sparc.
AZ FIX: getifname.c, now even the linux version behaves better locking
for the interface address of the outgoing interface according
to the kernel routing table. getdefaultif.c removed, no loger used.
AZ FIX --tr-stop enhanced (now really exit when an expected packet that
was not an ICMP time exceeded was received)
AZ FIX: --stop-tr is now --tr-stop. All the traceroute mode options
starts with --tr.
AZ ADD: --tr-no-rtt to turn off RTT information in traceroute mode.
Thanks to Denis Ducamp for the idea.
AZ FIX: Now provide traceroute RTT information even with ICMP.
AZ ADD: --stop-tr stops hping in traceroute mode once the first non
ICMP packet is received. Thanks to Denis Ducamp for the idea.
AZ ADD: ICMP subnet address mask support. Not tested.
AZ ADD: TCP timestamp support with HZ and uptime guessing (--tcp-timestamp)
AZ ADD: ICMP timestamp support (--icmptype 13)
AZ FIX: Fixed getlhs.c under BSD to get the header length from the like type.
YB NH AZ FIX: ICMP ID handling on systems with 32 bit pids.
DD ADD: Man page update (not french one!)
AZ ADD: --traceroute now prints RTT information.
AZ ADD: --traceroute now implies --ttl 1 if no --ttl option is specified.
AZ ADD: --fast option that is an alias for -u i10000 (10 packets at second)
MM ADD: ets.* interface (thanks to Stefano Brandimarte.)
AZ FIX: compilation problem (NULL used without including stdlib.h in getusec.c)
AZ FIX: -H switch (alternative to --protoip) thanks to
"roy kozzer" <royk50@hotmail.com>
MM FIX: Man page grammatical mistakes, thanks to Jason Lunz <j@trellisinc.com>,
I applied the patch by hand, so maybe some mistake is still inside.
FP FIX: fixed rtt/sequence number handling, now hping6 can run for hours
keeping the right rtt calculation. Some sentence from the original
Francesco's email:
I am using it to make long measurements of the response times of http
servers around the world, so hping6 keeps running for days. In fact, it
is apparently impossible to use hping6 this way, as the sequence number
wraps around (and this may be okay, in principle) and the program goes
astray.
Precisely, the delay measurements are set to 0 after the wrap around.
Since hping6 is written so cleanly (thanks), I was able to quickly
correct the problem:
(strange, I think hping6 is very hugly code... I wrote it with
too little coding experience)
BTW now the issue is fixed, MANY thanks to Francesco Portori'.
DD FIX: -seqnum (endianess IIRC) fixed.
DD FIX: Random fix to manpage and code.
NJ FIX/ADD: BSD network interfaces related code.
DD ADD: French translation of the hping documentation, under docs/french/
6 July 2000 -- 2.0.0 beta54, raw IP mode, bug fixing, NetBSD support, ...
---------------------------------------------------------------------------
Solaris support still not present, a patch was provided by
Lorenzo Lazzieri but I did not have a solaris box to perform
some test, give me some solarix 2.[67] root account if you
need hping6 ported to solaris. Sorry, but my sparc S4 died
not long ago.
FIX: the stupid nop.c no longer exist.
FIX: tcp sequence number and ack visualization bug for lacks of ntohl()!
FIX: minor coding bugs fixed, minor code cleanup
FIX: man pages path now is obtained from MANPATH
FIX: new *BSD ethernet under getlhs.c
ADD: NetBSD support (thanks to Yann Berthier)
ADD: settable checksum
ADD: now TCP sequence number and ack are settable.
SA ADD: bad checksum option (-b --badcksum).
ADD: settable fragment offset.
ADD: raw IP mode.
ADD: out of sequence packets counter (only with -r option).
ADD: documentation updated and a bit improved.
20 Nov 1999 -- 2.0.0 beta 53, important bug fixed
-------------------------------------------------
Contrary to my hope this beta go out without Solaris support nor deep
testing under BSD systems. This because beta-53 FIX: some important bugs
so I think it's better to release it as soon as possible. I hope that
beta-54 will be more tested under BSD and will contain a first Solaris
support. Please, send me bug report/suggestions first beta-54 release, AZ
AZ ADD: man page updated.
AZ FIX: a very dirty bug introduced in hping6-beta49, it was in waitpacket.c,
all offset was computed using the ip header length of the last packet, and
for the first incoming packet using uninitialized bytes. I suggest you
upgrade ASAP.
AZ ADD: enhanced configure and Makefile. Now "./configure; make" should
be enough at least under Linux, FreeBSD and OpenBSD. configure has options,
try ./configure --help. Also FIX: a `make clean' issue.
AZ FIX: a bug in rtt.c, in some circumstance it returned a negative rtt,
also ADD: an initial sanity check for faster problem tracing in rtt.c.
Now sent packets are registered into 'delay table' *before* of sending, I
think this isn't the better way to do a good timing, but since original ping
program use this way and it avoids some problem hping now use this solution.
AZ FIX: parseoptions.c, some parser fix and more limits for non root users.
AZ ADD: better hgetopt.c, now it's possible to combine short options like
-S -F etc in -SF. The same kind of bug seems still unfixed in gcc and ssh.
AZ if_promisc.c no longer compiled/linked since it isn't used by hping6.
I leave this file here for possible future new features. It will be needed
only for Linux since to set promiscuous mode with libpcap it is not useful.
AZ ADD:/FIX: getlhs.c updated, now system dependent, BSD ethernet names
updated thx to Rui Miguel Barbosa Machado <rmbm@rccn.net>,
FIX: BSD PPP link header size (I hope). Please send me a mail if you
successfully run hping6 under PPP interface on BSD.
AZ ADD: new `utils' directory added and the simple utility hex2bin
AZ ADD: distribution enhanced, CHANGES was extracted from TODO, MIRRORS contain
a mirrors list, BUGS the bug report form, others files added.
16 Nov 1999 -- 2.0.0 beta 52, first public 2.0.0
-------------------------------------------------
AZ add W option for windoze byte ordering
AZ clearest var names
AZ fix incoming packet size computing
AZ add -V verbose mode
AZ add -D debug mode
AZ add support for 2.2.x kernel PF_PACKET socket
AZ fix (null) hostname problem
AZ add usec interval support for -i option
AZ fix -q option
AZ add -y (don't fragment) option
AZ better checksum algorithm from R. Stevens
AZ better icmp logging
AZ add capability of sending data besides header (-d)
AZ add fragmentation capability even with -d option
AZ add ICMP support
AZ get default routing interface from /proc
AZ add -k (keep still source port) option
AZ add UDP support
AZ all #define revisited for more cleanness
AZ recvto() incoming packet max size fixed
AZ data from file option
AZ hex dump of incoming packets
AZ incoming packets content dump (only printable)
AZ packet sign
AZ hgetopt.c, rewrite parse_options using hgetopt()
AZ GNU style options support
AZ target host argument recognized in any positions
AZ broadcast support, waittcp.c must be update (not for ICMP)
AZ fix some problem in hgetopt.c
AZ portability increased a bit
AZ byteorder.c, add ./configure, just for byte ordering check
AZ -9 | --listen <sign> listen mode for file transfers
AZ settable packets id
AZ fixed some problem in hgetopt.c/parseoption.c, assert() removed
AZ when suid don't allows a lot of options if uid != euid
AZ experimental traceroute mode (-T | --traceroute)
AZ HCMP (hping control message protocol) initial devel
AZ better HCMP support for safe protocol 'semi' implemented
AZ main.c clearness improved and reorder.
AZ HCMP for safe protocol works
AZ fix a bug when fragmentations is active (introduced with --id)
AZ settable tos, more than one --tos are ORed.
AZ strong code cleanup, three new files: rtt.c, relid.c, sendip_handler.c
AZ more portable includes, a bit more portable getifname.c
AZ enhanced ICMP support: rtt, (DUP), id.
AZ better ./configure and libpcap support predisposed.
AZ add round-trip min/avg/max statistics.
AZ get interface mtu, tunable fragments size, auto-activate
fragmentation if packet size > mtu
AZ --destport enhanced, now --destport +23 inc dest port
for each packet sent starting from 23.
AZ add libpcap support, Makefile and some .c updated
AZ fixed a bug introduced enhancing --destport option.
AZ if_mtu var name collision in BSD fixed, now h_if_mtu.
AZ better signal handling and minor internal changes.
FX save/restore errno in signal handlers.
FX add memory protection functions mem*.c in order to
prevent swap of sensitive memory areas.
AZ disable memory paging when --sign, --file, --listen used.
AZ Option -c wait after sending last packet
AZ ported on OpenBSD 2.3 (tested also on OpenBSD 2.5)
AZ enhanced ICMP support, now send type 8,0,3,4,5,11
AZ --traceroute default bind ttl to ctrl+z
MK Now waitpacket() handle ip options
MK Record route option support, and update IP related
functions to handle options. Also add ip_opt_build.c
and display_ipopt.c (ripped from ping)
AZ some bug fixed
AZ --tcpexitcode option that exit with last tcp->th_flags
AZ datafiller.c bug fix
AZ add -p ++port, as -p +port but that increments the destination
port even if no replies are received.
AZ fix getifname.c big problems with OpenBSD: it works only
for certain interface (now *seems* fixed)
AZ portable sendip.c raw socket ip fields byte ordering (N.B.
Linux and OpenBSD has all ip field in network byte order
so you may add right defines if you port hping6 to other OSs)
AZ compiles/works under FreeBSD 3.3
17 Dec 1998 -- 0.67 release
---------------------------
AZ add -a option