Tutorial: Internet Relay Chat (IRC)

chat layer 7 IRC


This tutorial discusses the plugin ircDecode.


First, restore T2 into a pristine state by removing all unnecessary or older plugins from the plugin folder ~/.tranalyzer/plugins:

t2build -e -y

Are you sure you want to empty the plugin folder '/home/wurst/.tranalyzer/plugins' (y/N)? yes
Plugin folder emptied

Then compile the core (tranalyzer2) and the following plugins:

t2build tranalyzer2 basicFlow tcpStates ircDecode txtSink


If you did not create a separate data and results directory yet, please do it now in another bash window, that facilitates your workflow:

mkdir ~/data ~/results

The sample PCAP used in this tutorial can be downloaded here: irc.pcap.

Please save it in your ~/data folder.

Now you are all set for analyzing IRC traffic!


Let’s look at the plugin configuration first:


vi src/ircDecode.h

Run t2 on the supplied pcap.

t2 -r ~/data/irc.pcap -w ~/results/ -s

So the aggregated ircStat tells us there is IRC.

tawk -V ircStat

The ircStat column is to be interpreted as follows:

   bit | ircStat | Description
     0 | 0x01    | IRC port found
     1 | 0x02    | IRC registration successful
     2 | 0x04    | IRC password incorrect
     3 | 0x08    | -

     4 | 0x10    | Unrecognized IRC command
     5 | 0x20    | File error (IRC_SAVE == 1)
     6 | 0x40    | Array, string or filename overflow
     7 | 0x80    | Invalid format or parsing error

tcol ~/results/irc_flows.txt


Don’t forget to reset the plugin configuration for the next tutorial.

t2conf ircDecode --reset && t2build ircDecode

Have fun analyzing IRC traffic!