Download: http://download.gna.org/libsecondlife/libsecondlife-0.0.1.tar.gz
This is the first alpha release from the Second Life Reverse Engineering Team. The code is split in to a secondlife library, and a test_app that shows how to currently make use of the library. No readme file is included due to utter laziness and apathy towards the alpha release, but post here if you want to use this and have questions on how to get it to work. The basic idea right now is you create a new instance of the SecondLife class, pass it the name of the keywords file, pass it the name of the comm.dat file and the desired output file, and pass that file to buildProtocolMap() to initialize the engine. Then register callbacks for any type of packets you want to deal with, and call login() with all the login details and your login callback. The login callback needs to connectToSim() after a successful login, and send one more packet after that, CompleteAgentMovement to actually appear in the sim and online. You can continue to send more packets to the sim, or go straight in to a processing loop that calls SecondLife::tick() to process any packets sitting in the queue. Callbacks will be given a pointer to a Packet object and it's command name where you can look at individual fields of the packet or peek at the raw data.
This release is targeted mainly at experienced C++ developers, and a thinly veiled attempt at showing progress on the project to recruit more members.
This code is released under a modified BSD license meaning do whatever you want with it except take credit for it. You will need the Boost.Build system installed; run bjam in the libsecondlife directory to compile. Additional dependencies are Boost.Asio, Boost.Function, Boost.Bind, Boost.Thread, OpenSSL, libcurl, and possibly some of the other Boost libraries (it's a good idea to install all of them, very useful stuff). The code should theoretically compile in Windows, but it's only been extensively tested on Linux platforms.