I would like to gather information about how something works from a computer program and use it in my own. However, there is a software licence that forbids it.

Except as and only to the extent expressly permitted in this License or by applicable law, you may not copy, decompile, reverse engineer, disassemble, modify, or create derivative works of the [blanked out] or any part thereof.

According to Section 50B of the Copyright, Designs and Patents Act 1988 (https://www.legislation.gov.uk/ukpga/1988/48/section/50B)


(1)It is not an infringement of copyright for a lawful user of a copy of a computer program expressed in a low level language—

(a)to convert it into a version expressed in a higher level language, or

(b)incidentally in the course of so converting the program, to copy it,

(that is, to “decompile” it), provided that the conditions in subsection (2) are met.

(2)The conditions are that—

(a)it is necessary to decompile the program to obtain the information necessary to create an independent program which can be operated with the program decompiled or with another program (“the permitted objective”); and

(b)the information so obtained is not used for any purpose other than the permitted objective.

(3)In particular, the conditions in subsection (2) are not met if the lawful user—

(a)has readily available to him the information necessary to achieve the permitted objective;

(b)does not confine the decompiling to such acts as are necessary to achieve the permitted objective;

(c)supplies the information obtained by the decompiling to any person to whom it is not necessary to supply it in order to achieve the permitted objective; or

(d)uses the information to create a program which is substantially similar in its expression to the program decompiled or to do any act restricted by copyright.

(4)Where an act is permitted under this section, it is irrelevant whether or not there exists any term or condition in an agreement which purports to prohibit or restrict the act (such terms being, by virtue of section 296A, void).]

Am I allowed to reverse engineer/decompile a computer program, even if a licence forbids me not to? Does it only matter what the laws say in the United Kingdom or do I have to obey the part of the licence?

  • Is it necessary to reverse engineer it? See (2)(a) that you quoted above. – Brandin Feb 5 at 11:24
  • What does necessary mean in this context? Does it mean that I have to do it to save someone's life? How do I know if it's necessary or not? – mike1024 Feb 5 at 18:03
  • You mean as in available to me? Sorry, it is quite confusing. – mike1024 Feb 5 at 18:06
  • Are you decompiling in order to create your own program which can interoperate with another program? Then it is fine, according to that text. Are you decompiling in order to create a program that is substantially similar to the original? Then it is not fine. – Brandin Feb 6 at 12:36
  • Well, the program is to work with a specific part of hardware (a computer device). – mike1024 Feb 10 at 10:31

Why do you think the licence forbids this? It explicitly starts with "Except as and only to the extent expressly permitted ... by applicable law ...".

You have quoted the "applicable law". If you stay within the boundaries of the law the licence allows it.

  • Thank you. So, I am allowed to reverse engineer it and use the information for my own program, right? – mike1024 Feb 5 at 10:53
  • @mike1024 yes, but you are not allowed to share that program or it's source code with someone else. – wimh Feb 5 at 11:54
  • Are you completely sure? This is legislation in the United Kingdom and I don't want any consequences. – mike1024 Feb 5 at 18:03

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.