Dynamo


EXTREME CAUTION ADVISED: Dynamo is an inherently dangerous program. Usage of this program may result in serious injury and even death. By reading this webpage and by downloading and using this program, you willingly accept the serious risks involved. You accept as your own responsiblity any harm that comes about as a result of using this program. If you do not accept these terms, click here.

Dynamo is a network analysis tool. It's free and open-source. Here's what she looks like:

Dynamo is for use on networks where you can see everyone else's frames bouncing around (e.g. on a wireless network, or on a wired network with a hub). In order to be able to see everyone else's frames, your network card must support Promiscuous Mode (this means that the card will take in a frame even if the frame's destination MAC address is not equal to the card's own MAC address). Dynamo is far less useful on a wired network that has a switch because you can't see other people's frames. With the latest version of Dynamo you can:


To download Dynamo, follow the instructions for your platform:

Dynamo is written in C++ and makes use of the following cross-platform libraries:
Dynamo was developed on a laptop with an x86-32 dual-core CPU running Ubuntu Linux. The following programs were used directly in the creation of Dynamo:
The following programs were used indirectly in the creation of Dynamo:
The various notes and UML diagrams I put together in the development of Dynamo can be seen here:

Class Diagram for entire program

Sequence Diagram for the "Sniffer" thread

Multi-threading analysis for Sniffer Database

Dynamo hasn't undergone much testing, reason being that I don't have PC's and networks available to me to play around with. The Linux port of Dynamo underwent far more testing than the Microsoft Windows port. Also I haven't taken the time to make sure that Dynamo is immune from exploits from ill-formed network packets (I'll look at this in a future version). If you manage to get Dynamo to crash, take a look at the Debugging section below.


There's a public discussion thread about Dynamo over on the Backtrack Linux forums:

Dynamo Discussion Thread

Also you can reach me personally on the following e-mail:



Debugging

You can use the GDB debugger to try figure out why Dynamo is crashing. First, run Dynamo from within the GDB debugger like so:

root:~/$ gdb dynamo

GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /usr/sbin/dynamo...done.
(gdb) 


Then type in "run" and hit return:
(gdb) run
Starting program: /usr/sbin/dynamo 
[Thread debugging using libthread_db enabled]


Then play around with Dynamo and get it to crash. Look at the output from gdb:
Program received signal SIGSEGV, Segmentation fault.
0x0806c82e in Dialog_About::OnButtonClick_Crash (this=0x8209cd0, event=...) at ../../../../source_code/GUI_Dialog_About.hpp:17
17	        *(int*)0 = 666;


For more detailed information, you can type in "backtrace" and hit return.

You can e-mail me with bug reports, comments, questions, suggestions.

Have fun! :-D
Virjacode Home