evan_tech

Previous Entry Share Next Entry
11:24 am, 19 Nov 03

protocol hackery

When I was talking to Jeff (who I think said he was involved in reverse-engineering ICQ) about protocol stuff, he mentioned he knows the guy who wrote gnapster (for context: I wrote “gnome-napster”, Jeff’s friend wrote “gnapster”, and four wrote “gnap”, and they all did about the same thing and sucked a whole bunch). This friend, anyway, is supposedly now working on a multiprotocol file-“sharing” client that speaks a bunch of different protocols. From there, MLDonkey came up.

MLDonkey is this crazy awesome multiprotocol file-“sharing” client that is completely written in OCaml, which is pretty cool in itself. But Jeff was telling me: they were the first to figure out Fasttrack, the superfancy protocol spoken by Kazaa and Morpheus and (etc.), which is where all the Napster-style P2P action is these days (bittorrent is big too, but it works from a different model). The Kazaa people make their money off of ads and spyware in the client, so they don’t want other clients on their network, so they change the protocol regularly to try to keep clients off. (See also: all of the battles people went through to get AIM’s OSCAR to work.)

Here’s the punchline: Fasttrack changed in some mysterious way, and nobody could figure it out. So some (totally insane) people wrote this program that extracts the machine code from the Kazaa executable and generates code that emulates a PC well enough for the code to run. It’s reportedly some horrible 20,000 line file/function that takes in some input and gives you back some magical output that just manages to work.

(Disclaimer: the facts were likely exaggerated in this to make it sound more legendary.)

Update: found it! Hahaha, that’s so ugly slash awesome!