Decoder is a tool that decodes packet dumps according to the Second
Life network protocol. Decoder tries to be semi-intelligent about
finding packet data in its input, and in particular supports Second
Life console logs and (properly generated) TCPDump output, as
described below.
BUILDING
========
To build Decoder, you must check out the entire libsecondlife trunk
with subversion:
svn co svn://svn.gna.org/svn/libsecondlife/trunk libsecondlife
The libsecondlife-cs project must be built first; see
libsecondlife-cs/README for instructions. Building SLProxy should be
straightforward with Microsoft Visual Studio. If you're using Mono,
you can build the solution with the included build script:
perl build
The SLProxy library and its example applications will be built in
bin/Debug. In order to run the example applications, you must first
add the libsecondlife-cs build directory to your MONO_PATH environment
variable. For example, if your libsecondlife-cs directory is
~/libsecondlife/libsecondlife-cs and your shell is bash, you can type:
export MONO_PATH=$MONO_PATH:~/libsecondlife/libsecondlife-cs/bin/Debug/
SUPPORTED LOG FORMATS
=====================
You can use Decoder by either copying and pasting packet dumps
directly, or piping it a logfile, as below:
Decoder.exe < some.log
After pasting a packet dump directly into Decoder, you may have to
press enter a couple times to indicate that the packet dump is
complete. Decoder will attempt to automatically detect the format of
its input:
1. Generic
----------
If Decoder doesn't detect a log format it understands, it will operate
in Generic mode, in which it will look for hex dumps of packets.
While operating in generic mode, Decoder assumes that the packet dump
ONLY contains the packet data, without the UDP header.
2. Second Life Console
----------------------
Decoder understands the console output from Second Life; you can use
this to parse packets that are dumped prior to a crash.
3. TCPDump
----------
You can decode an entire Second Life session by giving Decoder a
properly generated tcpdump log. You must run tcpdump with the options
`-x -s0'. For example, using Mono:
$ sudo tcpdump -x -s0 | mono Decoder.exe > ~/sldump
See the manpage for tcpdump(1) for more information.