Skypeopensource2 – Skype client based on reversing Skype 5.5
github.com
github.com
Magic numbers, ... and strings, all over the place [0]. Memory leak galore (debug code?) [1]. Probably buffer overflows all over the place, here's one I noticed [2]. I suspect others given the proliferation of opaque pointers and memcpy usage.
[0] https://github.com/skypeopensource/skypeopensource2/blob/mas...
[1] https://github.com/skypeopensource/skypeopensource2/blob/mas...
[2] https://github.com/skypeopensource/skypeopensource2/blob/mas...
If issues are never brought to light then it's very unlikely they will ever be fixed. Would you rather everyone just stayed silent?
I have great respect for someone that can put in the time and effort to reverse engineer Skype, and brave Microsoft's legal team in doing so, but in its current state this code can't be used safely and is far from easy to understand either.
http://techrights.org/2015/01/02/snowden-leaks-on-spying/
Otherwise, dropping peer to peer is the only way to achieve the projects goals.
But I agree that it would be dangerous to use now. And the author isn't a skilled VCS user or open source dev either. (comments say all rights reserved)
https://github.com/skypeopensource/skypeopensource2/blob/mas...
https://github.com/skypeopensource/skypeopensource2/blob/mas...
I cannot specify more examples.
The only explains some of the wierdness though. That second link is completely inexplicable.
The developer may not have enough development experience to organize it decently or just rushed it online because of anxiety.
Anyway, very good resource for others if there still any interest at all at Skype compatibility or else, only missing the .idb with renamed subs and comments. :)
https://en.wikipedia.org/wiki/Mumble_(software)
I'm surprised the gaming chat programs don't get more crossover use. Well, I'm not surprised that a commercial project has a larger userbase than something that requires you to find a server.
But I am surprised when, say, podcast hosts make jokes about lag or call quality on their Skype connections with guests. There are other applications that solve some of these problems, and I'd think if your main creative product relies on call quality for guests, you might look a few steps beneath the most ubiquitous option. (ie, If you're at the level where you're buying an uncommon specialist's mic, you could probably benefit from comparison shopping for voip implementations.)
https://github.com/jitsi/jitsi-meet
Try it here: https://meet.jit.si/
It's a modern, WebRTC-based replacement for Skype, Google Hangouts and other video/audio conferencing solutions.
And it's great. The company I work for is now using it exclusively for meetings and telepresence. The echo cancellation is outstanding and you can even connect it to a SIP server. No client is required besides Google Chrome or Firefox. There's nothing that comes close to it in terms of sophistication and quality.
It works well for one-on-one and audio calls.
Of course, I still willingly use Discord despite this - because it generally just works (even in browser) and has an extensive feature set, and is relatively easy to use. (this is among friends who aren't technical, so ease-of-use is a large factor). Previously I used Mumble, but indeed, it's a bit of a fickle beast for things that should be fairly automated (like configuring your voice inputs, etc).
deb: https://discordapp.com/api/download/canary?platform=linux
.tar.gz: https://discordapp.com/api/download/canary?platform=linux&fo...
https://www.reddit.com/r/discordapp/comments/4bu7lm/discord_...
Firm somewhere far away where Microsoft's lawyers cannot reach (China?) wanted Skype capability in their product and paid this smart Russian guy to reverse-engineer the Skype client.
Smart guy gets permission to open source it and publishes it with commercial license option with hopes of finding more such clients.
Personally I'd not touch this with a 3-meter bargepole, because I live in a country where people use copyright and trademark law to take people to court, yet it's an interesting project.
Looks useful for command and control type applications though.
Re-using the reverse engineered code is the problem, he should have simply used it to spec out the protocol and then use that spec to re-implement it.
This is legal and safe. It is how the first clone PCs survived even IBM's lawyers.
How is the first team compensated? or am I missing something?
>This is legal and safe. It is how the first clone PCs survived even IBM's lawyers.
Very interesting. Does anyone have a link to a write up on this? or at least have a place to start looking for info on it?
https://en.wikipedia.org/wiki/Clean_room_design
Basically, you need to find developers with no experience at all with the technology (e.g. never used Skype before), and then get another set of developers to reverse engineer the product, and send the spec to the "naive" developers, for lack of a better term.
This approach to cloning was established long ago (1960's) by IBM's competitors and has always been legal.
You can just google "clean room design", Wikipedia is quite informative on it.
BTW a few early PC firms did try to cut corners and clone the PC BIOS without the chinese wall; they were sued and died. This isn't theory; it's been practice for decades.
Here was a little insight:
https://nakedsecurity.sophos.com/2011/06/03/skype-protocol-c...
I live in a EU country where interoperability is a law yet is almost never respected, so I say, fuck copyright in that case.
However, this is not the first successful reverse engineering of skype. Each time they broke compatibility with their next version.
The reason why people want to see a clean room implementation is because they are afraid of patent and anticipate US-like silliness like Oracle claiming copyright on an API. Now that this is a very US-specific issue. If you don't plan to market to US, you can just ignore the issue.
I used to work for a French AR company. We were successful and at one point we planned to open offices in the US, but even without having done that, we already had received two frivolous claims by people based in the US (one who claimed he patented the idea of replaying the video at a varying speed). This delayed a bit our opening to the US and the first US employee was... a lawyer.
Do you realize that patents and copyright hell is the reason why, for more than a decade, VLC, a project made by French students, was better at playing videos than Microsoft's player, even when this was seen as crucial? Because France did not have to care for patent litigation.
And clean-room implementations have no effect on patent violations or claims. None at all. It is entirely a copyright issue. And the issue here is that the same person who disassembled one codebase then wrote a new, equivalent codebase. Thus the new work is a derived work, or at least a lawyer can argue that easily, and thus distributing it for profit is a serious crime. Not even a civil offense, in any EU country. Criminal.
And this is totally stupid. This amounts to claiming that musicians derive their work from others. Of course they do.
Lawyers make such arguments all the time and it comes down to who has the time & money to take them to court, and defend against them, and then the judge is a human who decides, and is heavily influenceable.
Only the first one makes sense, and it has no relevance to the project we're discussing, so it's unclear why you say it.
No disrespect, just trying to understand your point here.
To me the point is pretty clear: Copyright law is also used for chilling effects on recalcitrant projects.
You feel using it would open you up to a copyright claim?
IANAL but I'd be willing to bet money on this.
The only questions would be (a) is the original product one that matters enough to protect in such a way and (b) does the owner of that original product have the money and lawyers to start such legal actions.
This isn't some random app. This is one of Microsoft's crown jewels we're talking about.
The original Skype code is clearly not available to anyone outside the original Skype team or some team inside Microsoft. What is publicly available is a binary that is produced from this code.
The elements of the software doing novel technical stuff might be patented, but copying the technical working is allowed. Copyright doesn't protect technical aspects.
If the project copies the UK of Skype, then that's a tort. If it copies the written code or uses the human reading of that code to derive a new codebase, then that's a tort. If it copies the technical implementation, how memory is accessed, what codecs are used, what packets are sent and when ... that's not copyright infringement.
Is that legal in Europe?
Europe tends to be pretty good through, copyright wise.
In fact I'd be surprised if this code isn't taken off GitHub by a DCMA from Microsoft, as soon as it hits their lawyers' radars.
It's not illegal in itself. But you are easily opening yourself up to claims that the code you have written has been "tainted" by the disassembled code you have read and has therefore become a derivative work, which is going to be very to defend hard against.
Also note that even if it is decided that you have made a derivative work you might still successfully launch a fair use defense on the grounds on interoperability, see e.g. Sega v. Accolade[1].
That said, doing a proper clean-room reverse engineering with two teams kept separate is a much safer approach.
https://github.com/skypeopensource/skypeopensource2/issues/2
> No. Not clean room, not chinese wall.
If it's not clean room, then there's probably copyright violations. For reference: https://en.wikipedia.org/wiki/Clean_room_design
Also, offering commercial licensing? That's a good way to get a lot worse than just a DMCA takedown.
This is the law in the United States. From the links given in the readme file the authors are probably from Russia.
But yes, Antigua's IT industry could get very interesting if they get to keep the whole copyright haven thing going.
So his claim that he is a sole copyright owner is patently false - this code could be trivially attacked as a derivative work. No sane person would touch it by a 10 foot pole.
Seriously?
(Side note: That any kind of reversing is illegal anywhere at all is by itself a testament of the sad state most legislatures are in.)
You can't take a piece of someone's code, decompile it, use it in your own project and then claim you own a copyright on it.
And while USA has DMCA, in most of the world copyright (as according to Berne convention) doesn't prohibit reverse engineering but only grants a limited monopoly on copying with some exceptions - often including interoperability, so you can do that even if the copyright holder disagrees.
Violating a law is "illegal" in the sense that it may result in penalties prescribed in that law.
Violating a contract is "illegal" in the sense that it may result in contractual penalties, generally limited to compensation of the damages, possibly with punitive tripling; but it may and should be done if the contract has gone so bad that it's better to face the consequences rather than fulfill the contract.
Violating ToS (which is not even a contract) is "illegal" if you really stretch that term; it may result in losing access to that service, and nothing else (excepting certain US-only legal perversions like CFAA which happily don't apply for most people in the world), so you may do that if the benefit outweighs continued access to that service.
I mean, EU have a much more great priority then Skype TOS.
If someone will add to Skype TOS "and please dont breath or dont go to toilets during use of our application". It will have zero effects in legal meaning. Because it break upfront law and United Nations based rights and etc.
tldr;
They just try to fear you with "dont do this" thing.
I don't know if it is still the case now, but I recall that earlier versions of Skype were quite heavily obfuscated and contained anti-debugging mechanisms. So it would have been quite an intricate reversing effort to get past these, on top of figuring out the protocol.
Over time, Microsoft has changed the Skype protocol significantly since version 5.5 so I do wonder how applicable this work is to the current crop of clients.
Yes, its still up here: https://skype-open-source2.blogspot.com/
Any code commonalities with the pidgin skypeweb plugin?