Tibiasock.dll exploits code and data injection in order to inject packets into Tibia's incoming and outgoing buffers. Tibiasock allows Tibia to handle all encryption and checksums - it only requires 5 addresses to update for both incoming and outgoing packet injection. It is written C++ and can be used in any language. The reason I decided to develop this library is because the current Packet.dll is lacking ASLR and is quite old. I feel that a new library with some added functionality is a good thing.

General Export Prototypes
[code=c++]DWORD GetProcessImageBase(HANDLE process)
void SendPacketToServer(HANDLE process, BYTE* dataBuffer, int length)
void SendPacketToClient(HANDLE process, BYTE* dataBuffer, int length)
[/code]
Extended Export Prototypes
[code=c++]void SendPacketToClientEx(HANDLE process, BYTE* dataBuffer, int length, DWORD RecvStream, DWORD ParserCall)
void SendPacketToServerEx(HANDLE process, BYTE* dataBuffer, int length, DWORD SendStreamData, DWORD SendStreamLength, DWORD SendPacketCall)[/code]
Tibiasock can be statically updated or it can be used across versions dynamically using the extended exports. These exports allow you to pass the required addresses (ASLR aligned) into the functions at execution time. Lastly, Tibiasock exports functionality to easily obtain a processes image base.

In order to use Tibiasock, the process handle you pass must have the following access
[code=c++]PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ[/code]
Make sure to create your packets wisely - any wrong incoming packets can cause debugs and any wrong outgoing packets can cause bans.

I would appreciate if different users could post different example in different languages of how to use this. A C++ example can be found in the source code, where I also have a test project.
Source code repository: http://code.google.com/p/tibiasock/