Tomasz Wasilczyk

software developer



Free library for handling of Gadu-Gadu instant messaging protocol. I investigate protocol changes and implement its new features.

  • C
  • Linux
  • reverse engineering
  • Windows

Current status

I am one of libgadu's maintainers since 2013-09-19, contributing to it since 2011-10-10. I started working on it, to provide various Gadu-Gadu protocol improvements for Pidgin.

GG11 protocol

Gadu-Gadu, with the release 11 of their product, changed significantly its protocol. The old version still worked, but it didn't allowed using of any new services (like the file transfer, I promised to implement during Google Summer of Code 2012).

The problem was, there were no possibility to sniff communication between client and server, as it was in previous versions. Fortunately, I've managed to investigate it anyway and implement in libgadu. It turned out, that GG11 was one of the biggest breakthroughs in protocol design.

Windows version

There were no official win32 version, so libpurple had its own libgadu fork embedded. However, this method of using external libraries causes many problems. Thus, I put an effort to provide Windows support in upstream libgadu. In cooperation with Kadu instant messenger developers, we managed to prepare a working build.

Wireshark dissector

When working on GG11 protocol, I've implemented a Wireshark dissector plugin (released on GitHub). Unfortunately, after doing majority of implementation, it turned out, that GG11 is based on Google's Protocol Buffers structures. It simplifies things very much, but it also means the whole plugin needs to be rewritten. I'll do it in the future.