stascorp / rdpwrap

RDP Wrapper Library
Apache License 2.0
14.76k stars 3.83k forks source link

Is this legal? #26

Open DalSoft opened 9 years ago

DalSoft commented 9 years ago

This is awesome for me as I have Windows Basic on my tablet. But does anyone know what the legal status of this is? To me it looks fine because you are not patching the dll with a hacked or unlicensed dll, just loading it with different parameters.

binarymaster commented 9 years ago

On the one hand, RDP Wrapper is a separate application which allows remote desktop with concurrent terminal sessions.

Quote from the original license agreement:

f. Remote Access Technologies. You may remotely access and use the software installed on the licensed computer from another computer to share a session using Remote Assistance or similar technologies. A “session” means the experience of interacting with the software, directly or indirectly, through any combination of input, output and display peripherals.

Link: http://download.microsoft.com/Documents/UseTerms/Windows%207_Home%20Basic_English_266c7e01-34d6-4b9a-8d43-6cc2d1d39056.pdf

According to this, the license agreement isn't violated.

But on the other hand, although termsrv.dll remains unmodified, RDP Wrapper doesn't implement these functions. They all are controlled by Terminal Services, which were loaded with different parameters.

So the question about legality is the matter of dispute...

questy5 commented 8 years ago

How this is not violation? according to EULA it violates license:

from: http://www.tenforums.com/software-apps/29659-build-10586-broke-rdp-wrapper.html last post.

also : https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm

Installation and Use Rights.

a. License. The software is licensed, not sold. Under this agreement, we grant you the right to install and run one instance of the software on your device (the licensed device), for use by one person at a time, so long as you comply with all the terms of this agreement. Updating or upgrading from non-genuine software with software from Microsoft or authorized sources does not make your original version or the updated/upgraded version genuine, and in that situation, you do not have a license to use the software.

b. Device. In this agreement, “device” means a hardware system (whether physical or virtual) with an internal storage device capable of running the software. A hardware partition or blade is considered to be a device.

c. Restrictions. The manufacturer or installer and Microsoft reserve all rights (such as rights under intellectual property laws) not expressly granted in this agreement. For example, this license does not give you any right to, and you may not:

(i) use or virtualize features of the software separately;

(ii) publish, copy (other than the permitted backup copy), rent, lease, or lend the software;

(iii) transfer the software (except as permitted by this agreement);

(iv) work around any technical restrictions or limitations in the software;

(v) use the software as server software, for commercial hosting, make the software available for simultaneous use by multiple users over a network, install the software on a server and allow users to access it remotely, or install the software on a device for use only by remote users;

(vi) reverse engineer, decompile, or disassemble the software, or attempt to do so, except and only to the extent that the foregoing restriction is permitted by applicable law or by licensing terms governing the use of open-source components that may be included with the software; and

(vii) when using Internet-based features you may not use those features in any way that could interfere with anyone else’s use of them, or to try to gain access to or use any service, data, account, or network, in an unauthorized manner.

i would definitely want to use it in my company to save money... but its appears to be illegal so i cant.

larray commented 8 years ago

I would say (and I am not a lawyer) that the software itself is not illegal - the software itself cannot violate the EULA - the software itself cannot violate an End User License Agreement. You however are technically bound by the EULA.

As others have pointed out - the software itself does not alter any of the operating system itself. No binaries are changed. It does however call functions in Terminal Services "differently". However, to your points:

(i) The software isn't "virtualized" - wrapper may be a misnomer - but it calls functions inherent in the DLL itself. (Whether they are publicly exposed in a "home" or "professional" product is not germane to the issue)

(iv) work around any technical restrictions or limitations - so, professionally in your company, you have never read a Microsoft published KB article that has a "workaround" section and implemented it until a suitable patch was developed? Technically speaking - you have just violated this clause.

(v) there are several issues with this clause - 1) it isn't server software, 2) you aren't "commercial hosting" (are you?), 3) "software available for simultaneous use" - Um... did you put your PC on a network - because then you have violated this clause... 4) "install the software on a server" - well what exactly do they mean here? Do you install your OS from a server? (violation?) Or is it that you can't have the software on a server class piece of hardware (you are aware that there are "servers" in desktop form factors?) Or is it a clause against creating shares from a workstation class product.. and if that is the case... why do they build a 20 connection limit into a workstation class product and tell you not to circumvent THAT? 5) install the software on a device for use only by remote users - well - then you can't use RDP for access to a system greater than 50% of the time.

The legalese is there to allow Microsoft the flexibility to protect their interests - the legalese or text of this nature has been around since the inception of the OS for PCs... but frequently has been fought in terms of "fair use".

However - if it is of concern to you and your company - I would recommend against using it until you have engaged sufficient legal help to determine your support ability and legal standing. Otherwise - if you need something like this in a corporate setting either purchase the server product and use as intended or roll-your-own solution suing some open-source love.

questy5 commented 8 years ago

yeah, i wanted to use my supermicro server with proxmox, install w7 on it, and use rdp wrapper to give few employees access instead of buying few windows licenses. but i see i cant do it and have clean conscious... :(

da2x commented 8 years ago

Disclaimer: I’m not a lawyer and this isn’t legal advise.

My interpretation of section 2.c+2.c(ⅳ) of the Windows license for the purpose of using RDPwrap is that it strictly speaking limits users ability to install any software what so ever. If you install a program of any kind, you’re working around limitations in Windows itself … . So, yeah … . However, “Section 2.d(ⅴ) doesn’t expressly grant an exception from 2.c+2.c(ⅳ), but 2.d(ⅴ) is more specific to [using RDP in Windows].” The license both specifically grants you permission and the license more broadly does not grant you permission.

You can interpret the Windows license in any which way, and I suspect that was the intention when it was written. It leaves a lot of leeway for Microsoft to pursue whoever they want.

ghost commented 7 years ago

Unfortunately I can't provide a citation but there is a commercial program which offers the functionality that RDPWrap does for a price. The company offering it, when I checked their web page, was still in business; presumably they also have clients. Per the discussion on this page, however, it might be impossible for them to violate the law, in the same sense that one can sell radio broadcasting kits that are illegal to put together and operate.

While not precisely relevant I would add that it seems like Microsoft is very unwilling to follow up on license-skirting, and has historically made changes that make it easier to pirate their operating system (but the topic at hand isn't piracy).

matthewsheeran commented 7 years ago

The S/W is FOSS and MS (who are also increasingly FOSS and services oriented BTW) are unlikely to take action over a small number of users many if not most of whom are Admins and Devs whose employers will likely always purchase the requisite Pro and Enterprise licenses for Enterprise wide corporate solutions anyway. (All that is necessary for the MS behemoth is to miss-classify it as virus to prevent or delete downloads for the bulk of users which was indeed the case for me using Chrome.)

The RDP/Terminal Server code actually has it's origins with "Citrix" - a third party MS Partner - and from whom it was actually strong-armed by MS into their code stack proper under threat of termination of continued licensed access to Windows Server/Client code in order to maintain the Tech when renewal came up: Oops there go's the business guys and very little they could do about it Anti-Trust wise when it comes to access to another company's IP: so it was forcibly cross-licensed or even assigned to MS as a part of a newer ongoing deal with them.

You might want consider these origins, in particular the behaviours and actions of these huge corporate whales, during your deliberations over the minutiae of our own compliance with a shrink-wrapped licence as a relatively minuscule and insignificant, but nonetheless very nimble, little minnow. ;-)

ghost commented 6 years ago

Having looked more closely at the Windows 10 license the same statement that could potentially disallow RDPWrap also disallows the use of VNC or TeamViewer in the Home edition of Windows. RDP is disabled in the Home edition, and adding that functionality back in may violate 2.c.iv.

matthewsheeran commented 6 years ago

Bah humbug!: Think about the practicalities of enforcement - how are they going to know - and the ensuing public outrage let alone from just the FOSS VNC community alone if they did. They neither know or care and certainly don't care for the embarrassment whilst making no profit from the enforcement. They would inconvenience and piss-off users and thus damage their business reputation and good will whilst only incurring costs for themselves. Think of it like the Chinese Constitution as whilst there are great protections within it there is actually no way to go about getting it enforced and thereby actually securing those lovely human rights as they are written on the paper my friend!

ghost commented 6 years ago

That was my point. It is also good ammunition to use if, say, your company's IT department refuses to allow you to use RDPWrap. There's a fair chance someone is using VNC internally. But really, the license is so broad and so contrary to the typical conception of property ownership I can't see most of its terms being enforceable.

MikeBishop commented 6 years ago

Personal opinion, with some educated background: Windows has internal helper functions that can be called to gate-check whether you're on an appropriate edition of the OS before allowing a call to proceed. The fact that these checks are not stopping you is either a) indication that it's expected and permitted for applications to use these APIs, or b) a bug which Microsoft could fix if they cared enough.

If (a), these APIs are presumably documented for third-party use. Are they? If so, you're on very solid footing. If not, you're on less solid footing legally -- but because of Microsoft's compatibility procedures, which check whether even undocumented functions are being called by external applications before removing them, you're unlikely to be broken outright. Presumably these same APIs are being used by other Microsoft products, such as Remote Assistance, and need to remain stable and accessible.

If (b), Microsoft could at some point fix the bug if they want. You'll have no recourse, and taking advantage of the bug in the meantime is of questionable legality.

kintaro1981 commented 4 years ago

Software like Teamviewer (free or paid) can connect to and display the desktop of an active RDP connection, so the use of Teamviewer breaks EULA, too.

matthewsheeran commented 4 years ago

Like I said: why are we not surprised!

On Sat., 21 Mar. 2020, 01:05 Kintaro Oe, notifications@github.com wrote:

Software like Teamviewer (free or paid) can connect to and display the desktop of an active RDP connection, so the use of Teamviewer breaks EULA, too.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/stascorp/rdpwrap/issues/26#issuecomment-601717971, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVF56W5S4Z7KTQV4IJG453RINZ3BANCNFSM4BAQVACA .

ghost commented 4 years ago

Even Microsoft Corporation does not have the right to limit the number of users on a hardware that is a legitimate property of the user. Over.

MikeBishop commented 4 years ago

No, but they certainly do on software which is their property and is only licensed to you. If you want only hardware ownership to matter, then you write the software yourself.

ghost commented 4 years ago

No, but they certainly do on software which is their property and is only licensed to you. If you want only hardware ownership to matter, then you write the software yourself.

This is right. But nonetheless, Microsoft Corporation still has no right to limit the number of concurrent users of the PC, and its resourses I own as hardware. All they have is the right of the restrictions and limitations on their software, but not on the hardware and the users. They are not Gods, they are only citizens just like us , and their EULA is not the Holy Bible.

Some examples:

I have a Dual Boot System, one system with MS Windows, and an other with Linux.. It's clear for everyone that there can be only one operating system at once to run , either the Windows or the Linux. I have the right to give the permission for anyone to use my computer , right? The person who has the permission to use my computer has neither obligation to know the MS's EULA nor to recognize the running operating system, but meanwhile he/she's using my computer i still have the permission to use my own computer , haven't ?

The only thing which is illegitimate here is the restriction of the number of users , in that EULA.

dimrim commented 4 years ago

I wanna write some words too. Microsoft is playing the role of a dog in the manger with its terminal server solution. The function is there, but it cannot be used. Why? If the function weren't there, then other developers (nomachine, VNC, and many others) would offer corresponding software projects on the market. But since windows has its own function, only CITRIX can offer the corresponding software, because they are RDP developer. As usual, the Microsoft folks just make money. About the legal side, here is everything clearly: By using the RDP Wrapper program you are violating the Microsoft license agreement. Whether the licensing agreement at this point is valid is up to the politician and the courts. I think that the market rulers shouldn't do that. Sorry for my english ;)

kintaro1981 commented 3 years ago

Ok but my question is: Why Teamviewer is doing it? If TV can, why we can't use rdpwrap to connect to an RDP session with VNC? Maybe we can use it to give assistance but not to use the same windows system at the same time working in two separate sessions?

tmmjelde commented 3 years ago

Ok but my question is: Why Teamviewer is doing it? If TV can, why we can't use rdpwrap to connect to an RDP session with VNC? Maybe we can use it to give assistance but not to use the same windows system at the same time working in two separate sessions?

Teamviewer uses the same session, the same user profile, same desktop, documents etc. Everyone can see the same thing and you can't control the mouse cursor, applications etc independently. Teamviewer is also a licensed product which comes with time limits for the free edition.

Connecting with RDP can use multiple different user sessions which is a different interaction allowing for more flexibility.

So you're not really comparing the same thing here.

tmmjelde commented 3 years ago

Basically Microsoft has implemented restrictions on purpose on the amount of consequently connected users to the Windows Operating System, which they wrote and have the rights to. You can argue hardware all you like, but the fact is you installed SOFTWARE here. If you don't like the limitations of the Windows operating system, either follow the rules and purchase the licenses you need or use another OS. If you use this software, written by a third party, as long as it is not officially approved by Microsoft you are breaking the terms of service. Read any license agreement and try to understand it from Microsoft's perspective and you will easily see how this is not OK.

Microsoft has implemented restrictions of 2 consecutive users, but they offer you an RDS License you can purchase to get around this limitation. Get around it in ANY OTHER WAY and you will be taking money out of Microsoft's paycheck. You are not doing what you are supposed to.

The other fact is you are running this code, which you probably don't know what is doing. How do you know it's not crypto malware? How do you know Microsoft won't check this later? They own Github. They know your IP where you downloaded this from.

My advice is this: Don't run this for your company. You will risk your job, your familys livelyhood, and potentially you might personally face legal persecution for piracy of Microsoft licenses and perhaps even further persecution from the company you're hired to if the code ever does anything wrong. Even though the front page says "legality is unknown" you REALLY should know better.

Don't use this until Microsoft gives the OK, which they will never do.

tmmjelde commented 3 years ago

corresponding software, because they are RDP developer. As usual, the Microsoft folks just make money. Even if you are using Citrix you also have to purchase the Microsoft RDS Licenses. The only way to avoid this, and increase the limit of 2 consecutive users is to use Azure's WVD on Windows 10 MultiSession images. Still then you'd require a M365 license that is appropriate and includes the license you need.

If you don't like the licensing agreement, find an alternative product or make your own product.

kintaro1981 commented 3 years ago

Ok but my question is: Why Teamviewer is doing it? If TV can, why we can't use rdpwrap to connect to an RDP session with VNC? Maybe we can use it to give assistance but not to use the same windows system at the same time working in two separate sessions?

Teamviewer uses the same session, the same user profile, same desktop, documents etc. Everyone can see the same thing and you can't control the mouse cursor, applications etc independently. Teamviewer is also a licensed product which comes with time limits for the free edition.

Connecting with RDP can use multiple different user sessions which is a different interaction allowing for more flexibility.

So you're not really comparing the same thing here.

But I want to do this, and not multiple RDP sessions! I want to be able to control with VNC an RDP session to give support to the users and Microsoft limits this.

Maresoft commented 3 years ago

The software is updated to the latest version of termsrv.dll ver. 1971 (present in the May 2021 updates)?

net800 commented 1 year ago

Does this also mean that if you use 3rd party media codecs, divX, Xvid etc interpreted as workaround ? The limitation is only to prevent any workaround to violate or limit the integrity and security. Not the enhancement of any functionality can be regarded as violation. Because, consumers also have rights to utilize the fullest potential of what they have bought, whether it is a licence or a right. And that part can not be restricted because, it is already a part of the OS, which a user can expand / enhance without directly affecting their business. This is because, Desktop resources are limited and a desktop OS has varius execution limitations, lacks security policies etc., therefore it will be foolish to substitute rdpwrap for what a server RDS has to offer.

But as per legality is concerned, Look at the possibility of just using only MS Edge browser and abandoning other ones. Or Microsoft restricting other software use based on their own terms that are subject to change over time. Remember judgment about NetScape browser? Just because the OS has their own drivers for NIC, they can not restrict what you can access over the web right? Or they can not just limit you to load only their site. They can not restrict everything as such with an EULA. But if they have enough evidence that their (co-?)existance is harmed by deliberate and competitive means to challenge such as , pirate , reverse engineer the code or hack the masses with security vulnerability etc as mentioned in the EULA, then such violations are prosecuted by the law that is meant to protect all civilians as well as businesses.

Moreover, most of the time FOSS can be the best alternative for companies, enterprises and corporations when it comes to affordable solutions, but with a catch of hours of tweaking.