Dynamo



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

Latest source code from 2009 can be downloaded from here: dynamo_project.tar

Dynamo is most useful on a network where you can see everyone else's frames bouncing around (e.g. on a wireless network, or on a wired network with a hub) however it is still useful on a wired switched network. In order to be able to see everyone else's frames, your network card must support Monitor 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). 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.



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