Skype reverse-engineered and open sourced
How soon will Microsoft blow?
There have been many analyses of Skype’s behaviour over the years (the most famous perhaps is from Baset and Schultzrinne), but as far as Vulture Central is aware, nobody has yet gone so far as to reverse-engineer the whole kit-and-caboodle.
That’s the claim being made by Efim Bushmanov on this blog, where he offers his reverse-engineered Skype source code available for download.
His work is almost certain to spark debate over the legality – and license-compliance – of reverse-engineering the software. It’s also quite likely to spark a response from Skype’s new owner, Microsoft.
The Register has not yet had the time to install or test the code (if that were, in fact, legal to do), so we can’t vouch for its operation.
Whether Bushmanov has broken any laws or breached any license terms depends on the conditions under which he’s undertaken the project (and to some extent, the jurisdiction in which he worked).
It’s hard to replicate perfectly the behaviour of any software under completely clean-room conditions, and probably even harder to prove that such conditions existed. Bushmanov would at the very least have to demonstrate that he worked without a copy of the software to hand – that somebody else ran the software and observed its behaviours. The authors of the reverse-engineered copy would have to write their software solely from Skype’s reported behaviour under different conditions.
According to this discussion on Hacker News, Bushmanov seems to be including original Skype binaries in its downloads, which would be a no-no. However, HN’s interpretation is based on the filenames rather than the contents of the files; perhaps Bushmanov simply didn’t have the nous to give his files names that weren’t subject to confusion.
The Register does however anticipate a swift response from Microsoft, if the software is what it claims to be. ®
> "he de-compiled the binary back into source code"
> That's not technically possible, nor will it ever be.
...you go on to talk about dissassemblers...
These tools/techniques have been around for a long time and are suprisingly effective with some less strippy languages such as java. Of course, getting the original source code back is nigh on impossible (think, breaking an egg and then trying to put it back together) but this doesnt mean you cannot get effective code that works in the same way - modelling the broken pieces of said egg and producing your own model that whilst similar in function and design is not the original...
Skype has had some pretty good protections built into the code from what i hear, to stop exactly this kind of analysis. So well done. And, its about time :)
No it is *not* impossible
Given a binary executable, you could generate some Source Code which, when compiled, would produce an identical binary.
Sure, that probably wouldn't be the same as the original Source Code -- maybe not even in the same language, even -- as a natural consequence of the many-to-one mapping from source code to binaries. But the important thing is, it would compile to produce an identical binary.
IANAL so bear with me here....
But isn't it OK to reverse engineer proprietary protocols in the EU for the purposes of interoperability something along those lines?