steam prpl?

Mark Schneider queueram at gmail.com
Sun Dec 2 01:24:10 EST 2007


On Nov 13, 2007 2:34 AM, Ryan Barrett <pidgin at ryanb.org> wrote:
> hey all. does anyone know anything about the steam (http://steampowered.com/ )
> IM protocol? i've been spending more and more time on steam lately, and i'd
> love to use pidgin instead of their client when i'm not actually in a game.
>
> i haven't found much with web searches. the most useful so far is this page on
> their developer wiki, which seems to imply that it's msn:
>
> http://developer.valvesoftware.com/wiki/Friends/Suggestions
>
> anyone know more?
>
> -Ryan

Ryan,

I saw your message a while back, and i've been curious about the Steam
Friends protocol myself.  They don't use MSN: the link you reference
is for people to submit ideas for improvement of Steam Friends to the
developers.

I finally got around to analyzing the Steam protocol this weekend, and
this is what i'm finding:
-Uses UDP running on port 27017 (although previous versions used 27013
and 27014, so maybe they just bump the port# when they change
protocols).
-Uses RSA (or very similar encryption) scheme to transmit messages.
They use the CryptoPP library for this.
-Each message contains a 36-byte header beginning with the string
"VS01" followed by 32-bytes that determine what type of message it is.
Best guesses:
bytes 0-3: "VS01"
bytes 4-7: type of message
bytes 8-11: destination ID
bytes 12-15: source ID
bytes 16-19: id/sequence#1
bytes 20-23: iid/sequence#2 (looks like which id this packet is responding to)
bytes 24-27: 0, 1, or 2 are all i've seen so far.  No idea.
bytes 28-31: id/sequence#1 or id/sequence#1+1 (if contains remainder
of data from previous split packet)
bytes 32-35: length (of whole packet, even if split)

I'm going to do some more poking around, but unfortunately i'm not as
educated on encryption as i would like to be (i understand the Alice
and Bob story [1], but that's about it).

-Mark

[1] http://en.wikipedia.org/wiki/Public-key_cryptography




More information about the Devel mailing list