I have purchased a software product, which the company claims is licensed to me, and it contains an EULA that says that I am not allowed to reverse engineer or modify the software at all, and a violation of this would allow them to revoke my license.
Now, I'm an experienced software developer who has built a business around using said software product. I rely on it, and have done so for over 15 years now. Losing access to it would be a serious blow to my business, hence I like to avoid losing the license, of course.
More than once in the past it has happened that I run into programming errors of said product, hindering my ability to use it as intended. And while the software lives up to its expectations in general (i.e. I cannot claim that it's useless to me), certain bugs limit its provided and documented functionality.
Now, being an experienced developer, I am usually able to figure out the cause of the error by just observing how it behaves. And while I am often able to "work around" the bugs, sometimes the only way to solve the issue is to modify the product's code or interfere with it in some way that requires me to look at the code, i.e. reverse engineer parts of it. (Note: The code in question is not encrypted nor protected in some other way.)
By doing that, the company claims I am in clear violation of their EULA.
I initially argued that the purpose of their "no reverse engineering" rule is to prevent harmful hacks, such as trying to disable their product registration and copy protection, and the company agrees with that. However, they argue they cannot make exceptions to their rule at all (which I believe they confuse with enforcing trade mark violations, where too much leniency could make them lose the rights to their claims).
Which leaves me almost no options:
I am not allowed to fix their bugs myself, even if only for my own use of the software.
Neither are they willing (or able) to fix them.
Which leaves me only able to simply not use parts of their product due to the bugs in them, even though these buggy functions are provided for my use. So it's not something hidden I'm trying to exploit here - it's part of their documented feature set.
Are they in their full rights to revoke my license when I violate this particular rule from the EULA?
I am in the European Union, while the company is in the USA. Does that make a difference, i.e. are there laws in Europe that help me with arguing for my case? (Let's ignore the often-heard argument that shrink-wrapped licenses are not enforceable - instead I want to focus solely on the issue of defects in a product.)
Sure, even if the company is in the wrong, they could still then disable my license, but I'd like to understand if I am in the wrong here by expecting that they're liable to either fix bugs or let me fix them myself. If there's some good arguments in my favor, I may also want to make this case more public, or at least suggest that to the company if they remain uncooperative.