licensing software legal-terms
What does &quot;human-perceivable form&quot; mean?
<p>I am trying to find the differences between Version A and Version B of an executable binary to determine whether Version C (a localisation) is based on Version A or Version B. The problem is the license. In the restrictions section, it contains this text:</p>

<blockquote>
  <p>The Software contains copyrighted material, trade secrets and other proprietary material.  You may not decompile, reverse engineer, disassemble or otherwise reduce the Software to a human-perceivable form.</p>
</blockquote>

<p>Looking around the internet, I have found several instances of similarly worded licenses, but nowhere have I found what this phrase means.</p>

<p>Does printing the executable to the screen (using something like <code>cat</code>) count as producing a "human-perceivable form"? What about creating a hex-dump of the executable? Going a step further and turning the hex-dump into assembly is explicitly stated to be considered as such, but <a href="https://groups.google.com/forum/?_escaped_fragment_=topic/net.jokes/k2JVKQzJSpY#!topic/net.jokes/k2JVKQzJSpY" rel="nofollow noreferrer">Real Programmers use hexadecimal</a> anyway; I know of several humans who can perceive code in the form of a hex-dump. Going back to simple printing, in a character set without unprintable characters it wouldn't be very difficult to learn the mappings between two-digit hex numbers and characters; one could even use a font where each glyph consists of two hexadecimal numbers.</p>

<p>Where is the line drawn? What would be legal, and what would not? Is it different if the form is never directly perceived by humans?</p>

<p>The issue is that "decompile, reverse engineer, disassemble" is probably too narrow, so they need a broad expression that means "and things like that", but "things like that" would be too vague. I don't know what other alternatives are out there, but this might not explicitly prohibit an instruction-trace on the executing code, and they may want to (although I am not sure what the exact scope of "reverse engineer" is). In saying "<em>reduce</em> the Software to a human-perceivable form", the choice of the word "reduce" is no doubt significant. A reasonable man would conclude that an effort to simplify the raw binary code into something more graspable (such as opcodes) is a reduction to perceivable form. However, a screen dump via cat or a hex print doesn't affect the informational content of the file, it just changes the mode of representation: it makes it perceivable, but does not reduce the software in any way (does not reduce the entropy of the bit pattern). If they had intended to say "<em>render</em> it in a human perceivable form", they could have, so we should focus on the impact of "reduce". I don't believe the courts have given a ruling on the legal meaning of "reduce".</p>
