Files
libremetaverse/Decoder/README
John Hurliman 1cb7f4c253 Huge svn cleanup!
* libsecondlife-cs is now libsecondlife
* All applications that are staying have been moved to trunk/
* SLProxy loads Analyst plugin by default if no other plugin is specified on the command line

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1068 52acb1d6-8a22-11de-b505-999d5b087335
2007-03-26 23:12:39 +00:00

61 lines
2.3 KiB
Plaintext

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 for example supports parsing
Second Life's console output or acting as a filter for tcpdump.
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/
USAGE
=====
You can use Decoder by either copying and pasting packet dumps
directly, or piping it a logfile, as below:
Decoder.exe < some.log
Decoder will attempt to automatically extract the packet data from the
rest of the input. If you paste the packet dump directly rather than
piping in a logfile, you may have to press enter a couple times to
indicate that the packet dump is complete.
You can filter packets by providing a regular expression as a
command-line argument. In this case, at least one field in the form
"PacketName.BlockName.FieldName = FieldValue" must match (case
insensitive) for the packet to be displayed. In the case of
variable-length fields, the FieldValue will be rendered as a
hexadecimal numeral preceeded by 0x, and if that doesn't match,
as a UTF-8 string if possible.
USAGE WITH TCPDUMP
==================
Decoder has enhanced support for tcpdump output. Traffic not related
to SL will be filtered, and the endpoints for each packet will be
displayed. To generate output suitable for Decoder, you must run
tcpdump with the options `-x -s0'. For example:
$ sudo tcpdump -x -s0 | mono Decoder.exe > ~/sldump
See the manpage for tcpdump(1) for more information.