Libtins v-3.3 : a high-level, multiplatform C++ network packet sniffing and crafting library.

Libtins v-3.3 : a high-level, multiplatform C++ network packet sniffing and crafting library.

Changelog v3.3 :
– Add TCP connection close example
– Move implementations on utils.h to utils.cpp
– Add ICMPv6 Multicast Listener Query Messages support
– Add ICMPv6 Multicast Listener Report Message support
– Make DNS::Query and DNS::Resource lowercase and deprecate the old names
– Change DNS::query/resource::type to query_type and deprecate old name
– Add DNS Start Of Authority parsing and serialization
– Parse and serialize MX preference field correctly
– Add NetworkInterface::friendly_name to get Windows friendly names
– Mask 16 bits on random number generated on traceroute example
– Fix TCP sequence number addition/subtraction when wrapping around
– Use 802.1ad protocol flag when seralizing stacked Dot1Q
– Code cleanup and use same syntax on the entire project
– Correctly serialize PPPoE session packets
– Fix IPv6 extension headers parsing/serialization
– Include examples before src to avoid duplicate tins target issue
– Add MPLS PDU and hook it up with ICMP extensions
– Set UDP checksum to 0xffff if it’s 0
– Don’t define TINS_STATIC in config.h
– Fix invalid RSNEAPOL parsing issue
– Remove special clang on OSX case when building gtest
– Update pseudoheader_checksum signature
– Fix overall checksum calculation
– Set ICMP payload length without padding if no extensions are present
– Export classes on Windows shared lib builds
– Use google/googletest submodule and update to HEAD
– Remove unused cassert header inclusions
– Add input/output memory stream classes port PDU classes to use them
– Add extensions for ICMP/ICMPv6
– Fix RSNInformation issues on big endian architectures
– Add IP::fragment_offset and IP::flags
– Don’t set Ethernet type if inner PDU type is unknown
– Don’t run IP source address overwrite tests on OSX
– Always calculate IP/IPv6 checksum
– Fix invalid constant value on PPPoE
– Define default constructor for PKTAP
– Guard 802.11 parsing code on PPI around HAVE_DOT11
– Fix parsing of Dot11 packets encapsulated on PPI having FCS-at-end
– Fix DataLinkType typo on doxygen docs
– Update docs on sniff_loop handle persistency
– Use uint32_t for DNS resource TTL setter
– Erase streams when they’re reassembed on IPv4Reassembler
– Make all exceptions derive from exception_base
– Add remove_option member to IP, TCP, Dot11, ICMPv6, DHCP and DHCPv6
– Allow HW addresses to be 00:00:00:00:00 on NetworkInterface::info
– Increment option size when adding a new DHCPv6 option
– Use NOMINMAX on examples
– Add metric field to RouteEntry
– Allow setting immediate mode on Sniffer
– Use one flags field for all flags on SnifferConfiguration
– Add ICMP responses example
– Add interfaces_info example
– Fix bug on SessionKeys::SessionKeys
– Fix compilation errors on android platform
– Fix example compilation on Windows
– Add PacketWriter::write overload that takes a Packet
– Use different IP addresses on IP tests depending on OS
– Allow retrieving keys on WPA2Decrypter
– Add NetworkInterface::is_up and NetworkInterface::info
– Add NetworkInterface::Info::is_up
– Fix compilation warnings on Windows x64
– Fix FindPCAP.cmake to find winpcap on x64
– Fix more tests warnings triggered on Windows
– Fix error on VC triggered by pcap redefining the “inline” keyword
– Soften DNS parsing rules
– Replace WIN32 macro with _WIN32
– Fix IPv6Address::to_string on Windows
– Fix DNS issues triggered on VC
– Add google test as git submodule
– Perserve IP protocol when using RawPDU
– Use pcap_sendpacket by default to send packets on Windows
– Don’t allow receiving l2 packets on windows
– Added RadioTap channel map type
– Made rsn_information() a const member function to make Dot11ManagementFrame immutable
– Ensure HAVE_CXX11 is checked when defining TINS_IS_CXX11
– Use one integer field for all flags on TCP
– Fix invalid DNS IPv4 address parsing on big endian arch
– Don’t compile WPA2 test if LIBTINS_ENABLE_WPA2=0
– Add Dot11 radio measurement name corresponding to IEEE 802.11-2012

Libtins Installation

Libtins Installation

libtins is a high-level, multiplatform C++ library for crafting, sending, sniffing and interpreting raw network packets.
Its main purpose is to provide the C++ developer an easy, efficient, platform and endianess-independent way to create tools which need to send, receive and manipulate specially crafted packets

The different objects in a packet as represented on libtins.

The different objects in a packet as represented on libtins.

libtins supports several protocols and features:
– Network packet crafting.
– Packet sniffing and automatic packet interpretation.
– Reading and writing PCAP files.
– Following and reassembling TCP streams on the fly.
– Decrypting WEP and WPA2(TKIP and CCMP) encrypted 802.11 data frames on the fly and interpreting the decrypted content.
– Supported protocols:
–IEEE 802.11
–IEEE 802.3
–IEEE 802.1q
–Ethernet
–ARP
–IP
–IPv6
–ICMP
–ICMPv6
–TCP
–UDP
–DHCP
–DHCPv6
–DNS
–RadioTap
–EAPOL
–PPPoE
–STP
–LLC
–LLC+SNAP
–Linux Crooked Capture
–PPI
–NULL/Loopbackinstall-libtins-3-3
Install:

Download version :
Tarball: v-3.3.tar.gz
Zipball: v-3.3.zip
Source, Installation and how to usage : http://libtins.github.io/ Our Post Before
Contact : Matias Fontanini (matias.fontanini@gmail.com)