Skip to content

ejoebstl/eexnetworklibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this?

The eEx Network Library is a implementation several computer network protocols in C#. The library is object oriented and allows fine-grained access to network packets and algorithms with a graph-based approch. It also takes care of concurrency and resource management, which can be tricky tasks when working with networks.

The Network Library is the core of the eEx NetLab. The tools Traffic Watch and Network Symphony were also built using this library.

Notice: This project is discontinued since 2011. However, the code is stable and well documented, and I will happily answer your questions.

Features

  • Injection and Sniffing - Send and receive to and from your pysical network card, including packet filters (winpcap or libpcap required)
  • Protocol Parsing - Ethernet, IPv4, IPv6, TCP, UDP, DHCP, OSPF, RIP, DNS, HTTP, ICMPv4, ICMPv6
  • Userland Sockets - Bind on foreign addresses and hijack TCP/IP connections
  • Network Algorithms - DHCP Server, Loggers, Routing, NAT and much more
  • WAN Emulation - WAN simulation with frame loss, duplication of frames, bit errors and so on between to interfaces
  • Attacks - Proof-of-Concept - ARP poisoning, DHCP spoofing, DNS on-the-fly spoofing
  • Scanning - Passive scanning, ARP scanning, IP scanning
  • Extensibility - Framework architecture allows you to implement your own Traffic Handlers with ease
  • HTTP interception - Monitor, decode and modify HTTP payloads and headers on the fly.

Key Principles

In the Network Library, there are three main concepts, which provide the basics of the Network Library framework:

  • The first one is the Traffic Handler class. Building on top of this class enables developers to modify frames on a callback-like basis, without worrying about asynchronous operation. Most applications on top of this library are built by constructing a graph of Traffic Handlers.
  • The second one is the Frame class. A frame represents any network packet. Frames can be parsed or casted to IP frames, Ethernet frames, TCP frames and so on. A frame also provides methods to parse from raw data or to convert the frame object back to raw data.
  • The third one is the Layer Architecture, which provides support for larger, more dynamic applications which can also support plug-ins, like the eEx NetLab. The benefit is automated resource collection and serializeable state.

Documentation

All classes are documented using C#-Style comments, compatible with intelliSense. A good place to get started is to look at the implementation of existing Traffic Handlers and at the tutorials linked below.

Further Resources and Tutorials

About

TCP/IP toolkit written in C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages