Skip to content

Commit

Permalink
Merge pull request #7 from r-richter/v0.3_dev
Browse files Browse the repository at this point in the history
V0.3 dev
  • Loading branch information
r-richter authored Jun 15, 2020
2 parents 767eca9 + d2ddbfb commit 97f1e1b
Show file tree
Hide file tree
Showing 128 changed files with 2,590 additions and 421 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#
# Copyright (C) 2020 Robin Richter
#
# Contact : [email protected]
# Homepage : http://sourceforge.net/projects/hyenae-ng/
# Contact : [email protected]
# Homepage : https://github.com/r-richter/hyenae-ng
#
# This file is part of Hyenae NG.
#
Expand Down
67 changes: 67 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
--------------------------------------------------------------------------------

Hyenae NG

Readme

--------------------------------------------------------------------------------

1. About Hyenae NG

Hyenae NG (Next Generation) is a re-write of the original Hyenae tool which
was originally published back in the year 2010.

Besides switching from C to C++, using modern design concepts, Hyenae NG was
(just like the original Hyenae) written with maximum portability in mind.
Since the original Hyenae had a very complex command line syntax Hyenae NG
comes with a fast and intuitively usable command line menu that will allow
you to effectively set up even complex stress-tests or attacks scenarios
within seconds.

--------------------------------------------------------------------------------

2. Basic Usage

Once you start Hyenae NG, it will enter the main menu state. From here you can
set up your desired output, generator and dispatcher configuration.

2.1 Output Setup

The output setup let you choose from several different output option. You can
either have Hyenae NG's output ignore by selecting "No Output" our you can
have it send to either a file or a network adapter. Once you have selected
an output, you can enter it's sub setup by selecting it again by either
entering it's menu item number again or by simply pressing enter. Outputs
that have a sub-setup are marked with a (...) once they are selected.

2.2 Generator Setup

The generator setup let you chose from several different generators. Most
generators feature a payload option for which you can select another
generator and so on. Since network frame generators are nested in transport
layers, their available payload generators will differ based on the
previously chosen frame generator. Here is an example of a typical
payload nesting for an ethernet packet:

Ethernet +-> IPv4 +-> TCP
| +-> UDP
|
+-> IPv6 +-> TCP
+-> UPD

2.3 Dispatcher Setup

The dispatcher setup will let you set up the actual data dispatcher. You can
define stop-limits or configure a fixed or random send delay in order to
break flood detection mechanisms on your target system.

2.4 Start Dispatcher

Once you have set a generator, you can choose this option to start up the
dispatcher and start sending packets. If you haven't set a generator yet,
an error message will be shown instead. The dispatcher will operate until
either a stop-limit (if set) is reached or the user presses any key. After
the dispatcher has stopped you can either return to the main menu by entering
0 or start it again by either entering 1 or simply pressing enter.

--------------------------------------------------------------------------------
4 changes: 2 additions & 2 deletions include/assert.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/endian.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/format_error.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/console_app.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/console_app_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/console_app_state_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/console_io.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/console_menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/io/std_console_io.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/states/dispatcher_setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
4 changes: 2 additions & 2 deletions include/frontend/console/states/ethernet_frame_setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
54 changes: 40 additions & 14 deletions include/frontend/console/states/generator_selector.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand All @@ -24,21 +24,23 @@
*
*/

#ifndef GENERATOR_SELECTION_H
#define GENERATOR_SELECTION_H
#ifndef GENERATOR_SELECTOR_H
#define GENERATOR_SELECTOR_H

#include "../../../../include/model/data_generator.h"
#include "../../../../include/frontend/console/console_menu.h"
#include "../../../../include/frontend/console/states/generator_setup.h"
#include "../../../../include/frontend/console/states/ethernet_frame_setup.h"
#include "../../../../include/frontend/console/states/ip_frame_setup.h"


namespace hyenae::frontend::console::states
{
/*---------------------------------------------------------------------- */

class main_menu;
class ip_frame_setup;
class ip_v4_frame_setup;
class ip_v6_frame_setup;
class icmp_v4_frame_setup;
class icmp_v6_frame_setup;
class ethernet_frame_setup;

class generator_selector :
Expand All @@ -47,11 +49,17 @@ namespace hyenae::frontend::console::states
private:
/* Generator Flags */
static const size_t GFLAG_ETHERNET_FRAME = 0x1 << 0;
static const size_t GFLAG_IPV4_FRAME = 0x1 << 1;
static const size_t GFLAG_IPV6_FRAME = 0x1 << 2;
static const size_t GFLAG_TCP_FRAME = 0x1 << 3;
static const size_t GFLAG_UDP_FRAME = 0x1 << 4;
static const size_t GFLAG_TEXT_BUFFER = 0x1 << 5;
static const size_t GFLAG_IP_V4_FRAME = 0x1 << 1;
static const size_t GFLAG_IP_V6_FRAME = 0x1 << 2;
static const size_t GFLAG_ICMP_V4_FRAME = 0x1 << 3;
static const size_t GFLAG_ICMP_V6_FRAME = 0x1 << 4;
static const size_t GFLAG_ICMP_V4_ECHO_PAYLOAD = 0x1 << 5;
static const size_t GFLAG_ICMP_V6_ECHO_PAYLOAD = 0x1 << 6;
static const size_t GFLAG_TCP_OVER_IP_V4_FRAME = 0x1 << 7;
static const size_t GFLAG_TCP_OVER_IP_V6_FRAME = 0x1 << 8;
static const size_t GFLAG_UDP_OVER_IP_V4_FRAME = 0x1 << 9;
static const size_t GFLAG_UDP_OVER_IP_V6_FRAME = 0x1 << 10;
static const size_t GFLAG_TEXT_BUFFER = 0x1 << 11;

bool _init = false;
string_t _title;
Expand Down Expand Up @@ -90,7 +98,25 @@ namespace hyenae::frontend::console::states
string_t title,
console_app_state_context* context,
console_io* console_io,
ip_frame_setup* parent);
ip_v4_frame_setup* parent);

generator_selector(
string_t title,
console_app_state_context* context,
console_io* console_io,
ip_v6_frame_setup* parent);

generator_selector(
string_t title,
console_app_state_context* context,
console_io* console_io,
icmp_v4_frame_setup* parent);

generator_selector(
string_t title,
console_app_state_context* context,
console_io* console_io,
icmp_v6_frame_setup* parent);

~generator_selector();
bool run();
Expand All @@ -112,4 +138,4 @@ namespace hyenae::frontend::console::states

} /* hyenae::frontend::console::states */

#endif /* GENERATOR_SELECTION_H */
#endif /* GENERATOR_SELECTOR_H */
4 changes: 2 additions & 2 deletions include/frontend/console/states/generator_setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (C) 2020 Robin Richter
*
* Contact : [email protected]
* Homepage : http://sourceforge.net/projects/hyenae-ng/
* Contact : [email protected]
* Homepage : https://github.com/r-richter/hyenae-ng
*
* This file is part of Hyenae NG.
*
Expand Down
Loading

0 comments on commit 97f1e1b

Please sign in to comment.