Evan Martin (evan) wrote in evan_tech,
Evan Martin

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!

  • no go

    Two friends of mine were pretty enthusiastic about the Go language, so I tried writing a program in it yesterday. It is frustrating because despite…

  • fonts on linux

    I wrote a document on how to diagnose font problems on Linux. I would appreciate feedback, corrections, other common misconfigurations, etc.

  • playing with vala

    I actually was toying with making something like Vala back in college. It's pretty cute. Much like using the sane subset of C++, as you write code…

  • Post a new comment


    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.