I have installed an Android app that lets me play with networking and HTTP headers. One of the perks of the app is to be able to export a configuration file so other users that also have the app can import it and use your server (the purpose of the app is to make an SSH tunnel so the config files have SSH server address and credentials, among other things) The thing is, you can choose to "lock" the configuration files so the people you share them with can import them and connect to your server, but can't actually see the server address or credentials. I assume the files are encrypted with AES and the key is static, but I'm getting off-topic now.
One of the clauses in the EULA clearly states:
"You may not decompile or reverse engineer the software, for any purpose or under any circumstance."
The reason I want to reverse engineer it is to decode the configuration files, so the people who want to can use the data in other apps such as OpenVPN.
The U.S law for reverse engineering is pretty clear in this regard:
(f)Reverse Engineering.— (1)Notwithstanding the provisions of subsection (a)(1)(A), a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs, and that have not previously been readily available to the person engaging in the circumvention, to the extent any such acts of identification and analysis do not constitute infringement under this title.
So, in this case, since my objective is to achieve interoperability (so users can use the data from the config files in other apps) wouldn't this count as an unlawful clause in the license agreement, therefore, invalidating the entire contract?