📜 ⬆️ ⬇️

SkypeKit cured of greed

image

Attention!
Do not use this skypkit!
After this story, habrahabr.ru/post/142805 Skype began to ban ALL accounts running on the same ip along with this skykkit.



There is such a wonderful thing as Skypekit. In a nutshell, this is a full-fledged Skype without a GUI, a wrapper for which you intend to write yourself.
')
Theoretically, on the basis of Skypekit could be:

and much more, if not the terms of use.
First, in order for Skype to allow you to distribute your product, you need to pay an over $ 9000 for certification of your product. Secondly, the certificate can be revoked at any time if Skype decides that you are violating the terms of use.

But thanks to the healing effects of reverse engineering, this ailment was cured.



Preamble



Details on how Skypekit is distributed can be found here habrahabr.ru/post/124321

Each runtime is compiled individually and is identified with your registered organization. It is assigned a unique version number and key. Subsequently, it will be possible to log in through this runtime only with the help of a key issued specifically for it. At the time of development, a Developer key is issued, with which it is possible to authorize only accounts belonging to your organization.

Keys are of two types:
Developer - you can log in only from the accounts of the developers in the group (valid for 60 days)
Distribution - you can login to all.

Access to the API occurs via a TCP socket on a local host. To do this, open the SSL-tunnel, which is encrypted using the issued key.

image

Therefore, even with a sniffer on localhost, you cannot see what the wrapper is talking to with runtime.
Skype requires that the finished application be obfuscated and distributed in binary form so that you can not pull out the key and use runtime separately.

Ranttime can only understand (decrypt) SSL with an encrypted key from its organization. Separately, runtime and key from different organizations are useless.

Therefore, the value is a pair of key and runtime.

If at some point Skype decides that you are no longer worthy of using Skypekit (for example, you have committed a terrible crime - publishing the source code of your program), the key can be revoked unilaterally and you will not be able to log in to the Skype network through your program.

Miraculous healing



As usual, all programs from Skype have protection against reverse engineering: the code is obfuscated, traps are used to prevent disassembly. Skypekit is no exception.

But one day, like the miracle of the descent of the gracious fire in Jerusalem, the runtime obfuscation subsided.

When comparing two decoded runtimes of the same version compiled for different owners, it was found that they differ slightly. The file contains the timestamp of the assembly and the password of the RSA-key that encrypts the local connection to runtime.

It turned out that the issued key only participates in the creation of a local SSL tunnel for the wrapper’s access to the runtime API, and only a version string containing the key imprint is sent to the authorization server:

image

Such a window can be called up in the Windows version during a voice call in the Call => Tech. call information .

According to this fingerprint, the authorization server determines which key is used and, based on this, decides whether it is possible to authorize the client.
It was established experimentally that it is possible to substitute the fingerprint of one key in this line and connect to runtime with the help of another. The authorization server responds according to the key that is transmitted in the version string.
For example, using the Developer key for the local SSL tunnel of the Developer, and sending a fingerprint from the Distribution key in the version string, it was possible to authenticate with an account not in the organization.

It turned out that if you replace the version string by specifying a version from a regular desktop client, there will be no verification at all.

This is a clear illustration of the failure of the Security through obscurity model .

FAQ



1. What changes were made, what are the differences from the original runtime?


Nothing else.

2. What certificate is it not deleted?

The certificate is needed to establish a local SSL tunnel, it is left for compatibility with the SDK.
He was picked out of Trillian and placed in the latest version. The certificate is unlimited, therefore it is the easiest to do. Even if it is recalled, it is not checked further on the local host, so it will not block runtime.

3. Is it legal / safe?

Not legally, not safe.

There is no certainty that the fingerprint in the version string is the only way to verify. There is a risk of losing an account when logging in through such a runtime, so for the time of testing it is better not to use your permanent Skype account.
This is still a binary proprietary Skype, although not obfuscated. We can not guarantee that it does not contain undocumented functions, so I advise you to treat this program as a potential trojan.

Regarding legality - this is one hundred percent warez with all the consequences.

4. How to legally add Skype support to your program?

It is forbidden to distribute the runtime itself, certificate and SDK.

You can distribute your own code for working with Skypekit. In this case, the origin of the runtime and the certificate can be anything, no one forbids the user to buy runtime for $ 5 and write out 60-day Developer-certificates for personal use.

For example, the popular Audacity program during installation reports that in order to support mp3, you need to independently find the LAME library. This approach is quite legal.

5. Under what platforms is runtime?

Cured runtime is still under Windows and x86_Linux.

There is a chance that miraculous healing will befall the Mac and ARM Linux version as well.

6. How does this differ from the usual Skype run in the background?



7. Tomorrow Skype will slightly change the protocol and the whole work is a mess!

Skypekit is mainly intended for integration into devices.
For example: TVs , consoles , landlines .
These devices are already licensed and sold. Changing the protocol will break them all. Therefore, the likelihood that Skype will do it in the foreseeable future is extremely small.

8. Now everyone will make bots and will be spamming!

Spam could be earlier through the Desktop API.
By default, privacy settings are prohibited from receiving messages and calls from unauthorized contacts. Therefore, as before, you can only spam authorization requests with the accompanying text.

9. Where to download?

I don't know for sure, but there is some kind of magnetized link

 magnet:? xt = urn: btih: 3da068082f6ec70be379d4046e4c77bc4578f751 & dn = SkypeKit_sdk
 % 2Bruntimes_370_412.zip & tr = udp% 3A% 2F% 2Ftracker.openbittorrent.com% 3A80 & tr = udp% 3A% 2F
 % 2Ftracker.publicbt.com% 3A80 & tr = udp% 3A% 2F% 2Ftracker.ccc.de% 3A80


Total



Of course, this is not a complete solution, there is still an unknown binary proprietary Skype.

If you want to contribute to a truly noble cause - to create an open implementation of the Skype protocol, you can donate here skype-open-source.blogspot.com/p/donate.html

In the post are encouraged developers.
SDK is for:


All emerging questions can be asked in the conference skypeopensource@conference.jabber.ru

Source: https://habr.com/ru/post/141966/


All Articles