All Projects → mfontanini → Libtins

mfontanini / Libtins

Licence: bsd-2-clause
High-level, multiplatform C++ network packet sniffing and crafting library.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Libtins

Scapy
Scapy: the Python-based interactive packet manipulation program & library. Supports Python 2 & Python 3.
Stars: ✭ 6,932 (+330.83%)
Mutual labels:  network, pcap, packet-analyser
Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (-86.58%)
Mutual labels:  network, pcap, packets
Daggy
Daggy - Data Aggregation Utility. Open source, free, cross-platform, server-less, useful utility for remote or local data aggregation and streaming
Stars: ✭ 91 (-94.34%)
Mutual labels:  network, pcap, sniffing
Pcapxray
❄️ PcapXray - A Network Forensics Tool - To visualize a Packet Capture offline as a Network Diagram including device identification, highlight important communication and file extraction
Stars: ✭ 1,096 (-31.88%)
Mutual labels:  network, pcap, packets
DivertPInvoke
PInvoke wrapper for WinDivert
Stars: ✭ 22 (-98.63%)
Mutual labels:  packets, packet-analyser, packet-parsing
SnifferUI
基于MFC和WinPcap库开发的网络抓包和协议分析软件
Stars: ✭ 86 (-94.66%)
Mutual labels:  pcap, packet-analyser
Tcp Shaker
💓 Performing TCP handshake without ACK in Go, useful for health checking, that is SYN, SYN-ACK, RST.
Stars: ✭ 289 (-82.04%)
Mutual labels:  network, packets
Ntopng
Web-based Traffic and Security Network Traffic Monitoring
Stars: ✭ 4,313 (+168.05%)
Mutual labels:  network, packet-analyser
Packet Agent
A toolset for network packet capture in Cloud/Kubernetes and Virtualized environment.
Stars: ✭ 419 (-73.96%)
Mutual labels:  network, pcap
Sniffglue
Secure multithreaded packet sniffer
Stars: ✭ 651 (-59.54%)
Mutual labels:  network, pcap
Node Minecraft Protocol
Parse and serialize minecraft packets, plus authentication and encryption.
Stars: ✭ 697 (-56.68%)
Mutual labels:  network, packets
sniffer
🤒 A modern alternative network traffic sniffer.
Stars: ✭ 428 (-73.4%)
Mutual labels:  pcap, packets
tcpslice
tcpslice concatenates multiple pcap files together, or extracts time slices from one or more pcap files.
Stars: ✭ 48 (-97.02%)
Mutual labels:  pcap, libpcap
Polymorph
Polymorph is a real-time network packet manipulation framework with support for almost all existing protocols
Stars: ✭ 364 (-77.38%)
Mutual labels:  network, packets
packiffer
lightweight cross-platform networking toolkit
Stars: ✭ 52 (-96.77%)
Mutual labels:  pcap, libpcap
Divert.Net
.NET Wrapper for WinDivert
Stars: ✭ 51 (-96.83%)
Mutual labels:  packets, packet-analyser
Net2pcap
Net2PCAP is a simple network-to-pcap capture file for Linux. Its goal is to be as simple as possible to be used in hostile environments
Stars: ✭ 36 (-97.76%)
Mutual labels:  network, pcap
Cheatsheat Tcpdump
cheatsheat-tcpdump
Stars: ✭ 54 (-96.64%)
Mutual labels:  network, sniffing
Xdp
Package xdp allows one to use XDP sockets from the Go programming language.
Stars: ✭ 36 (-97.76%)
Mutual labels:  network, packets
Smart Buffer
smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.
Stars: ✭ 73 (-95.46%)
Mutual labels:  network, packets

libtins

Build status Build status

libtins is a high-level, multiplatform C++ network packet sniffing and crafting library.

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.

In order to read tutorials, examples and checkout some benchmarks of the library, please visit:

http://libtins.github.io/

Compiling

libtins depends on libpcap and openssl, although the latter is not necessary if some features of the library are disabled.

In order to compile, execute:

# Create the build directory
mkdir build
cd build

# Configure the project. Add any relevant configuration flags
cmake ../

# Compile!
make

Static/shared build

Note that by default, only the shared object is compiled. If you would like to generate a static library file, run:

cmake ../ -DLIBTINS_BUILD_SHARED=0

The generated static/shared library files will be located in the build/lib directory.

C++11 support

libtins is noticeably faster if you enable C++11 support. Therefore, if your compiler supports this standard, then you should enable it. In order to do so, use the LIBTINS_ENABLE_CXX11 switch:

cmake ../ -DLIBTINS_ENABLE_CXX11=1

TCP ACK tracker

The TCP ACK tracker feature requires the boost.icl library (header only). This feature is enabled by default but will be disabled if the boost headers are not found. You can disable this feature by using:

cmake ../ -DLIBTINS_ENABLE_ACK_TRACKER=0

If your boost installation is on some non-standard path, use the parameters shown on the CMake FindBoost help

WPA2 decryption

If you want to disable WPA2 decryption support, which will remove openssl as a dependency for compilation, use the LIBTINS_ENABLE_WPA2 switch:

cmake ../ -DLIBTINS_ENABLE_WPA2=0

IEEE 802.11 support

If you want to disable IEEE 802.11 support(this will also disable RadioTap and WPA2 decryption), which will reduce the size of the resulting library in around 20%, use the LIBTINS_ENABLE_DOT11 switch:

cmake ../ -DLIBTINS_ENABLE_DOT11=0

Installing

Once you're done, if you want to install the header files and the shared object, execute as root:

make install

This will install the shared object typically in /usr/local/lib. Note that you might have to update ldconfig's cache before using it, so in order to invalidate it, you should run(as root):

ldconfig

Running tests

You may want to run the unit tests on your system so you make sure everything works. In order to do so, you need to follow these steps:

# This will fetch the googletest submodule, needed for tests
git submodule init
git submodule update

mkdir build
cd build

# Use any options you want
cmake .. 

# Compile tests
make tests

# Run them
make test

If you find that any tests fail, please create an ticket in the issue tracker indicating the platform and architecture you're using.

Examples

You might want to have a look at the examples located in the "examples" directory. The same samples can be found online at:

http://libtins.github.io/examples/

Contributing

If you want to report a bug or make a pull request, please have a look at the contributing file before doing so.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].