Awesome
Protocol Analyzer (NetProtoFuzz)
<h2><b>Protocol-oriented fuzz testing framework for network protocols.</b></h2> <h3><b>Framework and Scanner under the deep development.</b> Version 0.0.12.</h3><h2><b>The main purposes of the framework</b></h2>
-
Verification of the operation of proprietary network protocols in accordance with the declared description;
-
Detection of undeclared capabilities and undefined behavior in the implementation of proprietary network protocols;
-
Audit of security and search for changes from the last scan period.
<h2><b>Current goals</b></h2>
-
Development the basis of network interaction for the needs of the framework;
- Epoll Socket State Pool Interface for all Sockets under the observation;
- Managed Socket Pool for unique Interface to take and control sockets;
- UDP Socket Interface;
- RAW Socket Interface;
- ✓ Netlink Socket Interface for interact with Linux Kernel;
- Create two error interfaces: POSIX-oriented, C++ exceptions.
-
Development an interface for describing the structure of Network Protocol;
- Implement libJSON as submodule of framework for parsing input configs.
-
Development an interface for create Tasks and manage them;
-
Development an interface for store Global information and Settings in runtime;
-
✓ Development main data class for working with binary data and build all infrastructure around it;
-
Create a low-level and high-level API for analyzer library;
-
✓ Development Callback infrastructure through the framework.
<h2><b>Requirements for building the project</b></h2>
-
OpenSSL >= 1.0.2h (libssl-dev) or 1.1.1 for using TLSv1.3;
-
CMake >= 3.8.0 (for C++17 standard support);
-
Compiler, supported full C++17 standard ('clang-6.0.0', 'gcc-7.0', icc-19.0 or higher).
<h2><b>Build</b></h2>
- Go to 'build.sh' script.
- Uncomment (define) the necessary parameters 'CXX' and 'BUILD_TYPE'.
- Run the build script: 'chmod +x build.sh && ./build.sh'.